Mac Sierra升级PHP 7.0后localhost无法连接服务器求助
我之前在Mac Sierra上升级PHP时也碰到过一模一样的情况,折腾了好一会儿才搞定,给你分享几个实用的排查和修复步骤:
先确认Apache服务状态
升级PHP后Apache可能没有自动重启,甚至意外停止了。打开终端输入:sudo apachectl status如果显示“not running”,直接启动服务:
sudo apachectl start要是已经运行,试试强制重启,有时候配置没生效:
sudo apachectl restart检查Apache的PHP模块加载配置
升级后Apache可能还在加载旧的PHP5.6模块,需要切换到PHP7.0:- 打开Apache主配置文件:
sudo nano /etc/apache2/httpd.conf - 找到类似
LoadModule php5_module的行,在前面加#注释掉它; - 找到
LoadModule php7_module的行(如果是brew安装的PHP7.0,路径一般是/usr/local/opt/php70/libexec/apache2/libphp7.so),如果前面有#就去掉,确保这一行生效; - 按
Ctrl+O保存,Ctrl+X退出,然后重启Apache。
- 打开Apache主配置文件:
验证localhost的基础配置
有时候hosts文件被意外修改,导致localhost解析失败:
终端输入查看hosts文件内容:cat /etc/hosts确认里面有这一行且没被注释:
127.0.0.1 localhost要是没有,就用
sudo nano /etc/hosts添加这一行,保存后退出。查看错误日志定位具体问题
要是前面的步骤都没解决,直接看Apache的错误日志找线索:tail -f /var/log/apache2/error_log运行这个命令后,在Safari里再次访问localhost,终端会实时输出错误信息——比如模块加载失败、文件权限不足、配置语法错误等,根据提示就能精准修复。
brew安装的PHP需重新链接
如果你是用Homebrew升级的PHP,可能需要重新切换默认版本:brew unlink php56 && brew link php70 --force执行完后记得重启Apache。
最后可以做个小测试:在/Library/WebServer/Documents目录下新建info.php,内容写<?php phpinfo(); ?>,然后访问localhost/info.php。如果能显示PHP信息页,说明Apache和PHP7.0已经正常工作,问题可能出在你之前的项目配置上;如果还是不行,就回头看错误日志的具体提示。
内容的提问来源于stack exchange,提问作者user3623357

