Laravel SailでプロジェクトのPHPのバージョンを変えるには、docker-compose.ymlファイルを編集する必要があります。
DockerとLaravel Sail初心者向けに、どこをどのように編集するか、分かりやすく説明していきますね。
Laravel Sailで使用するPHPの変更方法を分かりやすく説明
まずは変更するdocker-compose.ymlファイルから確認していきましょう。
①docker-compose.ymlファイルを確認
Laravel Sailを使ってLaravel のプロジェクトを新規作成すると、プロジェクトの中にdocker-compose.ymlファイルができます。
【Windows11での画面】

このファイルには、Dockerを使ってLaravelプロジェクトを動かす時の設定が定義されています。
デフォルト状態では、上部は、次のようになっています。
【docker-compose.yml】
# For more information: https://laravel.com/docs/sail
version: '3'
services:
laravel.test:
build:
context: ./vendor/laravel/sail/runtimes/8.1
dockerfile: Dockerfile
args:
WWWGROUP: '${WWWGROUP}'
image: sail-8.1/app
extra_hosts:
- 'host.docker.internal:host-gateway'
ports:
- '${APP_PORT:-80}:80'
- '${VITE_PORT:-5173}:${VITE_PORT:-5173}'
environment:
WWWUSER: '${WWWUSER}'
LARAVEL_SAIL: 1
XDEBUG_MODE: '${SAIL_XDEBUG_MODE:-off}'
XDEBUG_CONFIG: '${SAIL_XDEBUG_CONFIG:-client_host=host.docker.internal}'
volumes:
- '.:/var/www/html'
networks:
- sail
depends_on:
- mysql
- redis
- meilisearch
- mailhog
- selenium
PHPのバージョンを変えるには、build:contextとimageを変えていきます。
② contextを変更
contextでは、Laravelのvendorディレクトリの中にあるディレクトリを参照しています。
具体的には、vendor/laravel/sail/runtimesの中です。

この中でPHPのバージョンも指定されています。
2022年11月8日現在、下記のPHPバージョンがデフォルトで入ってきますが、この中から、プロジェクト用のPHPを設定します。
- 7.4
- 8.0
- 8.1
- 8.2
現在のところ、Laravelのバージョン9でプロジェクトを作ると、デフォルトでは、PHP8.1が使われます。もしPHPのバージョンを8.1から8.0にしたいといった場合には、contextの部分を下記のように変えます。
【変更前】
context: ./vendor/laravel/sail/runtimes/8.1
【変更後】
context: ./vendor/laravel/sail/runtimes/8.0
③imageを変更
imageも変えておきましょう。
【変更前】
image: sail-8.1/app
【変更後】
image: sail-8.0/app
imageは、コンテナに読み込まれる元となるファイルです。
image(イメージ)と聞くと画像を連想しちゃいますが、画像ではありません。dockerでは、イメージは「コンテナの中に入れる元データのようなもの」と考えておいてください。
変更後のdocker-compose.ymlファイルは下記のようになります。
【PHPバージョンを8.0にするときのdocker-compose.yml記述例】

④変更前のPHPバージョンを確認
sail php –version を実行して、phpバージョンを確認しておきましょう。
sail php --version
⑤コンテナイメージの再構築コマンドを実施
その後、下記コマンドを実行します。コンテナイメージを再構築します。数分かかりますので、気長に待ちましょう。
sail build --no-cache
⑥パッケージの更新
再びコマンドを入れられるようになったら、下記を入れて既存のパッケージも更新します。
sail composer update
⑦ sailを再起動
Laravel Sailを再起動します。
sail restart
再び sail php –version を行って、バージョンが変わっているかチェックしておきましょう♪

さいごに
無事、PHPバージョン変わりましたか?
なおLaravelは、現在の最新版Laravel9では、php8.0以上が必要です。Laravel8では、php7.3以上となります。
バージョンアップごとに、phpのバージョンが上がっている感がありますね。
わたしが運営している学習サイト【Laravelの教科書】では、最新のLaravel9を使ったLaravelの使い方を分かりやすく解説しています。
Laravelの使い方を学びつつ、フォーラムサイトを作成していく内容になっています。
【Laravelの教科書で作成する画面例】


基礎編は無料です。詳しい内容を知りたいと思ったら、下記ボタンをクリックしてくださいね。


コメント