【PHPが使えない!】MacをMontereyにアップデートした場合の解決方法

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.42019年11月28日2021年11月28日まで2022年11月28日まで
8.02020年11月26日2022年11月26日まで2023年11月26日まで
8.12021年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コマンドと呼ばれています。まずはじめに、公式サイトを⬇︎に載せておきますので、興味のある方は確認してみてください。

さらに、上記から該当する部分を抜き出してみました。

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が使えなくなったら、ここまで解説してきた方法を試してみてください。

タイトルとURLをコピーしました