見出し画像

ComposerのPHP参照バージョンを変更した話


要約

LaravelアプリをXserverにデプロイする際、PHPバージョンの不一致により依存関係のインストールが失敗しました。PHPのバージョンを8.2.9に変更し、Composerの設定を調整することで、問題を解決しました。


背景

私はPHPのLaravel (php8.2) を使用してアプリを開発していました。アプリをXserverにデプロイして `$ composer install --no-dev` を実行したところ、以下の通知が表示されました。

$ composer install --no-dev
Your lock file does not contain a compatible set of packages. Please run composer update.
Problem 1
- Root composer.json requires php ^8.1 but your php version (8.0.30) does not satisfy that requirement.
...

このエラーは、使用しているPHPバージョンが不足していることを示していました。デプロイ先のXserverでPHPのバージョンを確認したところ、以下のようになっていました。

$ php -v
PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )

PHPのバージョンが8.0.30であり、これが問題の原因でした。そこで、XserverのPHPバージョンを8.2.9に変更することにしました。

実施したステップ

  1. XserverのコンソールでPHPバージョンの切り替え
    Xserverの管理画面からPHPのバージョンを8.2.9に変更しましたが、SSH経由で確認したところ、バージョンは変わっていませんでした。

$ php -v
PHP 8.0.30 (cli) (built: Aug  3 2023 17:13:08) ( NTS gcc x86_64 )

2.エイリアスの設定
エイリアスを設定して、使用するPHPバージョンを一時的に変更しました

$ alias php='/opt/php-8.2/bin/php'
$ php -v
PHP 8.2.9 (cli) (built: ...)

PHPのバージョンが変更されたことを確認したので、恒久的にエイリアスを設定しました。

$ echo "alias php='/opt/php-8.2/bin/php'" >> ~/.bashrc
$ source ~/.bashrc

3.ComposerのPHPバージョンを変更
Composerが依然として古いPHPバージョンを参照していたため、Composerのパスを確認しました。

$ which composer
/usr/bin/composer

一時的にエイリアスを設定し、Composerが新しいPHPバージョンを使用するようにしました。

$ alias composer='/opt/php-8.2.9/bin/php /usr/bin/composer'

Composerが新しいPHPバージョンを使用していることを確認できました。

$ composer -vvv about
Running 2.5.8 (2023-06-09 17:13:21) with PHP 8.2.9 on Linux

恒久的に設定を変更しました。

$ echo "alias composer='/opt/php-8.2/bin/php /usr/bin/composer'" >> ~/.bashrc
$ source ~/.bashrc

結果

最終的に、Composerが正しいPHPバージョンを参照するようになり、無事に依存関係のインストールが完了しました。

$ composer install

これで、ComposerのPHP参照バージョンを変更することができ、Laravelアプリを問題なくXserver上で動作させることができました。

まとめ

PHPバージョンの不一致により依存関係のインストールが失敗する問題に直面しましたが、PHPバージョンの確認とエイリアス設定を通じて解決しました。同様の問題に直面した際には、PHPバージョンの確認と適切なエイリアス設定を試してみることをお勧めします。これにより、Composerが正しいPHPバージョンを参照し、依存関係のインストールが行えるようになります。


この記事が気に入ったらサポートをしてみませんか?