Macを「Monterey」にアップデートしたら、「PHPが見つかりません…」とエラーが出て困っていませんか?
zsh: command not found: php
「昨日まで普通に使えてたのに〜!!」と文句を言いたい気持ちはよくわかりますが、まずは冷静になって順番に確認していきましょう。
実は、macOS12(Monterey)から、PHPが標準でインストールされません。ですから、Macに標準で入っていたPHPを以前から使っていた方は、Montereyにアップデートすると消えてしまいます。
しかし、問題はありません。PHPは自分でインストールできます。さらに、いくつか必要な設定をすれば、今までと同じようにプログラミングが可能になります。
ただ、「この人の言う通りに進めて大丈夫かなぁ…」と不安な場合もありますよね。そこで、情報ソースもあわせてご紹介していきます。
もちろん、できるだけ信頼度の高い情報を探して確認しました。ですから、「解決できる方法のひとつ」として読んでいただけたらと思います。
この記事では、MacをMontereyにアップデートしてPHPが消えた場合の解決方法について解説しています。必要な手順と、その理由を簡単にまとめてご紹介するので、ぜひ参考にしてください。
MacをアップデートするとPHPが消える理由
まずは、MacをMontereyにアップデートするとPHPが消える理由について、簡単に解説します。と言いたいところですが、詳しく知るために検索しても、Appleの正式な発表は見つかりませんでした。
その代わり、Macの開発者フォーラムで、PHPについて質問している方がいらっしゃったので、興味がある方は⬇︎のページで確認してみてください。
➡︎ Apple Developer「macOS 12.0 -where oh where is PHP」
上記の回答を見る限り、どうやら今後もMacに標準でPHPは入らないようですね。それなら、自分でインストールするしかありません。
そこで、PHPをインストールする方法を探します。なお、プログラミング言語について調べるときに、一番信頼できるのは公式サイトです。
MacにPHPをインストールする方法
では、PHPの公式サイトでイントールする方法を確認します。PHP公式サイトの「インストールと設定」で、Macにインストールする方法が詳しく解説されています。
公式サイトの説明は下記の通りです。
macOS で一番手っ取り早いインストール方法は、 以下のようにして、homebrew を使うやり方です。
1. » brew.sh にある手順に従って、homebrew をインストールします。
2. brew install php
PHP公式サイト「パッケージの使用」より
どうやら、「homebrew」というパッケージを使うと、PHPをインストールできるようです。
homebrewはパッケージマネージャー
ここで、homebrewについて簡単にご紹介します。homebrewは、macOSに必要なファイルを揃えてくれる管理システムです。
そのため、PHPをインストールして使うために足りないファイルがあれば、homebrewが準備を手伝ってくれます。
homebrewを使ってない方は、公式サイトからインストールしてください。ちなみに、僕もhomebrewを使っていなかったので、この機会にイントールしました。
公式サイトにある⬇︎のコードを、ターミナルにコピペして実行します。
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
homebrewをインストールしたら、続いてPHPもインストールしていきます。僕の場合は、Macのアップデート前まで使っていたバージョン「7.4」にしました。
brew install php@7.4
なお、PHPはバージョンごとにサポート期間が決まっています。2021年12月時点での予定を、下記の表にまとめておきます。
PHPのバージョン | リリース日 | アクティブサポート | セキュリティサポート |
---|---|---|---|
7.4 | 2019年11月28日 | 2021年11月28日まで | 2022年11月28日まで |
8.0 | 2020年11月26日 | 2022年11月26日まで | 2023年11月26日まで |
8.1 | 2021年11月25日 | 2023年11月25日まで | 2024年11月25日まで |
PHPのインストールが終わったら、そのままターミナルから必要な設定を行います。
PHPを使うための設定をする
PHPをインストールしたあと、ターミナルには⬇︎の文章が表示されていました。
php@7.4 is keg-only, which means it was not symlinked into /usr/local,
because this is an alternate version of another formula.
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
では、上記の内容を順番に見ていきます。まず、インストールしたPHPを実行するためには「PATHを通す」必要があります。
ちなみに「PATHを通す」とは、ファイルの場所を教えておくことです。パスを通すことで、違う場所からでもPHPが実行可能になります。
ですから、そのままターミナルの2行をコピペして実行しました。なお、Macの状態によって内容は変わるはずですので、表示を確認した上で実行してください。
echo 'export PATH="/usr/local/opt/php@7.4/bin:$PATH"' >> ~/.zshrc
echo 'export PATH="/usr/local/opt/php@7.4/sbin:$PATH"' >> ~/.zshrc
続いて次の2行ですが、どうやらPATHとは関係なさそうです。そこで、Googleで検索してみました。
GNUのmakeコマンドについて
上記の「LDFLAGS」や「CPPFLAGS」などは、GNUのmakeコマンドと呼ばれています。まずはじめに、公式サイトを⬇︎に載せておきますので、興味のある方は確認してみてください。
- GNU:トップページ
- GNU:マニュアル
- GNU:暗黙のルールで使用される変数(このページに説明があります)
さらに、上記から該当する部分を抜き出してみました。
LDFLAGS
Extra flags to give to compilers when they are supposed to invoke the linker, ‘ld’, such as -L.Libraries (-lfoo) should be added to the LDLIBS variable instead.
CPPFLAGS
Extra flags to give to the C preprocessor and programs that use it (the C and Fortran compilers).
GNU make「10.3 Variables Used by Implicit Rules」より
どうやら、ソースコードをコンパイル(コンピューターが実行可能なプログラムに変換すること)するときに追加で必要になる処理のようです。僕には関係なさそうでしたが、とりあえず実行しておきました。
PHPの設定を反映させる
最後に、PHPをリスタートさせます。前述した文章の一番下の行をターミナルにコピペして実行します。
brew services restart php@7.4
「これでPHPの設定が終わった!」と思い、MAMPを開いて作業を再開しました。ところが、まだPHPが使えません。
さらにGoogleで調べてみると、どうやら変更した設定を反映させる必要がありそうです。そこで、ターミナルから下記のコマンドを実行しました。
source ~/.zshrc
すると、アップデート前と同じようにPHPを使えるようになりました。(正直 “ホッ” としました…)
設定が反映されたあとの、ターミナルの表示内容は下記の通りです。
PHP 7.4.26 (cli) (built: Nov 28 2021 16:53:11) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.26, Copyright (c), by Zend Technologies
もし、MacをMontereyにアップデートしてPHPが使えなくなったら、ここまで解説してきた方法を試してみてください。