homebrew-phpがdeprecatedになったのでphp71-*がインストールできない

おしごとでやってるPHPのプロジェクトでいつも通りの作業をこなしていたら、突然 pcntl がないぞ的なエラーが。

えー、この前の brew update とか brew upgrade とかが原因かー?と思いながら、 brew install php71-pcntl と見つからないと言われる。

ちょっと待ってなにこれ。

原因

結論から言いますと、こちらの通りです。

rskull.hateblo.jp

非常に助かりました。感謝 :bow:

以下、ほぼ上記のブログと同様のことがメモとして書いてあります。


homebrew-phpがdeprecatedになって、homebrew-coreに移行されたらしい。

github.com

ということでhomebrew-phpは全て消して、移行後のものを再インストールすることに。

brew list | grep phpphp71-* の諸々を確認して brew uninstall php71-* でひとつずつアンインストールしていく。
brew uninstall php71 も最後に忘れずに。
なんか自分の環境だと php@7.1(homebrew-coreのPHP) も入ってたので brew uninstall --force php@7.1 も実行した。

綺麗になったら brew install php@7.1

僕はfishを使ってるので下記のようにパスを通す。

$ echo 'set -g fish_user_paths "/usr/local/opt/php@7.1/bin" $fish_user_paths' >> ~/.config/fish/config.fish
$ echo 'set -g fish_user_paths "/usr/local/opt/php@7.1/sbin" $fish_user_paths' >> ~/.config/fish/config.fish

パスを通したらターミナル再起動。
which php でパス確認。

php -v で警告が出てくるので /usr/local/etc/php/7.1/conf.d/ 以下を削除した(削除前にちゃんと確認すること)。

$ ls /usr/local/etc/php/7.1/conf.d/
$ rm /usr/local/etc/php/7.1/conf.d/*.ini

これで警告が消える。

pcntlphp -m | grep pcntl で無事確認できた。