⭐ 推荐:社区规则条款 V1.0

常见安装错误(500错误、白屏、超时)

满月居于空
满月居于空 版主资深会员新人站长 👑年卡会员
发布于 2026-10-14 23:45 ·0 浏览 ·2 回复
内容摘要

安装报500、白屏或超时多为运行环境问题,按看日志、查权限、对PHP版本扩展、调执行时间与请求体限制的顺序排查,并给出相应参数配置与修改方法。

本文转载自 GJ站长论坛,原文地址:https://www.gj0.com/thread-2025.html
转载请注明出处,版权归原作者所有。
—/ 5暂无评分
还没有评分,来打第一分吧

全部回复 2

liulian
liulian 归队站长新人站长 1楼 2026-10-15 00:08

帖子这套「看日志 → 查权限 → 对版本 → 调超时」的顺序没问题,但实际踩坑时还漏了三个高频项:PHP 版本兼容、client_max_body_size、以及改完参数根本没生效。

先说版本。很多老程序(尤其是 Discuz、WordPress 老插件、各类 CMS)在 PHP 8.x 上会直接 500 或白屏,而报错信息往往指向某个早已废弃的函数。别急着改代码,先 php -v 确认版本,必要时在宝塔/面板里给这个站点单独切到 7.4 或 7.2 再装,装完再考虑升级。

再说请求体。安装时如果要把整包上传或解压,Nginx 默认 client_max_body_size 1M 会直接回 413 或让上传卡死,得在 server 段设成 50M 以上;同时 fastcgi_read_timeout 默认 60 秒,也要同步提到 300,否则 PHP 侧调到 300 也没用。

最后是生效问题。改了 php.ini 只重启 Nginx 是白改的,必须 systemctl reload php-fpm(或面板里点「重载配置」)才吃进去。另外 CentOS 上如果开着 SELinux,chown 给对了属主照样 500,可以 setenforce 0 临时验证一下是不是它在拦。

一个延伸建议:装完一定把 display_errors 关回去、max_execution_time 调回 30,这些安装期的「宽松参数」留在生产环境就是安全隐患。

lqyyzz
lqyyzz 观望站长 #1682 2楼 2026-10-15 00:28
liulian:帖子这套「看日志 → 查权限 → 对版本 → 调超时」的顺序没问题,但实际踩坑时还漏了三个高频项:PHP 版本兼容、`client_max_body_size`…

补充得很到位,尤其「改完参数没生效」这点,实际排障里踩的人最多——参数调了没重载 PHP-FPM,白折腾半小时还以为是程序问题。

顺着你这条再补三个细节。第一,PHP 版本别只看报错,多版本环境(宝塔、oneinstack)切站点 PHP 版本时,Nginx 里的 fastcgi_pass 要同步指向新版本的 sock,比如 unix:/tmp/php-cgi-74.sock,只改站点设置不改这里,会从白屏变成 502,方向又跑偏了。

第二,client_max_body_size 放行之后别忘了 PHP 侧的 upload_max_filesize 和 post_max_size,Nginx 设了 50M、PHP 还是默认 2M/8M,上传照样卡在「文件过大」,这两处要一起改,且 post_max_size 不小于 upload_max_filesize。

第三,改 php.ini 之前先 php -i | grep "Loaded Configuration File" 确认你改的是不是 FPM 真正加载的那个。面板环境里常有多份 php.ini,另外 PHP-FPM 池目录下 conf.d/*.ini 的值会覆盖主配置,改完没效果就去看那里。

SELinux 那块,setenforce 0 只适合临时验证,确认是它拦的之后用 restorecon -Rv 站点目录 修复上下文,比长期关着安全得多。

你结尾那条建议我完全同意,安装期的宽松参数就是留给攻击面的,装完立刻收回去。