路徑,可以用which httpd確定
/usr/sbin/http
版本
httpd -v Server version: Apache/2.4.51 (Unix) Server built: Feb 12 2022 02:40:22 # more details (Capital V) httpd -V
重啟httpd,
sudo apachectl -k restart
加-k會有更多信息。比如PHP需要code sign,不加就不告訴你
[Mon Jun 20 23:42:05.630597 2022] [so:error] [pid 78750] AH06665: No code signing authority for module at /usr/local/Cellar/php/8.1.1/lib/httpd/modules/libphp.so specified in LoadModule directive. httpd: Syntax error on line 190 of /private/etc/apache2/httpd.conf: Code signing absent - not loading module at: /usr/local/Cellar/php/8.1.1/lib/httpd/modules/libphp.so
在Monterey里,載入PHP需要code sign。可以參考這篇文章。
如果PHP版本更新了,比如用了brew update,那麼需要對新版本的libphp 進行 code sign。
如果Mac電腦重啟了,也需要codesign,比如
codesign --sign "<certificate name>" --force --keychain ~/Library/Keychains/login.keychain-db /usr/local/Cellar/php/<php version>/lib/httpd/modules/libphp.so
需要根據php安裝改變上面libphp.so的路徑。有時Mac上面用brew安裝的php升級了,也需要修改上面的<php version>。
查找apache2 config 裡面用的libphp.so地址
grep -nir "^loadmodule.*php" /etc/apache2
在Mac OS里,apache2 conf的可能路徑是/etc/apache2/httpd.conf,可以用sudo許可權編輯
mvim /etc/apache2/httpd.conf
Document root路徑
/Library/WebServer/Documents
Config file (配置文件)路徑
/etc/apache2/httpd.conf
log (日誌)路徑
cd /var/log/apache2 # in one window tail -f error_log # in another window tail -f access_log