改了 php 配置,网站却没反应?提示 “502 Bad Gateway”,明明代码没写错啊?十有八九是没重启 php 服务。小编刚学建站时,就因为这事儿卡了一下午,后来才知道 “改配置必重启” 是铁律。今天就把重启 php 服务的各种方法、报错解决都说明白,新手跟着做就行,一起往下看吧!
不同系统,重启命令差不少,别记错了
php 服务在不同系统里,名字和命令都不太一样,记混了就容易出错:
Linux 系统(最常用,分两种情况)
- 用 systemctl 管理的(比如 CentOS 7 以上、Ubuntu 16 以上):
- 先查状态:
systemctl status php-fpm
,看看服务是不是在运行; - 重启命令:
sudo systemctl restart php-fpm
,输完密码就行; - 小编提醒:php 后面的 “fpm” 别漏了,写成 “php” 会提示 “找不到服务”,我第一次就这么错了。
- 先查状态:
- 用 service 管理的(比如老版 CentOS 6):
命令是service php-fpm restart
,比 systemctl 少个 “systemctl”,记不住就都试试,反正错了会提示。
Windows 系统(简单但少见)
- 找到 “计算机管理→服务和应用程序→服务”;
- 找到 “PHP FastCGI Process Manager”(名字可能有点长);
- 右键点 “重启”,等几秒就好。办公室的 Windows 服务器就这么弄,图形界面,不用记命令。
系统 / 管理工具 | 重启命令 | 查状态命令 | 常见错误 |
---|---|---|---|
Linux/systemctl | sudo systemctl restart php-fpm | systemctl status php-fpm | 漏写 “fpm” |
Linux/service | service php-fpm restart | service php-fpm status | 权限不够(不加 sudo) |
Windows | 图形界面重启 | 右键看 “状态” | 服务被禁用(需先启用) |
重启前,这两步做好,能少踩坑
别上来就重启,先做准备,不然可能出乱子:
- 看日志:在 Linux 里输
tail -f /var/log/php-fpm/error.log
(路径可能不同,找不到就搜 “php 错误日志位置”),有错误先记下来,重启后对比; - 通知用户:如果网站正在用,最好发个公告 “临时维护 1 分钟”,小编公司上次没通知,被客户投诉说 “突然打不开”。
其实啊,提前备份配置文件也很重要,万一重启后出问题,还能恢复原样,这步老手都忘不了,新手也得养成习惯。
报错了?别慌,这几种情况最常见
重启 php 服务时,报错是常事,小编整理了几个高频错误,照着解决就行:
提示 “Failed to restart php-fpm.service: Unit not found”
意思是 “没找到这个服务”,解决办法:
- 先确认 php-fpm 是不是装了,输
php-fpm -v
,没反应就是没装; - 装好了还报错,可能是服务名不对,试试
php7.4-fpm
(7.4 是版本号,换成你装的版本),小编就遇到过 php8.0 的服务名叫 “php8.0-fpm”。
重启后网站显示 “502 Bad Gateway”
这是 php 没启动成功,步骤:
- 查 php 状态:
systemctl status php-fpm
,看是不是 “active (running)”; - 不是的话看日志,多半是配置文件错了,比如 php.ini 里有语法错误;
- 找到错的地方改了,再重启,一般就好了。朋友的网站就因为多打了个分号,卡了半小时。
权限不够,提示 “Permission denied”
解决简单,命令前加sudo
,比如sudo systemctl restart php-fpm
,输管理员密码就行,新手常忘加 sudo,其实就是缺权限。
自问自答:新手可能想问的
重启 php 服务会影响网站运行吗?
会断 1-2 秒,就像关灯再开,用户可能感觉 “闪了一下”,影响不大。但最好选半夜人少时弄,小编公司都在凌晨 3 点操作,基本没人察觉。
必须重启吗?有没有更温柔的方法?
有些情况可以 “重载”(reload),命令是systemctl reload php-fpm
,不用停服务,直接加载新配置,适合改了小参数。但改了内存限制、端口这些,还是得重启才管用。
用宝塔面板之类的工具,重启步骤一样吗?
更简单!登录面板,找到 “软件管理→php→设置→重启”,点一下就行,不用记命令。小编帮新手建站都推荐用面板,省事儿,就是偶尔不如命令行灵活。
最后说点实在的
小编觉得,重启 php 服务这事儿,看着简单,细节不少,多练几次就熟了。记不住命令就存个记事本,报错了先看日志,别上来就慌。其实啊,老手也是从报错里练出来的,谁没踩过坑呢?
要是你用的是虚拟主机,没权限重启 php,就联系服务商,说 “麻烦重载一下 php 配置”,他们一般都会帮你弄。希望这些能帮到新手,少走弯路,改配置再也不怕没效果啦!