背景:MAC 12 之后,就把内置的 PHP去掉了,需要自己安装。 准备:先创建自己的证书,用来给PHP的 libphp.so 文件签名。
步骤一、创建证书
1、打开启动台 —> 其他 —> 钥匙串访问,如下图所示

2、在弹框中输入证书名称,比如:PHPCA,证书类型选择代码签名 ,勾选“让我覆盖这些默认”,点击继续。 
3、填写证书信息,有效天数可以自己定义,点击继续  接着往下输入  密钥对信息:密钥大小 2048位,算法 RSA
 密钥使用扩展:签名  以扩展的密钥使用扩展:代码签名  后边就一直是默认不用修改,最后直接“创建”,看到下边的图就是成功了。 
步骤二、使用Homebrew安装PHP
brew install php
安装完成之后,在命令行输入php -v 查看php的版本,我安装的是8.1.8 版本。 
步骤三、对libphp.so 文件签名
在命令行输入,其中php@8.1 修改为自己安装的版本,可以在/opt/homebrew/opt/ 目录下查看,主要是对libphp.so 文件签名, PHPCA 为自己步骤一生成的签名文件名字。
codesign --sign "PHPCA" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
回车后会出现弹框,输入自己的开机密码就行,如下图所示  完成之后,在命令行会显示:/opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so: replacing existing signature , 看到这个就说明成功了。
步骤四、修改Apache的配置文件
sudo vi /etc/apache2/httpd.conf
在配置文件中添加下边一行,PHPCA 为第一步生成的证书名字。
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so "PHPCA"
找到 DirectoryIndex 修改为
DirectoryIndex index.php index.html
然后重启 apachectl 就可以了
sudo apachectl start
|