如何调试常见的 WordPress 问题

已发表: 2023-01-25

WordPress 是一个非常稳定的 CMS 系统,在大多数情况下,可以顺利运行。 但是,由于其多功能性,在某些情况下,可能会出现问题。 发生这种情况的原因有多种,这就是故障排除和调试非常重要的原因。 幸运的是,WordPress 附带了一个开箱即用的基本工具,可以使任务变得更加容易。

在查看许多 WordPress 管理员和网站所有者可能遇到的最常见问题之前,本文首先介绍了 WordPress 调试工具。 然后,我们将查看原因并进行修复,以帮助您立即恢复正常运行。

什么是调试?

顾名思义,调试是识别错误并将其从软件代码中移除的过程。 大多数(如果不是全部)软件开发人员会发现自己在调试代码——这是运行代码时的例行做法。

然而,即使代码通过了质量保证检查,新的错误也可能在软件安装后出现。

发生这种情况的原因有多种,包括软件安装在开发人员未测试的环境中。 软件开发人员和测试人员不可能在所有可能的环境中测试他们的代码——永远不会发布任何软件。 我们将在本文后面深入研究更多细节。

在这种情况下,网站管理员和所有者可能需要进行一些调试以帮助开发人员识别问题。 虽然这听起来像是太技术性的东西,但实际上,这很容易。 别着急; 本文将向您展示如何操作。

什么是错误? 调试图像

错误是软件中的意外行为。 这种意外行为会以各种方式表现出来,包括错误、异常、警告等。 它还可能导致功能和特性无法按预期工作。

发生这种情况时,我们需要调试软件,在本例中为 WordPress。 幸运的是,WordPress 附带了一个开箱即用的调试工具,称为 WP_DEBUG。

WordPress 调试 – WP_DEBUG 和 WP_DEBUG_LOG

WP_DEBUG 是一个内置的 WordPress 调试工具。 启用后,它会显示由 PHP 代码(支持 WordPress 的底层技术)生成的所有错误、警告和通知。

另一方面,WP_DEBUG_LOG 将这些错误、警告和通知保存到日志文件中——使其更容易与第三方共享。 虽然这与 WordPress 活动日志有很大不同,但它记录了软件执行的所有操作,帮助开发人员识别代码的哪些元素正在运行。

如何使用 WP_DEBUG

WP_Debug 使用起来相当简单直接。 它确实要求您具有对 WordPress 文件系统目录的 SFTP 或 SSH 访问权限,因此如果您不确定是否拥有此权限,则可能需要与您的托管服务提供商联系。

现在,该设置位于文本文件中,因此我们需要使用文本编辑器将其打开。 好消息是,这是从 wp-config.php 文件完成的,该文件位于 WordPress 安装的根目录中——非常容易找到。

您要查找的设置称为 WP_DEBUG,需要将其设置为 true,如下所示:

// 启用 WP_DEBUG 模式
定义('WP_DEBUG',真);

要启用日志记录,您需要启用 WP_DEBUG_LOG 选项,如下所示:

// 启用调试日志记录到 /wp-content/debug.log 文件
定义('WP_DEBUG_LOG',真);

如果 WP_DEBUG_LOG 选项不可用,您可以简单地将命令复制并粘贴到 wp-config.php 文件中。

要阻止错误显示在您的 WordPress 网站前端,您可以将 WP_DEBUG_DISPLAY 选项设置为 false,如下所示;

定义('WP_DEBUG_DISPLAY',假);

重要说明:WP_DEBUG 应该在您的测试或暂存环境中启用,而不是在您的实时网站上启用。

如果您正在解决特定问题,请尝试在启用 WP_DEBUG/WP_DEBUG_LOG 选项时重现该问题——具体取决于您启用的选项。 这样做会导致错误,进而导致调试工具写入日志文件。

常见的 WordPress 问题

WordPress 问题

正如我们之前提到的,WordPress 是一个非常稳定的 CMS。 许多开发人员在每个版本中投入了无数小时,并且许多人设法顺利运行它。 知名开发商的主题和插件也是如此。 然而,由于环境的变化,问题和冲突可能会出现。 对于与 WordPress 相关的软件来说是这样,对于任何其他软件也是如此。 因此,问题可能会不时出现。

WordPress 问题,无论是直接与 WordPress 还是主题或插件相关,并不一定意味着软件有问题。 通常,这是一个配置问题。 无论哪种方式,WP_Debug 都可以帮助您发现正在发生的事情。

死亡白屏

症状

白屏死机,也以其首字母缩写词 WSOD 而闻名,出现在您的 WordPress 网站中,显示一个完全空白的白屏。

原因

虽然许多因素都会导致 WSOD,但一个常见的罪魁祸首是插件和主题的兼容性问题。 如果您最近安装或更新了插件,手动禁用插件或主题应该是您的第一个停靠点。

使固定

调试日志文件可以让您更好地了解是哪个插件和哪行代码导致了问题。 如果您确定问题出在插件或主题上,您可能需要与开发人员联系以进行修复。 如果问题出在其他地方,日志文件将使您更好地了解导致问题的原因。
数据库连接问题

症状

WordPress 数据库连接问题的发生可能有多种原因,并以不同的方式表现出来。 一种更常见的症状是在您的网站上看到“建立数据库连接时出错”消息。

原因

WordPress 依靠 MySQL 来存储和读取设置和帖子等数据。 如果没有连接到 WordPress 数据库,网站将无法运行。 数据库连接错误的发生可能有多种原因,包括连接或凭据问题。

使固定

确保 MySQL 服务器已启动并正在运行,并且 WordPress 可以连接到它。 请记住检查防火墙规则和配置文件,特别是如果您进行了更改或者是首次安装。 接下来,确保 WordPress 数据库用户对所需的表具有足够的权限并且可以运行数据库查询。

内存限制/耗尽

症状

当达到内存限制时,您将看到一个致命错误,指出允许的内存已用完。

原因

内存限制错误是一个会影响 WordPress 的 PHP 错误。 PHP 是为 WordPress 提供支持的底层技术,它使用内存来运行应用程序,包括 WordPress。 内存限制就像硬 RAM 限制一样,可以避免 WordPress 消耗过多内存并导致服务器宕机。 默认限制为 128MB; 但是,您的托管服务提供商可能会设置不同的限制。

使固定

在寻求增加内存限制之前,请确保没有消耗比应有的内存更多的内存。 如果您的 WordPress 对于当前内存限制来说变得太大了,您可能需要增加它。 如果您使用的是托管计划,请与您的提供商联系——在大多数情况下,您需要升级您的计划。

解析错误:语法错误

症状

在您的 WordPress 网站上执行操作时显示解析错误:语法错误。

原因

解析错误:当 WordPress 尝试执行代码但发现语法错误阻止它执行时,就会发生语法错误。 通常,发生这种情况的原因有两个:缺少代码,或者您使用的 PHP 版本不正确。

使固定

确保您运行的是最新版本的 PHP。 这不仅是一个简单的修复,而且可以帮助您确保运行的是最新版本,其中可能包括错误修复。 如果错误仍然存​​在,错误本身会告诉您哪个组件有问题。 这可以帮助您确定它是插件或主题(在这种情况下您应该联系开发人员)还是 WordPress(在这种情况下您应该重新上传 WordPress 核心文件。

超过最大执行时间

症状

执行更新插件等操作时,会显示致命错误:超出最大执行时间。

原因

如果特定操作的执行时间超过分配的时间,则可能会发生超出最大执行时间的错误。 设置此时间限制是为了避免任何一个操作占用所有 CPU 时间,这可能会导致您的网站崩溃。

使固定

要解决此问题,首先,确定是哪个操作导致了它。 查看您在网站上所做的最后一件事,如果您有 WordPress 活动日志,请参考它。 接下来,使用 WP Crontrol 和计划的操作等插件检查 cron 作业,看看是否有任何问题被卡住。 启用 WP_DEBUG 并重试该操作。 接下来,检查错误日志,如果是插件或主题,请联系开发人员。 另一种选择是增加执行时间。

内部服务器错误

症状

内部服务器错误,也称为错误 500,显示内部服务器错误消息而不是您的 WordPress 网站。

原因

内部服务器错误并非特定于 WordPress。 这是一个 HTTP 错误代码,当 Web 服务器遇到它没有代码的问题时返回。 由于未提供其他信息,此包罗万象的错误可能会使故障排除变得困难。

使固定

修复 500 错误可能涉及一些试错故障排除。 您可能希望首先停用所有 WordPress 插件和主题,尤其是如果您最近安装或更新了任何东西。 接下来,尝试使用 FTP 客户端重新上传 WordPress 核心文件。 其他常见的修复包括检查您的 HTACCESS 文件和增加 PHP 内存限制,我们在上面已经介绍过。

更新失败

症状

插件更新后显示更新失败错误。 如果您启用了自动更新,也可能会显示失败的自动升级。

原因

更新是良好的 WordPress 治理最重要的方面之一。 他们提供修复并可以添加新功能。 更新可能由于各种原因而无法执行,包括互联网连接中断、插件不能很好地相互配合以及 WordPress 文件权限。

使固定

失败的更新不太可能导致您的网站崩溃,因此值得一试,以防您的连接出现问题。 接下来,从 Site Health 菜单检查 REST API 并确保它正在运行。 如果这不能解决问题,请检查错误日志以获取更多信息。

维护模式

症状

WordPress 在更新未完成后陷入维护模式。

原因

每当 WordPress 更新其文件、插件或主题时,它就会进入维护模式。 这样做允许应用程序使文件“脱机”并更新它们。 在此过程中,WordPress 会创建一个 .maintenance 文件,并将其存储在根目录中。 如果出于某种原因,更新中断,WordPress 可能会陷入这种维护模式。

使固定

要使 WordPress 退出维护模式,请通过 FTP 或 SSH 登录并删除 .maintenance 文件。 您可能还需要删除缓存以使网站恢复正常。 WP_DEBUG 可以帮助您解决问题,但建议您在暂存或测试环境中尝试此操作,以免网站宕机。

我的错误没有在上面列出

WordPress 环境彼此之间可能千差万别,不时会发生不明错误。 在这种情况下,启用 WordPress 调试模式是您可以采取的最佳步骤之一。

虽然这听起来很吓人,但它可以帮助您更好地理解 WordPress 的工作原理,从而变得更好。 请记住,拥有 WordPress 测试或暂存环境可能会有很大帮助。 在不危及您的实时网站的情况下解决问题时,这样的环境非常有帮助。

WordPress 疑难解答

WordPress 依靠多种技术协同工作来确保您的网站正常运行。 虽然我们对 MySQL 和 PHP 进行了相当多的介绍,但 HTML、CSS 和 Javascript 等其他技术对于网站的显示和功能至关重要。
只要您选择信誉良好的开发人员,就应该没问题,但很多时候,其他因素也会导致 WordPress 错误。 这是 WordPress 调试可以证明是你的朋友的地方。 说到插件和主题开发人员,这有助于确保他们提供支持,这样您就可以更轻松地休息,因为知道有人在那里可以帮助您解决问题。

故障排除是一项很好的技能,可以在无数方面为您提供帮助。 您不仅可以最大限度地减少停机时间,而且在为更安全、更安全的网站进行 WordPress 安全练习时,它也会派上用场。