2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

よりそうAdvent Calendar 2023

Day 20

Laravel SailをPHP 8.3でインストールする

Last updated at Posted at 2023-12-19

別の記事を書く目的で新しいLaravelプロジェクトをインストールしようとしたときに、どうせならPHP 8.3を使ってみようと思ったものの、環境構築で一瞬悩んだので備忘録。

新規Laravelプロジェクトダウンロード & インストール

公式ドキュメントの通りインストールしてみます。

curl -s https://laravel.build/php83-laravel | bash

たちあげてバージョンを確認してみると・・・8.2ですね。

# Laravelのプロジェクトディレクトリに移動
cd php83-laravel

# コンテナ立ち上げ
./vendor/bin/sail up -d

# コンテナ名確認
docker ps 
CONTAINER ID   IMAGE                         COMMAND                  CREATED         STATUS                            PORTS                                                                                    NAMES
934dda75ba0a   sail-8.2/app                  "start-container"        6 seconds ago   Up 4 seconds                      0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:5173->5173/tcp, :::5173->5173/tcp, 8000/tcp   example-app-laravel.test-1

# バージョン確認
docker exec -it php83-laravel-laravel.test-1 php -v
PHP 8.2.13 (cli) (built: Nov 24 2023 08:47:18) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.2.13, Copyright (c) Zend Technologies
    with Zend OPcache v8.2.13, Copyright (c), by Zend Technologies
    with Xdebug v3.3.0, Copyright (c) 2002-2023, by Derick Rethans

ドキュメントを再確認

再度確認してみると、Getting Startedのページとは別のページに記載がありました(そばに書いておいてほしい)。
docker-compose.ymlファイルをいじりなさいということですね。

The default PHP version used by Sail is currently PHP 8.2. To change the PHP version that is used to serve your application, you should update the build definition of the laravel.test container in your application's docker-compose.yml file:

docker-compose.ymlを編集する

ドキュメントの指示に従って、該当する部分を変更します。

    laravel.test:
        build:
            # context: ./vendor/laravel/sail/runtimes/8.2 
            context: ./vendor/laravel/sail/runtimes/8.3 # ここを変更
            dockerfile: Dockerfile
            args:
                WWWGROUP: '${WWWGROUP}'
        # image: sail-8.2/app
        image: sail-8.3/app // ここも変更

再ビルドして立ち上げ

無事PHP8.3でアプリケーションコンテナが立ち上がっていました。

# ビルドと立ち上げ
$ ./vendor/bin/sail build --no-cache && ./vendor/bin/sail up -d

# バージョン確認
$ docker exec -it example-app-laravel.test-1 php -v

PHP 8.3.0 (cli) (built: Nov 24 2023 08:50:08) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.3.0, Copyright (c) Zend Technologies
    with Zend OPcache v8.3.0, Copyright (c), by Zend Technologies
    with Xdebug v3.3.0, Copyright (c) 2002-2023, by Derick Rethans

実際にビルドファイルの構成を見に行ってみる

無事動いたものの、せっかくなので構成を見に行ってみましょう。
対象のディレクトリを探しに行くと、8.2以外にも8.0 ~ 8.3までディレクトリがあります。

image.png

Laravel Sailのパッケージの一部として複数のPHPバージョンの設定ファイルを同梱しておくことで、PHPのバージョン変更 = 再インストールしなおし、ではなく任意のタイミングで再ビルドをかけるだけでよくなっているんですね。
ありがたや。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?