Homebrew/homebrew-php: ? Homebrew/php (deprecated)
Homebrew 1.5 で、homebrew/coreに統合されたのこと。
php53, php54, php55 は削除、php56, php70, php71 は php@5.6, php@7.0, php@7.1 として core へ。 php71-* のような拡張のパッケージは削除され、php@7.1 で組み込みでビルドされている。
私のマシンには php53, php56, php71 が入っているので、これらをどうにか移行する。
とりあえず、homebrew/php は外す。
brew untap homebrew/php
php56, php71は入れ直し
brew ls | grep php56 > ./brew-php56-installed.txt # 後で確認するためインストール済み拡張を記録しておく
brew ls | grep php71 > ./brew-php71-installed.txt
brew uninstall --force $(brew ls | grep php56)
brew install php@5.6
brew uninstall --force $(brew ls | grep php71)
brew install php@7.1
anyenv/phpenvへシンボリックリンクを張ってバージョン利用可能にする。
ln -s /usr/local/opt/php@5.6 ~/.anyenv/envs/phpenv/versions/5.6-brew
ln -s /usr/local/opt/php@7.1 ~/.anyenv/envs/phpenv/versions/7.1-brew
起動確認
phpenv local 5.6-brew && phpenv rehash
php -v
Failed loading /usr/local/opt/php56-xdebug/xdebug.so: dlopen(/usr/local/opt/php56-xdebug/xdebug.so, 9): image not found
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-igbinary/igbinary.so' - dlopen(/usr/local/opt/php56-igbinary/igbinary.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-igbinary/igbinary.so' - dlopen(/usr/local/opt/php56-igbinary/igbinary.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-imagick/imagick.so' - dlopen(/usr/local/opt/php56-imagick/imagick.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-imagick/imagick.so' - dlopen(/usr/local/opt/php56-imagick/imagick.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-redis/redis.so' - dlopen(/usr/local/opt/php56-redis/redis.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-redis/redis.so' - dlopen(/usr/local/opt/php56-redis/redis.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-ssh2/ssh2.so' - dlopen(/usr/local/opt/php56-ssh2/ssh2.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-ssh2/ssh2.so' - dlopen(/usr/local/opt/php56-ssh2/ssh2.so, 9): image not found in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-timecop/timecop.so' - dlopen(/usr/local/opt/php56-timecop/timecop.so, 9): image not found in Unknown on line 0
Warning: PHP Startup: Unable to load dynamic library '/usr/local/opt/php56-timecop/timecop.so' - dlopen(/usr/local/opt/php56-timecop/timecop.so, 9): image not found in Unknown on line 0
PHP 5.6.35 (cli) (built: Mar 31 2018 20:21:20)
Copyright (c) 1997-2016 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
/usr/local/etc/php/{version}/conf.d/
に設定ファイルがあるので、動かない拡張は一旦呼び出しを無効化する。
(extension="/usr/local/opt/php56-*.so"
となっているものをコメントアウト)
pear
, pecl
について、設定パスが古い場合があるので必要に応じて /usr/local/etc/php/{version}/conf.d/pear.conf
を pear.conf.default
に置換える。
php -m
コマンドでインストールされている拡張を確認して不足があれば pecl
で追加する。
xdebug
PHP 5.6のxdebugは2.5.5が最終バージョンなので以下のようにバージョン指定で入れる。
pecl install xdebug-2.5.5
pecl install後、conf.d/ の各拡張設定ファイルのコメントアウトしたextensionパスを設定し直す。
/usr/local/Cellar/php@5.6/5.6.35/pecl/20131226/redis.so
のようにフルパスで指定しておく。
php53 については、php-buildで入れ直した方がいいんだろうけど、とりあえずそのまま。動かなくなった拡張のみpeclでインストールしなおし。
こんなレポジトリも見つけた https://github.com/homebrew-backup/homebrew-php