PHP
homebrew
PHP5.6
macOSSierra

[PHP5.6]Unable to load dynamic library '/usr/local/opt/*/*.so' という警告を消す方法

はじめに(事の経緯)

PHPファイルをターミナルから、実行しようとすると、
以下の警告が出てきました。
(macOS High Sierra です。)

$ php -v

で、

>PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-pthreads/pthreads.so' - dlopen(/usr/local/opt/php56-pthreads/pthreads.so, 9): image not found in Unknown on line 0

Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-pthreads/pthreads.so' - dlopen(/usr/local/opt/php56-pthreads/pthreads.so, 9): image not found in Unknown on line 0

 
という警告が出ました。
ハマりまくってさっきようやく消せたので、メモとして残します。

 
自分の場合は、opt の中身が php56-pthreads だったのですが、
この部分は、人それぞれ、入れたものによって違うものが表示されるかもしれません。
 

(検索&トラブル解決の際には、
/php71-intl/intl.so, 9 でエラーになった方のを参考にさせていただきました。)

 
さて、php56-pthreadsがいったいなんなのか、すぐに思い出せなかったのですが、
よくよく調べてみると、ビットゼニーという仮想通貨のCPUマイニングを
試してみた時に、入れたものだと分かりました。

 
なので、なぜ「not found」なのかよくわからなかったのですが、
何か操作した時に消えた(壊れた?)ならもう一度
再インストールすればいいのかなと思い、

 

$ brew install php56-pthreads

 

を実行しました。
しかし、結果は、

 

Error: No available formula with the name "php56-pthreads" 
==> Searching for a previously deleted formula (in the last month)...
Error: No previously deleted formula found.
==> Searching for similarly named formulae...
Error: No similarly named formulae found.
==> Searching taps...
==> Searching taps on GitHub...
Error: No formulae found in taps.

 

というエラーが出てしまいました。

 

解決のためにやった事

 

 

$ mv /usr/local/etc/php/5.6/conf.d ~/DeskTop/backup

 

これを実行する事で、警告&エラーが消えました。

 
/usr/local/etc/php/5.6 にあるconf.d というフォルダを
削除する事で、直りました。
 
いきなり消すのは勇気がいるので、デスクトップにbackupという
空のフォルダを作ってその中にconf.d を移動させました。
 

conf.d の中には [ext-pthreads.ini, ext-opcache.ini]
という2つのファイルが入っていました。
 

なので、conf.d の中にたくさんファイルがあれば、
その数だけ、エラーが返ってくる感じだと思います。
 

(↓こちらの記事を参考に作業しました・感謝)

homebrewでphp71-*系がインストールできなくなってた

 

原因

ある時(2018/3/31 らしい)をさかいに
homebrew/php が廃止(deprecate)された事が原因らしいです。

 

で、中身もろもろは、homebrew/core に移されたらしいのですが、
/usr/local/etc/php/5.6/conf.d の中に、
古い設定が残ってしまっていたのが、よくなかった様です。

 
なので、2018/3/31以前にhomebrewでPHP(バージョン問わず)を
インストールして、

 
しばらくPHPさわらずにいて、
久しぶりに動かそうとすると、
この警告&エラーに遭遇してしまうみたいです。

念のために homebrew/php もuntapしました。

 

廃止されたhomebrew/php も、ない方が良さそうなので、
ついでにuntapしておきました。

 

$ brew untap homebrew/php

 
これで解決。

 

晩飯後にはじめて、サクッと終わるはずが、
夜中の3時までかかってしまった。

 

というか本当にやりたかった事は、
何もできずに終了となりました。
(妙な満足感はあり。)

 

参考にさせて頂いた記事

homebrewでphp71-*系がインストールできなくなってた

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

【Homebrew】PHPの設定に注意!〜Homebrew/phpの廃止〜

助かりました!
これらの記事がなかったら、
今もグーグル翻訳と英語サイトを往復していた気がします。