自分の Mac では Valet を使っています。 concrete5 の開発に日々役立っています。
PHP7.2 で使っていました。
ただ、全てのアプリで対応していないものがあり、今回は Mautic をローカルで動かしたいと思って、PHP 7.1 にダウングレードを試みました。
すご~くハマってしまったので書き残します。
原因は、Homebrew が homebrew/php を deprecate し、古い時代の ini 設定ファイルがローカルの Mac にゴミとして残り続けていたことでエラーを吐き出していました。
今 PHP は 新しく php@7.1 などと @ の後にバージョンが着くようになり、最新バージョンは「php」だけになりました。
再現手順
デフォルトの php7.2 をアンインストールし、php7.1 を入れます。
$ brew remove php
$ brew install php@7.1
$ echo 'export PATH="/usr/local/opt/php@7.1/bin:$PATH"' >> ~/.bash_profile
$ echo 'export PATH="/usr/local/opt/php@7.1/sbin:$PATH"' >> ~/.bash_profile
$ brew services start php@7.1
ちゃんとインストールされたかな・・・と確認してみると。
$ php -v
Warning の嵐。
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-intl/intl.so' - dlopen(/usr/local/opt/php71-intl/intl.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-intl/intl.so' - dlopen(/usr/local/opt/php71-intl/intl.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-mcrypt/mcrypt.so' - dlopen(/usr/local/opt/php71-mcrypt/mcrypt.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php71-mcrypt/mcrypt.so' - dlopen(/usr/local/opt/php71-mcrypt/mcrypt.so, 9): image not found in Unknown on line 0
削除されていない古い ini ファイルはこちら
$ ls /usr/local/etc/php/7.1/conf.d
ext-igbinary.ini ext-intl.ini ext-mcrypt.ini ext-opcache.ini ext-redis.ini
これらを削除してしまったら良いです。
$ rm /usr/local/etc/php/7.1/conf.d/*
ついでに、非推奨の homebrew/php も消します。
$ brew untap homebrew/php
感謝!「homebrewでphp71-*系がインストールできなくなってた」
3日間ぐらい悩まされて、その間、MAMP に逃げてたんですが、
下記の記事に助けられました!
*homebrewでphp71-系がインストールできなくなってた
http://rskull.hateblo.jp/entry/2018/04/06/164236
ありがとうございます!
Valet 再インストールの手順
参考 Laravel/Valet 2.0 のアップグレードでハマったのでメモ
https://qiita.com/katzueno/items/4e7a65bcab18aa2b2f23
クレジット
この記事が役に立ったら、「 CMS は concrete5 が一番」と頭の中で10回唱えてみてください〜。