はじめに
- Laravel9でアプリ作成中に、artisanコマンド実行後にエラーになって、色々試したので残しておきます。
状況
- Laravel9で、ルート確認するコマンド実行後に、下記エラーあり。
$ php artisan route:list
# エラー内容
PHP Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.27. in /Users/xxxxxx/Desktop/project/laravel-study/vendor/composer/platform_check.php on line 24
Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.27. in /Users/xxxxxx/Desktop/project/laravel-study/vendor/composer/platform_check.php on line 24
- エラー文みると「Composerの依存関係にはPHPバージョン8.0.2が必要だけど、7.4.27になってるよ」と怒られています。
原因
- パスの設定ができていなかったため、エラーになっていた様子。
実際に行った事
- ①PHPが7.4か確認。
$ php -v
#出力結果
PHP 7.4.27
- ②composer updateする前に、PHPのバージョンを指定してから実行。
$ composer config platform.php 8.0.2
$ composer update
- ③PHPのバージョンを指定したけど、下記エラーあり。
[ErrorException]
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.27.
- ④PHPのバージョン指定してupdateしたのに、反映されていない?!ので、変更が反映されていない又はキャッシュの影響?(Laravelはキャッシュが溜まりやすいと先輩からアドバイス頂いたことを思い出しました。)と思い、まずはキャッシュクリアを実行
$ php artisan cache:clear
- ⑤再度updateを実行するも、変わらず。composerをインストールし直す。
$ rm composer.lock
$ composer clear-cache
$ composer install
- ⑥インストール中に、再度下記のエラーあり。
[ErrorException]
Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 8.0.2". You are running 7.4.27.
- ⑦その他の設定が必要そうなものを考えると、パス??かなっと思ったので、パスを確認する。
$ which php
# 出力結果
/usr/local/opt/php@7.4/bin/php
- ⑧パスは、PHP7.4をみる設定をしているので、PHP8.0には繋がらないよねーと原因判明!パスを変更する。
$ export PATH=/Applications/MAMP/bin/php/php8.0.8/bin:$PATH
- ⑨パスが記述されていることを確認
$ vi ~/.zshrc
- ⑩反映させる
$ source ~/.zshrc
- 11.パスもしっかり設定できたので、PHPのバージョン確認とartisanコマンドを実行する。artisanコマンドの実行ができました!
$ php -v
# 出力結果
PHP 8.0.8
$ php artisan list
# 出力結果
Laravel Framework 9.30.1
Usage:
command [options] [arguments]
(略)
まとめ
- 「composer」や「artisan」で色々ググってましたが、パスが原因だとは・・・。時間はかかりましたが、解決できたのでヨシっとしよう。実際の業務では、気軽に削除とか全部をupdateしたら大変なことになるので注意しなくちゃ・・・。