こんにちはー!むちょこです。
今回は、Laravel 8 から新しく使えるようになったLaravel Jetstream のインストール方法をご紹介してみようと思います!
Laravel Jetstreamとは
Laravel Jetstream は、Laravel 8 のリリースと同時に登場した Laravel 用の新しい scaffolding (アプリケーションを作るための土台を簡単に生成してくれる機能)です。
認証やプロフィール管理、チーム機能等、これまでのAuth機能より遥かにパワーアップした機能が提供されます(この記事のラストに実際に出来上がった機能のスクショを貼りました!)。
Laravel Jetstream のインストール方法
Laravel Jetstream をインストールするには、まず Laravel 8 が動く環境を用意します。
サーバ要件
以下の環境が必要です。
PHP >= 7.3
BCMath PHP Extension
Ctype PHP Extension
Fileinfo PHP extension
JSON PHP Extension
Mbstring PHP Extension
OpenSSL PHP Extension
PDO PHP Extension
Tokenizer PHP Extension
XML PHP Extension
https://laravel.com/docs/master/installation#server-requirements
また、 Composer も使用しますので予めインストールしておいてください。
他には Laravel からアクセスできる DB が必要になります( DB は別サーバでも構いません)。
この記事の環境
この記事は、CentOS 8 の環境で検証しながら書いています。
$ cat /etc/redhat-release
CentOS Linux release 8.2.2004 (Core)
他の環境ではパス等が違う可能性がありますので、適宜ご自身の環境に合わせてご変更ください。
Laravel インストーラーのダウンロード
ターミナルで以下のコマンドを実行すると、 Laravel インストーラーをダウンロードすることができます。
$ composer global require laravel/installer
ダウンロードが完了したら、laravel コマンドが使えるようにパスを通しておきましょう。
$ export PATH=$PATH:$HOME/.config/composer/vendor/bin
Jetstream のインストール
まずはプロジェクトを作成したいディレクトリに移動してください。
$ cd [任意のディレクトリパス]
Jetstream で動く Laravel をインストールするには、いつものインストールコマンドに –jet オプションをつけます。
$ laravel new [プロジェクト名] --jet
そうすると livewire と inertia どちらを使いたいかを聞かれると思います。
livewire: 動的なインターフェースを簡単に構築できる Laravel 用のフルスタックフレームワーク
inertia: Laravel とJavaScript フレームワークを繋いで、従来よりも SPA が簡単に作れるようにしてくれる接着剤
用途や好みに合わせて選択し、選択した方の数値を入力 + Enter してください(今回は livewire を選択してみました)。
Which Jetstream stack do you prefer?
[0] livewire
[1] inertia
> 0
次に、チーム機能を使うかどうかを聞かれます。
チーム機能は、各ユーザを任意のチームに所属させることができる機能です。
チームごとに任意のロール(権限)を割り当てることもできるようなので、会員サイトやプロジェクト管理ツール等を作るときに便利そうですね。
この機能を使いたい場合は yes 、不要な場合は no と入力して Enter を押してください(ここでは yes にしてみました)。
Will your application use teams? (yes/no) [no]:
> yes
DB の設定
作成されたプロジェクトのディレクトリに移動しましょう。
$ cd [プロジェクト名]
このプロジェクト用の DB を作成し、.env ファイルに接続情報を保存します。
DB_CONNECTION=[利用するDB]
DB_HOST=[ホスト名]
DB_PORT=[ポート番号]
DB_DATABASE=[DB名]
DB_USERNAME=[DBのユーザ名]
DB_PASSWORD=[DBのパスワード]
全部言葉で書くとちょっとわかりづらいですね。
具体的には、例えばこんな感じで書きます。
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=sample
DB_USERNAME=sample
DB_PASSWORD=testtest
.env ファイルを上書き保存したら、マイグレートして Jetstream の DB 構成を自分の DB に反映させます。
$ php artisan migrate
パーミッション設定
普段の Laravel の導入のように、ファイルやディレクトリのパーミッションを設定します。
$ sudo chown -R [作業ユーザ]:apache .
$ sudo find . -type d -exec chmod 750 {} \;
$ sudo find . -type f -exec chmod 640 {} \;
$ sudo chmod -R 770 ./storage/ ./bootstrap/cache/
完成!
ブラウザでこんな感じに表示されたら成功です!
会員登録 / ログイン機能はもちろん
プロフィール・アカウント編集機能
APIトークンの発行ができたり
オプションで選択したチーム機能もついてます!
え、ここまでの機能がコマンド打つだけで出来上がるって正直凄すぎませんか……?
感動しました……