Laravel Sailでプロジェクトを作成するとデフォルトで最新のPHPバージョンが選択されますが、レンタルサーバーなどで利用できるPHPのバージョンが限定される場合に困ります。
この記事ではLaravel Sailで利用するPHPのバージョンを変更する手順を紹介します。
この記事でわかること
- Laravel(Laravel Sail)で利用するPHPのバージョンの変更方法
docker-compose.ymlの修正
Laravel SailではPHP実行環境をDockerコンテナで利用可能にしています。Laravelの開発で利用するDockerコンテナは作成したLaravelプロジェクト内のdocker-compose.ymlファイルに定義されていますので、定義ファイルを修正することで利用するPHPのバージョンを変更することが可能です。
ここではPHP8.1からPHP8.0に変更してみます。Laravelプロジェクトのディレクトリにあるdocker-compose.ymlを開き、laravel.testサービス内のbuild部分とimage部分を変更します。
...(省略)
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.1
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.1/app
...(省略)...(省略)
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.0
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.0/app
...(省略)2022/08/05現在、利用できるPHPのバージョンは7.4、8.0、8.1の三種類です。
コンテナイメージの再構築
設定を反映するために以下のコマンドを実行します。Linuxターミナルから実行してください。
sail build --no-cacheコンテナの再構築には時間がかかりますのでコーヒーでも飲みながら気長に待ちましょう。
再構築が完了したらコンテナを起動します。
sail up -dこれでPHPのバージョンが変更できました。
PHPパッケージの更新
PHPのバージョンを変更した直後はhttp://localhostにアクセスしても正常にLaravelアプリが表示されないと思います。理由はLaravelが依存しているPHPパッケージ群が変更前のPHPバージョンに合ったものを利用しようとしているからです。そこで正しくLaravelが使えるように以下のコマンドを実行して新しいPHPバージョンに合ったPHPパッケージに更新しましょう。
sail composer updatePHPパッケージの更新が終わったらコンテナを再起動します。
sail restarthttp://localhostにアクセスしてLaravelアプリが起動していることを確認してみましょう。PHPのバージョンが正しく変更されていればWelcome画面の右下に変更後のPHPバージョンが表示されるはずです。

まとめ
この記事ではLaravel Sailで利用するPHPのバージョン変更について解説しました。デプロイ先がレンタルサーバーの場合はPHPのバージョンが決められている、あるいはバージョンが低い場合がありますので、この方法で実行環境に合ったPHPバージョンに切り替えてからLaravelアプリの開発を行うと良いと思います。
以上です。それではまた。
