首页 > Wordpress > 正文

WordPress 500 错误排查手册

fenij 2026-08-26 41 Wordpress

WordPress 出现 500 Internal Server Error 时,页面不会告诉你真正原因。它可能是 .htaccess 损坏、插件冲突、主题报错、PHP 内存不足,也可能是权限问题。最快的办法不是逐个文件猜,而是先打开 WP_DEBUG,让错误日志直接指出文件名与行号。

第一步:打开 WP_DEBUG 看真实报错

编辑网站根目录的 wp-config.php,加入或修改以下常量:

define( 'WP_DEBUG', true );
define( 'WP_DEBUG_LOG', true );
define( 'WP_DEBUG_DISPLAY', false );

如果后台也进不去,用 FTP/SFTP 直接改文件。WP_DEBUG_DISPLAY 设为 false 是为了避免错误信息直接暴露给访客。修改后复现一次报错,再查看 /wp-content/debug.log,90% 的情况里面会写着具体是哪一个插件或主题文件报错。

常见根因与快速修复

切换主题后 500
现象 最可能原因 快速操作
整站 500,后台也进不去 .htaccess 损坏 重命名 .htaccess,到后台 设置 → 固定链接 重新保存
安装/更新插件后 500 插件冲突 FTP 重命名 /wp-content/plugins 文件夹,逐个启用排查
主题代码不兼容 FTP 重命名当前主题目录,WordPress 会回退到默认主题
导入大文件或批量操作时报错 PHP 内存耗尽 wp-config.php 加 ini_set(‘memory_limit’,’512M’)
上传/更新文件后 500 文件权限错误 目录 755,文件 644;避免 777
🔧
90%
通过 debug.log 定位
64M
常见默认内存上限
🚫
777
权限设置应避免

踩坑实录:删掉 .htaccess 还是 500

有一次客户站点整站 500,后台完全进不去。我第一反应是 .htaccess 损坏,直接重命名了它,结果仍然是 500。打开 wp-config.php 启用 WP_DEBUG_LOG 后,debug.log 里写的是 Fatal error: Allowed memory size of 67108864 bytes exhausted in /wp-content/plugins/xxx/importer.php on line 142。原来是客户用某插件导入 8 万行 CSV,默认 64M 内存直接吃光。我把 wp-config.php 加上 ini_set('memory_limit','512M'),同时把 upload_max_filesizepost_max_size 调到 64M,导入才正常。这次让我记住:500 错误只是结果,日志才是入口。

快速自检清单

  • 已开启 WP_DEBUG_LOG 并复现一次错误。
  • 已检查 /wp-content/debug.log 中的文件名与行号。
  • .htaccess 已重命名并重新保存固定链接。
  • 已通过重命名 plugins 文件夹排除插件冲突。
  • 已切换回默认主题排除主题问题。
  • PHP 内存限制已设为 256M–512M。
  • 目录权限 755,文件权限 644,没有 777。

常见问题

Q:开启 WP_DEBUG 后,访客会不会看到报错?
A:只要 WP_DEBUG_DISPLAY 设为 false,错误就只写入日志,前台不会显示。

Q:找不到 /wp-content/debug.log 文件?
A:确保 wp-content 目录可写,权限 755;也可以手动创建空文件并设 644。

Q:虚拟主机改不了 php.ini 怎么办?
A:多数虚拟主机支持 .user.ini 或在 wp-config.phpini_set() 覆盖。

你排查 WordPress 500 错误时遇到过什么奇葩原因?欢迎在 fenij.com 留言,一起把这份手册补全。

排错自查清单

  • ☐ 第一步:打开 WP_DEBUG 看真实报错:编辑网站根目录的 wp-config.php,加入或修改以下常量:
  • ☐ 常见根因与快速修复
  • ☐ 踩坑实录:删掉 .htaccess 还是 500:有一次客户站点整站 500,后台完全进不去。我第一反应是 .htaccess 损坏,直接重命名了它,结果仍然是
  • ☐ 快速自检清单
  • ☐ 常见问题:Q:开启 WP_DEBUG 后,访客会不会看到报错?A:只要 WP_DEBUG_DISPLAY 设为 fals

关键命令速查

  • define( 'WP_DEBUG', true ); define( 'WP_DEBUG_LOG', true ); define( 'WP_DEBUG_DISPLAY', fa

相关延伸

更系统的排查思路,见 WordPress 分类归档

补充:500 最忌讳「线上直接改」。先在暂存环境用相同的 WP/PHP 版本复现,开 WP_DEBUG 看真实报错再回生产修。很多 500 是主题 functions.php 里一行语法错,报错信息会指向具体文件和行号,照着改比盲猜快得多。

相关完整手册

系统化的排查与配置思路,建议顺手收藏这几篇完整手册: