Mac M2如何配置php开发环境?
黄太龙
MacOS系统是自带apachectl的。
sudo apachectl start
即可启动apache
默认配置文件,监听的端口是80端口。
此时启动浏览器 输入 localhost即可看到提示“it works”
这就算apache运行成功了
关闭apache服务器 sudo apachectl stop即可
接下来说php问题
mac m2 不再默认安装php了
所以要用HomeBrew去安装php
brew install php
安装好php后,先查看一下php的版本
php -v
其实,brew安装好php一般会提示如下信息:
To enable PHP in Apache add the following to httpd.conf and restart Apache: LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> Finally, check DirectoryIndex includes index.php DirectoryIndex index.php index.html The php.ini and php-fpm.ini file can be found in: /opt/homebrew/etc/php/8.3/ To start php now and restart at login: brew services start php Or, if you don't want/need a background service you can just run: /opt/homebrew/opt/php/sbin/php-fpm --nodaemonize
对于我的安装来说,8.3就是php版本。
根据HomeBrew的提示,修改apache配置文件,
sudo vim /etc/apache2/httpd.conf
再设置httpd.conf的最后或者“LoadModule”位置(搜索“LoadModule”即可)加入如下信息:
LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
然后 “sudo apachectl restart”
再修改一下apache配置文件,找到如下位置:
<IfModule dir_module> DirectoryIndex index.html </IfModule>
修改成:
<IfModule dir_module> DirectoryIndex index.php index.html </IfModule>
之后重启apache即可。
MacOS的apache的网站文件一般会放在“/Library/WebServer/Documents”,把你的index.php等文件放过去即可。这个位置也能在配置文件中修改,我图省事就没修改了。
到这里,很可能还是无法成功运行。
这时候你会发现怎么也运行不了,切在log中查不到错误信息。
这时候,你可以手动重启一下httpd一下“httpd -k restart”
会得到如下报错信息:
[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
其实这个就是证书安全问题,你需要自己创建一个证书颁发给php,否则从安全角度来说,并不信任php模块。