前段时间更新了系统到 MAC OS Monterey, 由于之前使用的是系统自带的apache和php,更新后发现项目无法运行
查看apache配置后发现php模块已经移除,配置信息也被重置
由于很久没有动过,所以又是一番折腾
使用brew安装
brew install php@7.4
打开 “钥匙串访问->证书助理->创建证书颁发机构” 创建证书颁发机构:
返回钥匙串访问的证书列表,信任此证书
// 注意libphp7.so路径
sudo codesign --sign "php RootCA" --force --keychain ~/Library/Keychains/login.keychain-db /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
以系统自带apache为例
由于上次更新系统导致配置丢失的惨痛教训,不建议直接修改/private/etc/apache2/httpd.conf的配置
可修改/private/etc/apache2/other路径下的配置
private/etc/apache2/other/php7.conf 新增两行
LoadModule rewrite_module libexec/apache2/mod_rewrite.so
LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so "php RootCA"
// 之前的配置
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
</IfModule>
配置VirtualHost private/etc/apache2/other/vhosts.conf
// 默认网站根目录/Users/Apache 根据个人情况修改
<VirtualHost _default_:80>
DocumentRoot "/Users/Apache"
<Directory "/Users/Apache">
Options Indexes FollowSymLinks Multiviews
MultiviewsMatch Any
AllowOverride All
Allow from all
Order allow,deny
Require all granted
</Directory>
</VirtualHost>
// 本地调试域名 mall.com
// 网站根目录/Users/project/mall/public
// 根据个人情况修改
// 配置完成后需要同步修改host把域名解析指向本地
<VirtualHost *:80>
DocumentRoot "/Users/project/mall/public"
ServerName mall.com
ServerAlias dev.mall.com
<Directory "/Users/project/mall/public">
Options FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
根据个人需求修改php.ini配置文件,然后复制PHP配置文件到/private/etc/目录
sudo cp /usr/local/etc/php/7.4/php.ini /private/etc/php.ini
sudo apachectl -k restart
在上述默认网站根目录创建index.php文件,访问loalhost,显示php信息即为正常
<?php phpinfo(); ?>
评论(0)