【Mac】Homebrewでphp7.4のアップグレード後にPATHを通しても「command not found: php」が出てきたときにやったこと

Homebrewで「brew upgrade」を打ったあとに頭を抱えているみなさまこんにちは。今日はphpについてです。

アップグレードしたら「command not found: php」が出るようになった時の解決方法

「たまにはアップグレードしておかないとね」とbrew upgradeを打ったあと、さていつもの作業をしようかと思ったら

zsh: command not found: php

が出てきて、Laravel動かなかったりなんだりして大慌てになった人、少なくないんじゃないでしょうか。

普通はPATH(パス)を通せば終わり

で、「command not found: php」で検索するとほぼすべてのブログで「PATHを通せ」という指示があると思います。

ターミナルを起動して

brew --prefix php@7.4

と打ってphp@7.4が格納されている場所を探して、仮に「/usr/local/opt/php@7.4」と出てきた場合は

vim ~/.zshrc

で.zshrcファイルを開き、キーボードの「i」を押して入力モードに切り替えて

export PATH="/usr/local/opt/php@7.4/bin:$PATH"
export PATH="/usr/local/opt/php@7.4/sbin:$PATH"

と打ち込んで、escキーを押して入力モードを抜け出したあとに「:wq」と打ってエンターキーを押して

source ~/.zshrc

で入力したPATHを反映させるという一連の作業を行えば…

php -v

でphpのバージョンが表示されてめでたくphpが再び使えるようになるはずです。

PATH(パス)を通しても解決しないときは再起動で解決

普通は↑の作業で解決するはずなんですが、たまに「PATHを通したのにエラーが出る!」という方がいらっしゃいます。まあ自分なんですけれども。結構焦りますよね。

「検索したときに出てくる解決方法を片っ端からやって解決しないときは再インストールするに限る」ということで、ターミナルで

brew reinstall php@7.4

と打って再インストールしてみたところ、インストール完了後にこのような注意書きが出てきました。

If you need to have php@7.4 first in your PATH, run:
echo ‘export PATH=”/usr/local/opt/php@7.4/bin:$PATH”‘ >> ~/.zshrc
echo ‘export PATH=”/usr/local/opt/php@7.4/sbin:$PATH”‘ >> ~/.zshrc

For compilers to find php@7.4 you may need to set:
export LDFLAGS=”-L/usr/local/opt/php@7.4/lib”
export CPPFLAGS=”-I/usr/local/opt/php@7.4/include”

To restart php@7.4 after an upgrade:
brew services restart php@7.4

1段落目のexport PATH…の部分はあちこちのブログで書かれている「パスを通す」作業なので今回は無視して、注目すべきは一番最後にある2行です。

To restart php@7.4 after an upgrade:
brew services restart php@7.4

アップグレードしたあとの再起動方法が書いてあります。

と、いうわけでターミナルを起動して

brew services restart php@7.4

を叩くと…

phpが再起動したようなので「php -v」で確認。

これで無事phpが使えるようになりました!

Homebrewがらみで困ったときは再インストールして、公式の指示を確認するのが一番手っ取り早いですね。上記の通りPATHを通すためのコマンドも出てくるので、思い出す必要がありません。

関連記事