この章では、Laravelのインストール手順とそれに対応するPHPのバージョン選定について解説します。
LaravelはPHP上で動作するフレームワークのため、PHPのバージョンや環境設定がアプリケーションの安定性に直結します。
Laravelはバージョンごとに必要なPHPの最小要件が定められており、たとえばLaravel 10では PHP 8.1 以上が求められます。
開発環境でこの要件を満たしていない場合、インストール時にエラーが発生するだけでなく、アプリケーションの実行中にも予期せぬ不具合につながる可能性があります。
そのため、Laravelをインストールする前に使用するPHPのバージョンを確認し、必要な拡張モジュール(mbstring や pdo_mysql など)が有効になっているかをチェックすることが重要です。
この章では、Dockerを用いた環境構築を前提として、Laravelのインストール手順とPHPバージョンの整合性確認を通じて、安定した開発スタートを切るためのポイントを整理していきます。
Laravelのインストール
今回はDockerを使用するという前提の下でLaravelのインストールを行います。
まずは前回の復習から。
1.PHPコンテナ内に入る
まずは Laravel をインストールする先である PHPコンテナのシェルに入ります。以下のコマンドをターミナルで入力します。
docker compose exec php bash
※ コンテナ名が php でない場合は適宜読み替えてください(例:app, backend など)
phpコンテナに入ることができたら、composerがインストールできているかを以下のコマンドで確かめてみましょう。
composer -v
インストールされていない場合はインストールします。
composer install
2. LaravelをComposerでインストール
composer create-project --prefer-dist laravel/laravel .
※1 .(ドット)は現在の作業ディレクトリにインストールする指定です。
※2 Laravelの最新安定版が自動的にインストールされ、必要な依存パッケージも含まれます。
インストールしたいLaravelのバージョンを指定する場合は以下の通り指定します。
composer create-project --prefer-dist "laravel/laravel=8.*" .
composer create-project --prefer-dist "laravel/laravel=10.*" .
3. .env の準備と調整
Laravelをインストールすると、自動で.envファイルが生成されるので、以下の項目を調整しましょう。
APP_NAME=Laravel
APP_ENV=local
APP_URL=http://localhost:8080
DB_CONNECTION=mysql
DB_HOST=mysql
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=laravel
※ DB_HOST=mysql の部分は docker-compose.yml のサービス名(MySQL側)に合わせます。
4. Laravelの動作確認
以下を入力してLaravel のバージョンが表示されれば、インストール完了です。
php artisan --version
ブラウザで http://localhost:8080 にアクセスし、「Laravel のウェルカム画面」が表示されれば正常に動作しています。
補足:エラーが出た場合
ブラウザで http://localhost:8080 にアクセスした際に、以下のようなエラーが表示されることがあります。
これは「権限不足です」と言うエラーで、特にWindowsを利用している場合に発生しやすいエラーですので、権限を付与してあげましょう。
sudo chmod -R 777 src/*
Windowsでは開発環境としてWSLを使用しているため、どうしてもファイルの権限で問題が起こりやすいです。
このコマンドはWindowsを使用している方は非常によく出るコマンドですので、合わせて覚えておきましょう。
5.時刻設定
Laravelのインストールが完了し、動作確認までできたら最後に時刻の設定を行っておきましょう。
アプリケーションの動作において時刻の設定は非常に重要で、Laravelではログ、バリデーション、通知、DBのtimestamp など、あらゆるところで影響します。
Laravelのconfig/app.phpへと進み、以下の項目を探してください。
'timezone' => 'UTC',
このままだと世界標準時の時刻となってしまっているため、日本時間に変更しておきましょう。
'timezone' => 'Asia/Tokyo',
以上で日本時間へ変更することが可能となります。
もし、どうしても日本時間に変更されたかどうか確認したい、と言う方がいらっしゃったら、以下のコマンドを入力してみてください。
php artisan tinker
現在の時刻が表示されていればOKです。もし時差がある場合は以下のコマンドを入力してみてください。
php artisan config:clear