LoginSignup
7
3

More than 1 year has passed since last update.

【Laravel】PHPのバージョンを変更する

Last updated at Posted at 2022-02-09

環境

docker-compose: 1.29.2
Laravel Framework: 8.80.0
Laravel Sail: 1.13.2

Laravel Sailを使用したLaravelプロジェクトになります。

手順

docker-compose.yml

Laravelのドキュメントにも手順がありますが、
それに則れば実現できるとは思います。

docker-compose.yml
# PHP 8.1
# ...
services:
  laravel.test:
    build:
      context: ./vendor/laravel/sail/runtimes/8.1
    image: sail-8.1/app
# ...

# PHP8.0
# ...
services:
  laravel.test:
    build:
      context: ./vendor/laravel/sail/runtimes/8.0
    image: sail-8.0/app
# ...

# PHP7.4
# ...
services:
  laravel.test:
    build:
      context: ./vendor/laravel/sail/runtimes/7.4
    image: sail-7.4/app
# ...

変更したバージョンで記載されているように、
laravel.testcontextimageを修正すれば万全です。

sailをbuildし直す

あとは、修正した内容を反映してあげればOKです。
以下のコマンドを叩きましょう。

sailをbuildし直す
$ ./vendor/bin/sail build --no-cache

少し時間がかかりますが、コーヒーでも飲みながら待ちましょう。
(私はコーヒーを飲めませんが・・・w)

完了

これで基本的な対応は完了です。

sailを立ち上げる
$ ./vendor/bin/sail up -d

本当に変更されているか確認しましょう。

PHPのバージョンを確認
$ ./vendor/bin/sail php -v

以上です!!

注意点 ハマったこと

私はPHPのバージョンを8.1から8.0にしようとしましたが、
うまく変更されず8.1地獄に陥っていました。

もちろん上記の手順はしっかりと踏みました。
それでも、ダメだったんですね・・・。

原因は単純

原因は単純で、PHPのバージョンの最新が8.1になったからです。

今までうまくいっていたのは、
7.4と8.0とメジャー・バージョン番号(7と8のこと)が異なっていたためです。

8.1が出た今では、8系として8.1に優先度が吸われてしまい、
8系(8.1)にした後、8.0に変更する
という細かな指定が必要になった訳です。

そして、この対応が行われたのが、
Laravel Sail: 1.13.1
です。

解決方法

つまり、Laravel Sailのバージョンを上げましょう。

Laravel Sailのバージョンを上げる
$ ./vendor/bin/sail composer update laravel/sail

これで、解決します!!

まとめ

PHPのバージョンを変えるなんて簡単だ

そう思っていた時期が私にもありました・・・。

私はここに至るまでに2日以上の時間と、
先輩の時間をめっっっっっっっっっっっちゃ使ってもらってしまいました!!!!

この記事はその集大成という訳です。
同じ苦しみを味わってる人がいたら、早くバージョンを上げるんだッ!!!!!

7
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
3