Mac OS Homebrew の PHP 関連の formulae 変更されて大変だった (2018年4月)

自分の 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

メモ

concrete5 Japan

Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.