Edited at

[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の廃止〜

助かりました!

これらの記事がなかったら、

今もグーグル翻訳と英語サイトを往復していた気がします。