Laravel Jetstream のインストール方法

こんにちはー!むちょこです。

今回は、Laravel 8 から新しく使えるようになったLaravel Jetstream のインストール方法をご紹介してみようと思います!

Laravel Jetstreamとは

Laravel Jetstream は、Laravel 8 のリリースと同時に登場した Laravel 用の新しい scaffolding (アプリケーションを作るための土台を簡単に生成してくれる機能)です。

認証やプロフィール管理、チーム機能等、これまでのAuth機能より遥かにパワーアップした機能が提供されます(この記事のラストに実際に出来上がった機能のスクショを貼りました!)。

MEMO

公式サイト

https://jetstream.laravel.com/

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 のインストール

まずはプロジェクトを作成したいディレクトリに移動してください。

code
$ cd [任意のディレクトリパス]

Jetstream で動く Laravel をインストールするには、いつものインストールコマンドに –jet オプションをつけます。

コマンド
$ laravel new [プロジェクト名] --jet

そうすると livewireinertia どちらを使いたいかを聞かれると思います。

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 ファイルに接続情報を保存します。

.env
DB_CONNECTION=[利用するDB]
DB_HOST=[ホスト名]
DB_PORT=[ポート番号]
DB_DATABASE=[DB名]
DB_USERNAME=[DBのユーザ名]
DB_PASSWORD=[DBのパスワード]

全部言葉で書くとちょっとわかりづらいですね。

具体的には、例えばこんな感じで書きます。

.env
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トークンの発行ができたり

オプションで選択したチーム機能もついてます!

え、ここまでの機能がコマンド打つだけで出来上がるって正直凄すぎませんか……?

感動しました……