【2023.06.20 追記】
作業用サブマシンで使用しているMacBook Airの調子がイマイチ良くなかったため、思い切ってMontereyをクリーンインストールしたのですが、本記事を参考に設定を進めようとした際にPHPのバージョンやパスなどが違っていたので内容を一部加筆・修正しました。
前回の記事ではmacOSに標準でバンドルされているApacheを使用してlocalhostを動かしました。
PHPを使用しない環境でも特に問題ない場合はこれでも十分でしたが、そうでない場合は“brew install php”でPHPをインストールする必要があります。
ただ、ここで問題になってくるのが、そもそもmacOS Montereyではhttpd.confを編集してもPHPを使うことができません、というか標準でバンドルされているApacheではHomebrewでインストールしたPHPを動かせない、という事です。
そのため、HomebrewでApache(httpd)をインストールして、そっちを起動させてPHPを動かさなければならないようです。
やったこと
- Homebrewをインストール
- PHPをインストール
- Apache(httpd)をインストール
- Apache(httpd)をインストールする
- 標準のApacheを停止させる
- HomebrewでインストールしたApacheを起動させる
- httpd.confを編集
- PHPに関する記述を追加する
- Apacheを再起動する
- phpinfoで確認する
Homebrewをインストール
ターミナルを立ち上げ、以下のサイトのコードをコピーして貼り付けます。
macOS(またはLinux)用パッケージマネージャー ─ Homebrew
パスワードを求められるので入力するとインストールが始まります。
しばらくすると、「Next steps」と表示された部分が出てくるので、そこに書かれている2行をコピーして新たに実行します。
echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> /Users/{UserName}/.zprofile
eval "$(/opt/homebrew/bin/brew shellenv)"
以下のコマンドでインストールできているか確認します。
$ brew -v
バージョン情報やらが出てきたらOKです。
PHP8.1をインストール
再びターミナルで以下のコマンドを入力します。
とりあえず8.1にしてみましたが、違うバージョンが必要な場合は適宜変更してください。
$ brew install php@8.1
ここでエラーが出てしまった場合、エラー内容を確認してみて「Command Line Tools to be installed」とあったら、指示に従って「xcode-select –install」するかXcodeをApp Storeからダウンロードして、やり直してみてください。
次にPHPのパスを通します。
以下のコマンドを入力して設定します。
$ echo 'export PATH="/usr/local/opt/php@8.1/bin:$PATH"' >> ~/.zshrc
$ echo 'export PATH="/usr/local/opt/php@8.1/sbin:$PATH"' >> ~/.zshrc
ここまで進んだら、以下のコマンドでPHPをスタートさせます。
$ brew services start php@8.1
ここまできたらあと少し、一旦ターミナルを終了します。
再びターミナルを起動、以下のコマンドを入力してPHPのバージョンを確認してみます。
$ php -v
バージョンが確認できたら完了です。
Apache(httpd)をインストール
Apache(httpd)をインストールする
ターミナルで以下のコマンドを入力します。
$ brew install httpd
ここは特に問題なく進むと思います。
標準のApacheを停止させる
ターミナルで以下のコマンドを入力してApacheを停止させます。
$ sudo launchctl stop /System/Library/LaunchDaemons/org.apache.httpd.plist
$ sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist
標準のApacheを自動起動させたい場合はこちら。
$ sudo launchctl load -w /System/Library/LaunchDaemons/org.apache.httpd.plist
【参考】macOS に標準インストールされている Apache httpd の自動起動を解除する方法
HomebrewでインストールしたApacheを起動させる
ターミナルで以下のコマンドを入力します。
$ brew services start httpd
これでHomebrewのApacheが起動すると思いますので、localhostにアクセスして確認します。
「It works!」が出ればOK。
httpd.confを編集
HomebrewでApacheをインストールすると、以下のパスにhttpd.confがありますので、これを編集していきます。
/opt/homebrew/etc/httpd/httpd.conf
ここは基本的にこれまでとあまり変わらないので、手前味噌ですみませんが以下の過去記事を参照してください。
→ OS X Yosemiteでlocalhostを使えるようにするための各種設定
→ El Capitanでもlocalhostを使う
→ macOS Mojaveでもlocalhostを使う
PHPに関する記述を追加する
上記の過去記事と異なる点は、PHPに関する記述を追加する事です。
1. LoadModuleの最後に以下を追加する
LoadModuleがずらっと並んでいる行の最後(180行目くらい)に以下を追加します。
LoadModule php_module /usr/local/opt/php@8.1/lib/httpd/modules/libphp.so
<IfModule php_module>
AddType application/x-httpd-php .php
</IfModule>
私の環境ではPHP8.1をインストールしているため、1行目のパスが上記のようになっています。
この「/php@8.1/」はインストールしたPHPのバージョンによって変わってきますので、適宜変更してください。
2. ファイルの最後に以下を追加する
httpd.confの最後に以下の記述を追加します。
<IfModule php_module>
PHPINIDir /usr/local/etc/php/8.1/
</IfModule>
Apacheを再起動する
ターミナルで以下のコマンドを入力してApacheを再起動させます。
$ sudo apachectl restart
phpinfoで確認する
エディタで以下のコードをコピペしてWebServer/Documents にphpinfo.phpと名前をつけて保存します。
(名前は適当でも構いません)
<? php phpinfo(); ?>
localhostにアクセスして確認します。
PHPのバージョン情報等が表示されれば、無事完了となります。
さいごに
今年(2023年)の秋頃にはmacOS 14 Sonomaがリリースされる見込みです。リリース後しばらくは恒例の不具合祭りが開催されるかと思われますので、お祭り騒ぎがひと段落するまではOSのアップデートを控えようと思っております。