PHP
homebrew

Homebrew の PHP インストール方法が変わって imagick 入れるまで

Homebrewの homebrew/php が使えなくなった。

参考: https://brew.sh/2018/01/19/homebrew-1.5.0/

php71とかで始まるパッケージはすべて消失したので、php@7.1で入れる。こちらのページを参考に: http://rskull.hateblo.jp/entry/2018/04/06/164236

で、intlとかmcryptとかは最初から入ってたんだけど、 imagickを入れたかった。でも、php71-imagickはもうない。ので、pecl で入れる。

pecl install imagick

が、php -v 実行するとエラーが出る。

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/local/Cellar/php@7.1/7.1.16/lib/php/20160303/imagick.so' - dlopen(/usr/local/Cellar/php@7.1/7.1.16/lib/php/20160303/imagick.so, 9): image not found in Unknown on line 0

ライブラリがロードできてないとな。たしかに、/usr/local/Cellar/php@7.1/7.1.16/lib/php/20160303/imagick.soというファイルはなくて、実際探すとファイルは/usr/local/lib/php/pecl/20160303/imagick.soにある。homebrewとpeclの相性を解決しないといけない気がする。

で、php.iniを修正するんだけど、なんかphp.iniを開くと、一番上にimagick.soが無理やり追加されててひどい。

extension="imagick.so"
[PHP]

ひどいので、この行を削除して/usr/local/etc/php/7.1/conf.d/ext-imagick.ini を作った。

[imagick]
extension="/usr/local/lib/php/pecl/20160303/imagick.so"

これで、php -iでチェックすると、ちゃんと入っている模様。

imagick

imagick module => enabled
imagick module version => 3.4.3
imagick classes => Imagick, ImagickDraw, ImagickPixel, ImagickPixelIterator, ImagickKernel

参考リンク: https://github.com/Homebrew/homebrew-core/issues/26108