🚑
macOSのApacheをbrew版に切り替える手順メモ
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 版だけを利用した方がいいかもしれない。
参考
Discussion