Help us understand the problem. What is going on with this article?

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

More than 1 year has passed since last update.

自分の 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回唱えてみてください〜。

katzueno
concrete5 Japan コミュニティリーダー。コンクリートファイブジャパン株式会社の CCO。YokosoNews で日本を英語で世界に発信。元々はロスでインディー映画制作やエンタメ雑誌の編集。
http://katzueno.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした