MacOS Ventura中Apache启用PHP模块签名缺失报错的解决办法
解决MacOS 13 Ventura下Apache加载brew安装PHP模块的签名错误问题
方案一:为PHP模块添加自签名证书(推荐,符合系统安全要求)
创建代码签名证书
- 打开「钥匙串访问」应用,顶部菜单选「证书助理」→「创建证书」
- 证书名称填任意标识(比如「Apache PHP Signer」),证书类型选「代码签名」,勾选「让我覆盖这些默认值」,点击「继续」
- 后续步骤保持默认,最后将证书存储到「系统」钥匙串,完成创建
- 在系统钥匙串找到刚创建的证书,右键「显示简介」,切换到「信任」标签,把「代码签名」设为「始终信任」
为PHP模块签名
打开终端执行命令(替换证书名称为你创建的标识):sudo codesign -s "Apache PHP Signer" /usr/local/opt/php/lib/httpd/modules/libphp.so修改Apache配置
编辑/etc/apache2/httpd.conf,更新LoadModule指令并添加签名标识:LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so "Apache PHP Signer" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>验证并重启Apache
sudo apachectl configtest sudo apachectl restart
方案二:关闭Apache模块签名验证(仅开发环境使用)
如果是本地开发环境,可临时关闭签名检查快速解决:
- 编辑
/etc/apache2/httpd.conf,在LoadModule指令后添加关闭签名的配置:LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so ModuleSignature Off <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> - 额外确认DirectoryIndex包含index.php,确保优先解析PHP文件:
DirectoryIndex index.php index.html - 验证并重启Apache:
sudo apachectl configtest sudo apachectl restart
验证配置
在/Library/WebServer/Documents/下创建或修改index.php,写入:
<?php phpinfo(); ?>
访问http://localhost/index.php,若能正常显示PHP信息页,说明配置生效。
内容的提问来源于stack exchange,提问作者user15539888
相关产品推荐
相关产品推荐

