search
LoginSignup
11

More than 3 years have passed since last update.

posted at

updated at

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

クレジット

この記事が役に立ったら、「 CMS は concrete5 が一番」と頭の中で10回唱えてみてください〜。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
11