🚑

macOSのApacheをbrew版に切り替える手順メモ

2022/12/29に公開

Apache が起動しなくなった

macOS Monterey にアップデートしたら Apache が起動しなくなった。

ぐぐってみると署名してないプログラムを起動させない仕組みが入ったそうで、Apache は標準で入っているので署名されているらしいのだが、その中で使っている野良モジュールがひっかかっているらしい。とりわけ PHP のモジュールでひっかかっている人が多いようだが、自分のところでは Passenger のモジュールがひっかかっていた。

対策は二つある。一つは自力で署名する方法。もう一つは標準で入っている Apache を使わず署名のない brew 版を使う方法。自力は面倒な上に今後も署名を気にかける必要があるので、後者の brew 版を使うことにした。

手順

brew で入れる

sudo xcodebuild -license accept
brew install httpd

/usr/local/etc/httpd に入るので /usr/local/etc 配下を Git 管理しておくのおすすめ

cd /usr/local/etc
git init
git add -A
git commit -m "initial commit"

httpd.conf でデフォルトのポートが 8080 になってるので 80 に変更する

/usr/local/etc/httpd/httpd.conf
-Listen 8080
+Listen 80

-#ServerName www.example.com:8080
+ServerName xxx.local

+# 最後のあたりに入れておく
+Include /usr/local/etc/httpd/other/*.conf

元の other を新しい方に引っ越し

cp -r /etc/apache2/other /usr/local/etc/httpd

元の(標準の) Apache は止めておく

sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist

問題ないか確認

apachectl configtest
apachectl -S

反映

brew services restart httpd

雑感

macOS をアップデートするたびに Apache 関連ではまっているような気がするので今後は影響を受けないよう brew 版だけを利用した方がいいかもしれない。

参考

https://qiita.com/Arime/items/e1df2a8c3d4c2ce75069
https://qiita.com/rryu/items/6968c1d5b3fe223b0eed

Discussion