はじめに
こんばんは。
備忘録です。
symfony cliをインストールして起こったこと & 対処法です。
本題
まず、symfony cliをインストール後コマンドを実行すると以下のようなエラーが出ました。
$ symfony console Fatal error: Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0". You are running 7.3.11. in /path/to/vendor/composer/platform_check.php on line 24 exit status 255
????????
$ php -v PHP 7.4.16 (cli) (built: Apr 25 2021 08:08:01) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.16, Copyright (c), by Zend Technologies
????????????????????
phpのバージョンは 7.4.16なのに 7.3.11になってるってどういうことでしょう?
調べてみると、現状ローカルに phpenvを入れて、 7.4にしていて、macに入っていたもともとのバージョンはまさに 7.3.11でした。
もともとのバージョンの方を見られている??
phpenvでバージョン切り替えている意味は??
まぁじゃあいいや。
ということで、macのphpバージョン自体をphpenvと同じ7.4.16にあげました。
その後同じく symfony console
を実行しても、同じエラーが出ました。
ますます謎は深まります。
色々調べていたら、見つけました。
どうやら、 ~/.symfony/php_versions_2.json
ってのが怪しそうです。
$ cat ~/.symfony/php_versions_2.json [ { "version": "7.3.11", "path": "/usr", "php_path": "/usr/bin/php", "fpm_path": "/usr/sbin/php-fpm", "cgi_path": "", "php_config_path": "/usr/bin/php-config", "phpize_path": "/usr/bin/phpize", "phpdbg_path": "", "is_system": false } ]%
これが犯人っぽいです。
symfonyコマンドでも発見できました。
$ symfony php -v PHP 7.3.11 (cli) (built: Jun 5 2020 23:50:40) ( NTS ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.11, Copyright (c) 1998-2018 Zend Technologies
これを変更するにはどうするの?と思って調べてたら、いいコマンドがありました。
$ symfony local:php:refresh
phpenvもcomposer 入れたときに rehashたたくしこれで行けそうです。
symfony local:php:refresh
を実行後再度、 php_versions_2.json
を確認すると
$ cat ~/.symfony/php_versions_2.json [ { "version": "7.3.11", "path": "/usr", "php_path": "/usr/bin/php", "fpm_path": "/usr/sbin/php-fpm", "cgi_path": "", "php_config_path": "/usr/bin/php-config", "phpize_path": "/usr/bin/phpize", "phpdbg_path": "", "is_system": false }, { "version": "7.4.16", "path": "/usr/local/Cellar/php@7.4/7.4.16_1", "php_path": "/usr/local/Cellar/php@7.4/7.4.16_1/bin/php", "fpm_path": "/usr/local/Cellar/php@7.4/7.4.16_1/sbin/php-fpm", "cgi_path": "/usr/local/Cellar/php@7.4/7.4.16_1/bin/php-cgi", "php_config_path": "/usr/local/Cellar/php@7.4/7.4.16_1/bin/php-config", "phpize_path": "/usr/local/Cellar/php@7.4/7.4.16_1/bin/phpize", "phpdbg_path": "/usr/local/Cellar/php@7.4/7.4.16_1/bin/phpdbg", "is_system": true } ]
$ symfony console -V Symfony 5.2.6 (env: dev, debug: true)
エラーが出ず、実行することができました!
終わりに
インストールしたときによしなに見てくれるもんだと思って、無駄にハマってしまいました。
現場からは以上です。