MacOS如何颁发证书给php:No code signing authority for module at /opt/homebrew/opt/php/lib/httpd/modules/libphp.so specified in LoadModule directive.

MacOS Apache配置php报错:

[so:error] [pid 19150] AH06665: No code signing authority for module at /opt/homebrew/opt/php/lib/httpd/modules/libphp.so specified in LoadModule directive.

httpd: Syntax error on line 208 of /private/etc/apache2/httpd.conf: Code signing absent - not loading module at: /opt/homebrew/opt/php/lib/httpd/modules/libphp.so


喜欢这个问题 | 分享 | 新建回答

回答

黄太龙

Jan 3, 2024
3 赞

第一步:

MacOS的面板 --> 其他 -->  钥匙串访问 

然后屏幕左上角菜单点击:

钥匙串访问 -->  证书助理 -->  创建证书

创建自签名根证书

第二步:

选择  登录 - 我的证书

找到刚创建的根证书

找到刚创建的证书,用右键点击该证书,选择“显示简介”,然后点开弹窗中的“信任”,全部选择为始终信任。

全部选择始终信任

第三步:

用该证书给自己进行签名,这里libphp.so要换成你自己的路径。

sudo codesign --sign "zhuanfouPHP" --force --keychain  ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php/lib/httpd/modules/libphp.so

签名成功后会提示类似下面:

/opt/homebrew/opt/php/lib/httpd/modules/libphp.so: replacing existing signature


第四步:

在apache配置文件/etc/apache2/httpd.conf中添加指定证书名称,重写导入php模块如下:

LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so "zhuanfouPHP"

“zhuanfouPHP”是我自定义的名称,你可以换成你自己的自定义根证书名称。



最后重启httpd即可发现你的php配置成功了。

“httpd -k restart”或者“sudo apachectl restart”都行。