Symfony3の案件でPHP8だとbin/consoleコマンドが動かなくて詰みました。
MAMPのPHPは7.4が入っているのでWEBブラウザでは開けるけど、artisan や bin/consoleのようなコマンドラインツールはMAC本体のPHPに向いているので動かない。
M1macだからかasdfパッケージマネージャで古いPHP7系を入れようとしてもエラーでコケてインストールできない。
そこでウルトラCを思いついた。
MAMPのPHPだって本体があるんだから必要な時だけフルパスでMAMPに入っている古いPHP呼び出せばいいのでは!?
つまりこう。
/Applications/MAMP/bin/php/php7.4.16/bin/php -v
/Applications/MAMP/bin/php/php7.4.16/bin/php bin/console list
動いた!!
まあ、MAMP経由するからかなんかちょっともっさりしてる気がするけど死んでるよりいいので、最終手段として覚えておくといいと思います。
PHPコマンド自体のリンク先を上記へ振り向ければフルパスは書かなくてもよくなるけど、mac本体のさしているPHPがなんだったかわからなくなるしこういう感じで別にしておいた方がいい気がします。
とはいえこれではコマンドが長すぎるのでMakefile作って
こんな感じにしておけば、 make list とか make php-v で動くので一緒に用意しておくのがおすすめ。
Makefile
php-v:
/Applications/MAMP/bin/php/php7.4.16/bin/php -v
list:
/Applications/MAMP/bin/php/php7.4.16/bin/php bin/console list