网站上传文件500 Internal Server Error:大小与权限_500错误_网站故障_排查修复
把站点从一台服务器搬到另一台,网站错误是必过的一关。搬过十几次站,每次都会在这个环节花点时间。把经验总结成清单,照着走能省一半时间,也不容易漏东西。
网站崩溃是严重故障,可能是代码死循环、数据库死锁、服务器资源耗尽、被攻击。崩溃后先恢复服务,再查原因。有备份的话直接回滚到正常版本,比现场排查快得多。
动手之前先理清步骤,避免走弯路。
500错误先看日志。Nginx错误日志/var/log/nginx/error.log,PHP错误日志在php.ini里error_log指定路径,宝塔面板在网站设置里能直接看。日志里有具体的文件路径和行号,根据报错信息定位代码问题。
开启PHP错误显示临时排查。php.ini里display_errors=On,error_reporting=E_ALL,改完重启PHP。页面会显示具体错误,比如Parse error语法错误、Fatal error调用未定义函数、Allowed memory size内存溢出。修复完记得把display_errors关掉,生产环境不要显示错误。
内存溢出调大memory_limit。php.ini里memory_limit=256M,或者代码里ini_set('memory_limit','512M')临时调大。但根本解决要优化代码,循环里查数据库、加载大文件、递归过深都会耗内存。用memory_get_usage()监控内存使用。
数据库错误导致500。看报错是连接失败还是查询错误。连接失败检查数据库服务和配置,查询错误看SQL语句,字段不存在、表名错、语法错都会报。开启数据库调试模式打印SQL,复制到phpMyAdmin执行看具体报错。
操作过程中有几个点需要特别注意。
CDN环境下改配置注意缓存。改了文件要刷新CDN缓存,否则用户看到旧内容。HTTPS证书要在CDN和源站都装,回源协议要对应。获取真实IP要配置real_ip,否则IP限制和日志都不准。
网站被黑后不要只清后门不修漏洞。清理完恶意代码一定要找入侵入口,弱密码就改密码,上传漏洞就限制上传,CMS漏洞就升级版本。不修补漏洞清除了还会被再次入侵,而且攻击者可能留了多个后门。
出问题先保数据再恢复服务。数据库损坏先备份数据文件再修复,服务器故障先把磁盘挂到其他机器拷数据。数据是最宝贵的,操作可能让情况更糟,先备份再动手。恢复服务后再查根本原因,不要在高峰期花太多时间排查。
实际操作中还会碰到一些衍生问题,这里一并说明。
问:怎么判断是服务器问题还是程序问题?答:放一个静态HTML文件和phpinfo.php文件,能正常访问说明服务器和PHP环境没问题,问题在程序。静态文件也打不开就是服务器或者网络问题,phpinfo打不开就是PHP配置问题。这样快速分层定位。
问:Linux命令记不住怎么办?答:常用命令就那十几个,man命令看手册,--help看参数。历史记录用方向键翻,history看所有执行过的命令。复杂操作写脚本,下次直接运行脚本不用记命令。运维文档记录常用操作步骤,照着做就行。
技术问题最怕一知半解就动手改配置。这个功能涉及几个配置项联动,改一个不改另一个就会出问题。这篇文章把关联配置都列出来了,按顺序操作不会漏项。改完做一轮全面测试,确认没问题再收尾。

更新时间:2026-09-03 15:59:19
上一篇:时代互联虚拟主机.htaccess 500排查_PHP错误日志定位