如果看到 WordPress 错误消息或白屏,请先不要慌。同样的问题很可能已有其他人遇到过,通常可以解决。
本页列出 WordPress 用户最常遇到的错误,提供排查起点。在 WordPress 支持中,还可以找到更详细的说明和论坛链接,志愿者会提供帮助。
白屏死机
PHP 错误和数据库错误都可能表现为白屏:页面一片空白,没有任何信息。WordPress 社区通常将其称为 WordPress 白屏死机(WSOD)。
采取激烈措施之前,先了解造成白屏的几个可能原因:
- 插件造成兼容性问题。如果能打开管理界面,尝试停用全部插件,再逐个重新启用。如果无法打开管理界面,通过 FTP 登录网站,找到
wp-content/plugins,把插件目录改名为plugins_old,即可停用所有插件。手动停用插件的更多说明见故障排查 FAQ。 - 主题可能有问题。如果刚启用新主题,或刚在 WordPress 站点网络中创建新站点就出现白屏,尤其需要检查主题。登录管理界面,启用默认主题,例如 Twenty Twenty-One。WordPress 5.8 及更早版本应使用 Twenty Twenty-One,因为 Twenty Twenty-Two 要求 5.9 及以上版本。若无法打开管理界面,通过 FTP 进入
/wp-content/themes/,重命名当前启用主题的目录。
WP_DEBUG 功能通常能提供更多信息。
服务器内部错误
服务器内部错误可能有多种原因,可以尝试以下排查方法:
- 最可能的问题是
.htaccess文件损坏。通过 FTP 进入站点根目录,把.htaccess改名为.htaccess_old,重新打开网站,观察问题是否解决。如果恢复正常,进入设置 > 固定链接,重新设置固定链接,以生成新的.htaccess文件。 - 尝试停用所有插件,确认问题是否由插件引起。无法打开管理界面时,按这份说明通过 FTP 停用插件。
- 切换到 WordPress 默认主题,例如 Twenty Twenty-One,排除主题问题。WordPress 5.8 及更早版本应使用 Twenty Twenty-One,因为 Twenty Twenty-Two 要求 5.9 及以上版本。
- 提高 PHP 内存上限。
- 尝试从全新下载的 WordPress 安装包重新上传
wp-admin和wp-includes目录。
建立数据库连接时出错
如果页面显示“Error Establishing Database Connection”,说明数据库连接出现问题。下面列出可能的原因及解决方式。
wp-config.php 信息不正确
“Error establishing a database connection”通常由 wp-config.php 中的信息错误引起。通过 FTP 客户端进入网站,打开 wp-config.php,确认以下内容正确:
- 数据库名称
- 数据库用户名
- 数据库密码
- 数据库主机
进一步了解编辑 wp-config.php。
如果确认配置正确,可以尝试手动重置 MySQL 密码。
主机服务的问题
下一步是联系主机服务商。下列主机问题可能造成数据库连接失败:
- 数据库达到配额上限,被关闭。
- 服务器停机。
联系主机服务商,确认问题是否由上述情况造成。
网站被入侵
如果已经检查 wp-config.php,并向服务商确认了主机状况,网站可能遭到入侵。
使用 Sucuri SiteCheck 扫描网站,检查是否被入侵。如果确有入侵,阅读我的网站被黑了。
自动升级失败
WordPress 的自动更新功能有时会失败,症状包括:
- 白屏,没有任何信息。
- 提示更新失败的警告。
- PHP 错误消息。
自动升级失败可能是因为连接 WordPress 核心文件时出现问题、升级期间网络连接出错,或文件权限不正确。
如需手动更新 WordPress,参阅手动更新说明。
连接超时
网站尝试执行的工作超出服务器处理能力时,会出现连接超时。共享主机的内存限制较严格,因此特别常见。可以尝试:
- 停用全部插件。如果停用所有 WordPress 插件后问题解决,逐个启用,以找出造成问题的插件。无法打开管理界面时,阅读手动停用插件的方法。
- 切换到默认 WordPress 主题。WordPress 5.8 及更早版本使用 Twenty Twenty-One;Twenty Twenty-Two 要求 5.9 及以上版本。这样可以排除主题问题。
- 提高 wp-config.php 中的内存上限。使用共享主机时,可能需要请服务商提高内存限制。
- 提高 php.ini 中的最大执行时间。这不是 WordPress 核心文件。如果不清楚如何编辑,请让主机服务商调整。提高最大执行时间的方法见下文。
升级后一直停留在维护模式
WordPress 更新时会自动创建 .maintenance 文件。升级后,可能仍显示“Briefly unavailable for scheduled maintenance. Please check back in a minute.”,即暂时因计划维护无法访问,请稍后再试。这可能是维护文件未正确删除。
要移除此消息:
- 使用 FTP 客户端登录网站。
- 删除站点根目录中的
.maintenance文件。
进一步了解维护模式问题。
修改后没有变化
修改了网站,却在浏览器中看不到变化时,可能需要清除浏览器缓存。浏览器会保存访问过的网站信息;再次访问时,可直接加载电脑中已保存的数据,不必重新下载,因此速度更快。
如果浏览器认为网站修改不明显,便会继续加载缓存,看不到新内容。可以清空浏览器缓存,或关闭标签页后重新打开链接。
美化固定链接出现 404,图片无法显示
如果美化后的固定链接出现 404,上传图片时又出现白屏,Apache 可能没有默认启用 mod_rewrite。这是 Apache Web 服务器的扩展模块,可即时“重写”URL,是美化固定链接所需的功能。
WordPress 多站点网络较容易遇到这个问题;共享主机或网站迁移、服务器迁移后也可能发生。
在设置 > 固定链接中重新设置固定链接。如果无效,可能需要手动编辑 .htaccess。
# BEGIN WordPress
<IfModule mod\_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
不熟悉 .htaccess 时,请联系服务商,让他们启用 mod_rewrite 规则。WordPress 文档中还有关于美化固定链接的更多说明。
自定义文章类型出现 404
自定义文章类型可能出现 404,可尝试:
- 确保自定义文章类型与独立页面没有重名。如果重名,重命名该页面,同时修改别名(slug)。
- 登录管理界面,进入设置 > 固定链接,先选默认格式并保存,再重新选择需要的格式。这会刷新重写规则,通常能解决问题。
严重错误消息
如果出现“There has been a critical error on this website. Please check your site admin email inbox for instructions.”,说明网站发生严重错误,导致 WordPress 无法按预期运行。该消息要求查看站点管理员邮箱中的处理说明。
先检查邮件,确认 WordPress 是否发来错误详情;然后在 wp-config.php 中启用调试模式。
启用后检查 wp-content/debug.log 中的日志,查明具体原因。
常见原因包括插件冲突、主题兼容性问题、PHP 版本不兼容、达到内存上限,以及 WordPress 文件损坏。
具体错误消息
错误日志中可能出现多种错误。先启用调试,再通过 FTP 找到日志。以下说明帮助理解常见消息。
PHP 错误
以下是常见 PHP 错误消息。
致命错误和警告
Cannot modify header information – headers already sent
如果警告 WordPress 无法修改响应头,因为响应头已发送,通常是 PHP 开始标记前或结束标记后出现了空格或其他字符。阅读解决 headers already sent 的方法。
刚安装 WordPress 就遇到此问题,可能是 wp-config.php 中引入了语法错误。这份说明可帮助排查。
Call to undefined function:调用了未定义函数
此错误可能表示插件要读取的文件或数据不存在,或无法访问。原因包括:
- 自动安装或自动升级插件失败。尝试手动安装或升级插件。
- 自动安装或自动升级主题失败。尝试手动安装或升级主题。
- 使用了不兼容的 WordPress 插件或主题,例如旧版 WordPress 配合新版插件,或在单站点中使用多站点专用插件。可升级 WordPress 解决相应的版本问题。
- 尝试调用不存在的函数。检查
functions.php是否有拼写错误。
尝试停用引发错误的插件,或更换相关主题。无法在管理界面完成时,可能需要通过 FTP 手动处理。
Allowed memory size exhausted:允许的内存耗尽
此错误表示 WordPress 没有足够内存完成所需工作,可以尝试:
- 提高 wp-config.php 中的内存上限。
- 编辑
php.ini,提高内存上限。这不是 WordPress 自带文件,不熟悉时应联系主机服务商。
Maximum execution time exceeded:超过最大执行时间
可能看到“Maximum execution time of 30 seconds exceeded”或“Maximum execution time of 60 seconds exceeded”。这意味着进程耗时太长,超过 30 秒或 60 秒的限制。有多种处理方式。
编辑 .htaccess
编辑前务必备份 .htaccess。
向 .htaccess 添加下列一行:
php_value max_execution_time 60
编辑 php.ini
向 php.ini 添加:
max_execution_time = 60
如果不确定如何修改,或共享主机禁止自行修改,请让主机服务商提高最大执行时间。
解析错误
语法错误(Syntax Error)
语法错误表示 PHP 结构写错了,例如:
- 某一行末尾缺少
;。 - 使用了弯引号。
- 缺少花括号。
错误消息会指出所在文件(例如 functions.php)和大致行号。行号不一定精确,也要检查前后几行。
Unexpected:遇到非预期字符或标记
出现“parse error: unexpected”时,通常漏写了某个字符,常见情况包括:
- Unexpected ‘=’:引用变量时漏写
$。 - Unexpected ‘)’:漏写左括号
(。 - Unexpected ‘(’:漏写右括号
)。 - Unexpected T_STRING:上一行末尾漏写引号或分号。
- Unexpected T_ELSE:写了
else,却没有对应的起始if。
使用未定义常量
与解析错误类似,“use of an undefined constant”也可能意味着漏写字符,例如:
- 引用变量时漏写
$。 - 数组键外漏写引号。
数据库错误
WordPress 数据库可能出现以下错误。
Error 13:无法创建或写入文件
此错误可能由多种原因造成。
MySQL 无法创建临时文件。
通过 PHP 访问 MySQL 时,MySQL 的 tmpdir 变量可能指向不可写的目录。可在命令行进入 MySQL,输入 show variables 检查。输出的长列表中会有 tmpdir = /somedir/,具体目录取决于配置。
把 tmpdir 改为可写目录即可处理相应问题。
- 找到 my.cnf。在类 Unix 系统上通常位于 /etc/;Windows 则查找 my.ini。
- 用简单文本编辑器打开,找到 [mysqld] 段。
- 在该段找到 tmpdir。如果行首有 #,删除注释符,改为 tmpdir = /writable/dir;这里 /writable/dir 必须可写。有些系统使用 /tmp,也可考虑 /var/tmp 或 /usr/tmp。Windows 示例为 C:/Windows/tmp。
- 保存文件。
- 输入
mysqlshutdown -u -p shutdown关闭 MySQL。 - 进入 MySQL 目录,输入
./bin/safe_mysqld &启动 MySQL。Linux 上该目录通常位于 /usr/local,有时位于 /usr/。
文件权限不正确
修正文件权限。
如果不理解上述操作,而系统由他人管理,把说明交给管理员,让其判断和处理。
CREATE 命令被拒绝
分配给数据库的用户没有足够权限创建列和表时,会出现此错误。需要登录 CPanel 或 Plesk,为数据库用户授予足够权限。
也可以创建新用户并分配给数据库。如果新建用户,务必同步更新 wp-config.php 中的配置。
Error 28
原因可能是:
/tmp(或tmpdir指向的目录)空间耗尽;/tmp中的文件过多,即使仍有大量可用空间;- 服务器缓存已满。
这是 MySQL 错误,与 WordPress 没有直接关系,应联系服务商。有用户报告在 phpMyAdmin 中运行“repair table”命令解决了问题。
Error 145
此错误表示数据库中的某个表损坏。如果熟悉 phpMyAdmin,可以按这份数据库表修复说明处理。
对数据库采取任何操作前,务必备份数据库。
未使用过 phpMyAdmin 或不熟悉其操作时,请让主机服务商对数据库执行 CHECK/REPAIR。
Unknown Column:未知列
数据库缺少某个列可能造成此错误。如果刚升级 WordPress,可再次手动升级,参阅更新说明。
执行数据库查询时遇到此错误,可能是标识符引号用错。这条 Stack Overflow 问答有更详细说明,也可参阅 MySQL 文档。
参考资料
来源与版权
来源:WordPress.org Advanced Administration,WordPress 文档贡献者。《Common WordPress errors》中文译稿,依据用户已取得的转载授权;原文中的链接与示例保留。 阅读原文。













暂无评论内容