homebrewでphpを導入し、macOS VenturaのApacheでPHPを有効にして利用しています(導入記事は
こちら)。
macOS Ventura 13.4から13.4.1にアップデートした後、PHPモジュールのロードができなくなっていました。
sudo /usr/sbin/httpd -D FOREGROUND
[Sun Jun 25 16:49:54.095480 2023] [so:error] [pid 3452] AH06663: Unable to find code signature authority on module at /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so that matches authority name "macyarounanoka" configured on LoadModule directive.
httpd: Syntax error on line 555 of /private/etc/apache2/httpd.conf: Syntax error on line 1 of /private/etc/apache2/other/00-http.conf: Code signing error - not loading module at: /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
- -D FOREGROUNDで起動すると発生しているエラーの詳細がわかります。
- /etc/apache2/other/00-http.confにlibphp.soのロード設定済みです。ここでエラーが発生いているが上記ログからわかります。
- brewでは過去のphp8.1が残っているのでそれをそのまま使っています。すでにphp8.2導入済みです。過去に署名した8.1のlibphp.soを利用することで長く使えると思っていました。
php8.1系のアップデートした覚えがないんです。「 Code signing error 」は発生しているので、codesignで再署名しましたが・・・
error: The specified item could not be found in the keychain.で署名できないことがわかりました。
codesign --sign "macyarounanoka" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
error: The specified item could not be found in the keychain.
つい最近やったことは・・・macOS Ventureのアップデートです。13.4から13.4.1にアップデートしました。これが原因なんでしょうか、セキュリティ上のアップデートが影響したんでしょうね・・・
- キーチェインでセルフCA、macyarounanokaの署名を確認してみると有効期限切れでした。かなり前から有効期限切れなんですけど、今まで全く問題なかったんですよね・・・