Laravel8インストール Mac環境
2020年9月8日に新しくLaravel8がリリースされました。LTS(long term support)ではないので1年間のサポートになります。Laravel7から半年しか経過していないのであまり変わっていないだろうと思っている人も多いかもしれません。しかし、Jetstreamが新たに追加され認証機能、フロントエンド部分で大きな変更がありました。認証機能については本文書ではほとんど触れてませんがLaravel8のインストール方法を確認してみましょう。
macOS Catalina環境でのLaravel8のインストールからユーザの登録について説明を行っています。
composerのインストール
LaravelをインストールするためにはPHPのパッケージ管理ツールcomposerをインストールしておく必要があります。
compserがインストールされていないではcomposerコマンドを実行してもコマンドがないので下記のエラーとなります。
% composer
zsh: command not found: composer
composerをインストールするためにはcomposerのサイトにアクセスします。composerで検索するとサイトを見つけることができます。
composerのトップページにある”Download”ボタンをクリックしてください。
Downloadページの上部にあるスクリプトをコピー&ペーストして実行してください。
ターミナルで実行するとcomposerのダウンロードが行われ、カレントディレクトリにcomposer.pharファイルが保存されます。
% php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('sha384', 'composer-setup.php') === '8a6138e2a05a8c28539c9f0fb361159823655d7ad2deecb371b04a83966c61223adc522b0189079e3e9e277cd72b8897') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Installer verified
All settings correct for using Composer
Downloading...
Composer (version 1.10.12) successfully installed to: /Users/mac/composer.phar
カレントディレクトリに保存されたcomposer.pharでもcomposerを実行することができます。
% ./composer.phar -V
Composer version 1.10.12 2020-09-08 22:58:51
他のディレクトリからでもcomposerが実行できるようにユーザのホームディレクトリの”.composer”(ドットがついているので注意してください)の下にvendor/binディレクトリを作成しその下にcomposerという名前に変更してcomposer.pharファイルを保存します。保存しただけではパスが通っていないためcomposerを実行することはできないのでexportコマンドでパスの追加を行います。
% mkdir -p .composer/vendor/bin
% cp composer.phar .composer/vendor/bin/composer
% export PATH="$HOME/.composer/vendor/bin:$PATH"
% which composer
/Users/mac/.composer/vendor/bin/composer
% composer -V
Composer version 1.10.12 2020-09-08 22:58:5
ターミナルをログアウトするとパスの設定が解除されるため.zshrcファイルにパスの設定を追加します。
% echo 'export PATH="$HOME/.composer/vendor/bin:$PATH"' >> ~/.zshrc
以上でcomposerのインストールは完了です。
Laravelのインストール
Laravelのインストールツール(パッケージ)laravel/installerのインストールを行います。
% composer global require laravel/installer
Changed current directory to /Users/mac/.composer
Using version ^4.0 for laravel/installer
./composer.json has been created
・
・
Use the `composer fund` command to find out more!
インストールしたパッケージの情報は.composer/composer.jsonの中に記述されます。
% more composer.json
{
"require": {
"laravel/installer": "^4.0"
}
}
laravelコマンドでLaravelプロジェクトを作成します。
% laravel new laravel8
インストール完了後、プロジェクトディレクトリに移動して、php artisan serveコマンドを実行します。
% cd laravel8
% php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
ブラウザで確認すると下記の画面が表示されます。
Laravelのインストール with Laravel Jetstream
Laravel8では新たにLaravel Jetstreamが追加されました。Laravel Jetstreamは認証に関する機能でログイン、Email認証、二要素認証を実装することができます。Jetstreamに関しては新しい機能なので別の文書で説明を行う予定です。ここではJetstreamをLaravelと一緒にインストールします。
laravelコマンドを実行する際に–jetを追加します。
% laravel new laravel8 --jet
livewireを利用するかinertiaを利用するか聞かれるので0のlivewireを選択します。
Which Jetstream stack do you prefer?
[0] livewire
[1] inertia
> 0
[commet]livewireを選択すると認証画面などのScaffoldingがLivewire + Blade, inertiaを選択するとInertis + vue.jsで作成されています。Livewireを選択するとScaffoldingを構成するファイルがすべてPHPで記述されています。なぜPHPで記述できるかを知るためにはLivewireを理解する必要があります。[/comment]
teamsを利用するかどうか確認があるのでyesを選択します。
Will your application use teams? (yes/no) [no]:
> yes
インストールが開始されます。インストール完了後はJavaSriptのライブラリのインストールとコンパイルを行います。
事前にnpmのインストールを行っておく必要があります。もしインストールが完了していない場合はnpmのインストールについては下記が参考になります。
Laravelをインストールしたプロジェクトディレクトリに移動して、npmコマンドを実行します。
% cd laravel8
% npm install && npm run dev
実行後、php artisan serveコマンドを実行します。
% php artisan serve
Starting Laravel development server: http://127.0.0.1:8000
ブラウザでアクセスするとエラーが発生します。Jetstremをインストールする場合はデータベースの設定まで行わないとトップページにアクセスすることはできません。
Sqliteデータベースの作成
動作確認のため簡易的にデータベースの作成が行えるsqliteを利用します。sqliteのデータベース用のファイルを作成します。
% touch database/database.sqlite
作成後、.envファイルを更新していsqliteデータベースへアクセスできるように変更を行います。
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_jetstream
DB_USERNAME=root
DB_PASSWORD=
DB_CONNECTIONをsqliteに変更します。
DB_CONNECTION=sqlite
設定後、ターミナルからphp artisan migrateコマンドを実行して、テーブルの作成を行います。
% php artisan migrate
Migration table created successfully.
Migrating: 2014_10_12_000000_create_users_table
Migrated: 2014_10_12_000000_create_users_table (2.08ms)
Migrating: 2014_10_12_100000_create_password_resets_table
Migrated: 2014_10_12_100000_create_password_resets_table (1.23ms)
Migrating: 2014_10_12_200000_add_two_factor_columns_to_users_table
Migrated: 2014_10_12_200000_add_two_factor_columns_to_users_table (1.26ms)
Migrating: 2019_08_19_000000_create_failed_jobs_table
Migrated: 2019_08_19_000000_create_failed_jobs_table (1.18ms)
Migrating: 2019_12_14_000001_create_personal_access_tokens_table
Migrated: 2019_12_14_000001_create_personal_access_tokens_table (1.66ms)
Migrating: 2020_05_21_100000_create_teams_table
Migrated: 2020_05_21_100000_create_teams_table (1.40ms)
Migrating: 2020_05_21_200000_create_team_user_table
Migrated: 2020_05_21_200000_create_team_user_table (1.14ms)
Migrating: 2020_09_09_022058_create_sessions_table
Migrated: 2020_09_09_022058_create_sessions_table (1.67ms)
テーブル作成後にphp artisan serveコマンドを実行してブラウザで確認すると先ほどまでエラーが出ていた画面ではなくトップページが表示されます。
画面右上にloginとregisterが表示されていることが確認できます。
ユーザの登録
Registerボタンをクリックするとユーザの登録画面が表示されるのでユーザの情報を入力後、Registerボタンをクリックします。
ログイン後は下記のDashboard画面が表示されます。
Mac環境でのLaravelのインストールからLaravelユーザの登録までの一覧の流れを確認することができました。