未在 apache2.4.51 上使用 CA 加载 'libphp5' 模块

Not loading 'libphp5' module with CA on apache2.4.51

在 Macbook M1Max 上。
'shivammathur/php/php@5.6' 通过 Homebrew 安装 PHP5.6。
并在 Apache 的配置文件(httpd.conf) 中设置模块信息。

LoadModule php5_module /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so "apache2"

然后通过了apachectl语法检查,没有错误。

$ apachectl configtest
[Fri Jan 14 19:48:05.352957 2022] [so:notice] [pid 5436] AH06662: Allowing module loading process to continue for module at /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so because module signature matches authority "apache2" specified in LoadModule directive
Syntax OK

但是,apache 仍然出现以下错误。

[Fri Jan 14 19:50:25.774217 2022] [so:error] [pid 5534] /usr/bin/codesign failed; unable to obtain code signature for module
[Fri Jan 14 19:50:25.774243 2022] [so:error] [pid 5534] AH06663: Unable to find code signature authority on module at /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so that matches authority name "apache2" configured on LoadModule directive.
httpd: Syntax error on line 190 of /private/etc/apache2/httpd.conf: Code signing error - not loading module at: /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so

如何修复它们?

请使用 Homebrew 中的 httpd 包,而不是系统 Apache,因为它需要代码签名。

  • 卸载系统Apache
sudo apachectl stop
sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
  • 确保使用 brew
  • 安装了 httpd
brew install httpd
  • 然后您可以使用 /opt/homebrew/etc/httpd/httpd.conf 配置文件将 httpd 配置为 运行 PHP。

  • 完成后,重新启动 httpd 它应该可以工作。

brew services restart httpd