macOS BigSurにて、今日macを再起動したらapacheが動かない。時々こういうことがある。
下記の通りHomebrewでインストールするようにしてからはトラブルは少なくなったのだが、brew upgradeとかすると、時々発生する。
今回は、エラーログにも何もエラーが書き込まれていない。
# エラーログを見る tail /usr/local/var/log/httpd/error_log
# M1 Macでエラーログを見る tail /opt/homebrew/var/log/httpd/error_log
続いて、再起動してみる
brew services restart httpd
正常に起動したと出る。でも、実際には起動していない。
そこで、サービスではなく普通に起動してみる。おっと、ようやく理由が表示された。
$ /usr/local/bin/apachectl start
httpd: Syntax error on line 542 of /usr/local/etc/httpd/httpd.conf: Cannot load /usr/local/opt/php/lib/httpd/modules/libphp.so into server: dlopen(/usr/local/opt/php/lib/httpd/modules/libphp.so, 10): Library not loaded: /usr/local/opt/icu4c/lib/libicuio.67.dylib
Referenced from: /usr/local/opt/php/lib/httpd/modules/libphp.so Reason: image not found
ちなみに...
# M1 Macの場合 $ /opt/homebrew/bin/apachectl start
どうやら、PHPでlibicuio.67.dylibが存在しないためにエラーが出ているようだ。
エラーメッセージで検索してみると以下が見つかる。なるほど、brewでバージョンをスイッチすれば良いようだ。
ただし、この対策をすると、ほかのパッケージが動かなくなりそう。。。そこで、phpをupgradeすることにした。
brew upgrade php
すると正しく動くようになった。良かった。