你早上打开自己网站,显示500 Internal Server Error。白屏,什么都没有。后台也进不去。500是服务器内部错误,通常是PHP代码或者配置出问题。
第一步:看错误日志
宝塔面板→网站→设置→错误日志。看最近的报错信息。
常见错误:
PHP版本不兼容——你刚升级了PHP,某个插件不支持新版本。切回旧版本PHP就行。
内存不够——Fatal error: Allowed memory size exhausted。在配置里加大PHP内存限制。
文件权限不对——某目录权限被改成777或者不可读。改回正确权限。
数据库连接失败——数据库用户名密码改了,配置文件没同步。
语法错误——你刚改了某个PHP文件,漏了个分号。看日志里报的哪个文件第几行。
第二步:回忆你最近做了什么
500错误之前你改了什么?
刚装了新插件?卸载那个插件。
刚升级了主题?切回默认主题。
刚改了PHP版本?切回去。
刚改了Nginx配置?恢复备份。
大部分500错误都是你最近的操作导致的。回滚上一步就好。
第三步:实在不行恢复备份
按前面讲的,你每周都有备份。把网站文件和数据库恢复到昨天的备份。10分钟网站就回来了。
然后慢慢排查是哪里出问题。别在生产环境上调试。
注意
第一,500错误别自己硬扛。超过半小时修不好,先恢复备份让网站先能用。慢慢查问题。
第二,别把错误信息显示给客户。正式环境PHP配置里display_errors关掉。客户看到详细错误信息,安全风险。错误信息只写到日志里。
第三,开着监控。前面讲的宕机监控,500错误会自动告警,你比客户先知道。


