7个用于故障排除的WordPress调试工具
尽管wordpress是一个受控环境,在这种环境中,错误比典型的软件开发环境要少得多,但总会有一个窗户或一扇门,通过这个窗户或门,问题就会爬进来。
一般而言,工具给予你的灵活性越多,你可能遇到的错误就越多。
在wordpress的特定情况下,有很多灵活性,因此也有很多潜在错误。你有一个开放的插件架构,可以用来为cms添加功能;你有一个web服务器,一个主机提供商,一个数据库管理系统和一个网络。所有这些组件都是独立的因素,会带来各自潜在的问题。
你可能遇到的问题包括性能下降、内容错误或损坏、错误信息,以及最糟糕的是:死亡的白屏(wsod),这意味着你的网站崩溃了,需要立即解决。
即使是一个轻微的性能问题,例如少于2秒的延迟,也是你应该关注的问题,因为它可能(而且肯定会)损害你的seo战略和你在搜索引擎结果中的排名。这直接导致每天的访问者减少,因为现在,快速响应对移动用户来说至关重要。
这就是为什么当你觉得网站无法正常工作时,拥有可用的工具是至关重要的。即使它能正常工作,也总有改进其性能或可用性的空间。
什么是调试?
调试是开发人员从他们的程序中检测和消除错误(也称为bug)的任务。它是通过专门的工具来完成的,这些工具可以让你在程序执行时看到内部发生的情况。
有时,调试工作最困难的部分是找出精确的组件、命令或指令是导致错误的原因。为了做到这一点,开发人员做的就像医生要进行诊断一样:分析症状,并在必要时进行一些研究,以确定问题的来源。软件开发中相当于医学研究的是监控工具,提供有关网站内部运作的信息。
让我们来看看一些选项。
wp_debug
wordpress有一个内置的调试辅助工具,通常被忽视。它是一个名为wp_debug
的“标志”,当激活时,它会触发wordpress的调试模式。当你激活wp_debug时,会生成一个日志,记录你的网站的所有活动。通过阅读这个日志,你可以找出在你的wordpress网站上出了什么问题。
要打开wp_debug,你需要进行一些编码,通过编辑你的wp-config.php
文件并添加必要的行来命令你的网站记录日志中的所有活动。这个编码任务并不适合所有人:编辑wp-config.php文件时需要非常小心,因为如果你放错了一行甚至一个字符,你的网站可能就会停止工作。另外,在做任何操作之前,请备份你的网站/文件。如果搞砸了,你可以恢复备份并将一切恢复正常。
要编辑wp-config.php
文件,请使用您的托管提供商的文件管理器或使用ftp客户端下载该文件,并使用您喜欢的文本编辑器在本地打开它。该文件位于您的wordpress安装的主目录中。打开文件后,找到定义wp_debug的行。它应该看起来像这样:
define( 'wp_debug', false );
如果没有这样的行,请搜索以下注释:
/* 这就是全部,停止编辑!祝您写博客愉快。 */
并在该注释之前添加以下行。这些命令将指示您的网站记录所有错误,而不显示它们,这对公开可用的网站非常有用:
define('wp_debug', true);
define('wp_debug_log', true);
define('wp_debug_display', false);
@ini_set('display_errors',0);
保存修改后的文件,如果您使用ftp,请将其上传到您的网站。然后尝试引发错误(或等待错误发生),并检查文件debug.log
。您会在wordpress安装的wp-content文件夹中找到它。您可以使用文本编辑器打开它,并查找揭示导致网站出现问题的错误消息。
完成此操作后,您应该通过将wp-config.php
文件中添加或更改的所有行中的值“true”更改为“false”来关闭日志记录。
wpdb错误报告
如果您知道或怀疑您的网站数据库正在引起问题,您可以启用wpdb错误报告。这也需要一些编码。一旦您启用错误报告,您可以指示您的网站开始在屏幕上显示数据库错误。
除非您不在乎访问者在屏幕上看到错误消息,否则不应在实时网站上执行此操作。最好使用staging网站(如下所述),您可以在该站点上进行测试而不让每个人都看到发生了什么。
阅读这些错误报告或日志需要一定的技术知识,就像阅读x射线一样需要医学知识。您将不得不解释一些编程、网络或数据库术语,但您可能会找到影响您的网站的根本问题,然后寻求某人的帮助来解决该特定问题。
要开始生成数据库错误报告,请将以下行添加到您的wp-config.php
文件中(与之前生成调试日志的方式相同):
define( 'savequeries', true);
通过将此值设置为true,数据库将开始存储您的网站所做的所有查询。然后您将能够检查每个页面请求引起的查询数量以及每个查询中使用的命令。显示查询的一种方法是在您的主题php文件中添加以下行,以在执行流程中显示查询:
global $wpdb;
print_r( $wpdb->queries );
完成调试后,您应该删除这些行以恢复网站的正常运行。
使用staging网站
一个分段网站是您实际网站的克隆,您可以在上线之前在其中测试更改或新功能。还可以使用分段网站来调试问题或监控其行为,因为它使您可以自由尝试所有您想要的内容,而不会干扰您网站的实际用户。
重要的是,分段网站准确反映您实际网站的内容和结构。每当您使用新内容或新插件(主要是插件和主题)更新wordpress网站时,都应该使用实际网站的副本刷新分段网站。这样,如果您的实际网站出现问题,您将能够在分段环境中复制它。
许多托管的wordpress托管提供商在其付费计划中提供分段网站作为附加价值。这是最用户友好的方式,可以获得一个分段环境,在其中您可以玩耍和尝试事物而没有风险。但是,如果您的托管提供商不提供此可能性,则可以使用wp staging插件创建一个分段网站。此插件使克隆您的网站变得轻松,并且可以像真实环境一样使用克隆。您将始终知道自己在分段环境中,因为屏幕顶部将显示一个橙色栏。
如果您喜欢亲手动手,您始终可以在子域名上手动创建分段网站,前提是您的托管提供商允许您向您的帐户添加子域名。以这种方式创建分段网站的过程可能有些棘手,因此如果您是wordpress初学者,您可能希望使用其他选项。
查询监视
它的名称可能会让人产生误解,因为查询监视不仅仅是监视查询。它是wordpress的完整开发人员面板,可启用脚本、样式表、api调用、数据库查询、php错误等的调试。一些高级功能还可以让您调试ajax调用并进行用户能力检查。
一旦您安装并激活它,查询监视将以最有用的方式显示有关您网站行为的信息。
例如,它显示按函数、插件或主题分组的聚合数据库查询。管理工具栏菜单显示当前页面的实时统计数据,包含您可能需要评估需要解决的问题的所有调试信息。
通过使用查询监视,您可以逐步缩小搜索范围,查找导致网站性能下降或引起故障的插件或主题。就像wordpress一样,查询监视完全免费且开源。
firefox开发者工具
以前被称为firebug,firefox开发者工具是专为开发人员量身定制的firefox的特殊版本,提供最新的开发功能和工具。它不仅限于wordpress,但实际上对于调试网站非常有用。
将 firefox 开发者工具与更受欢迎的 chrome devtools 进行比较是不可避免的。在这样做的时候,firefox 的稳定布局脱颖而出。例如,您可以右键单击任何元素以调出检查器选项卡,并且 web 控制台在打印对象时提供丰富的输出,显示的信息不仅仅是对象的名称。它为某些类型提供额外的信息,可以详细检查对象的属性,并为 dom 元素提供更丰富的信息。
使用检查器工具,您可以检查和修改页面的 html 和 css,在 firefox 上加载的本地页面或 firefox for android 上的远程设备上进行操作。
web 控制台显示有关网页的所有可能需要的信息:javascript、网络请求、css、警告、错误消息和由 javascript 代码显式记录的信息性消息。它还允许您通过直接在页面上下文中执行 javascript 表达式与网页交互。
new relic
作为 apm(应用性能监控)行业中最大的参与者之一,new relic 是一个商业产品,全球数千名开发人员每天都在使用它来获取有关其软件产品的性能见解。它具有允许第三方添加功能的插件体系结构,从而在此工具中可以监视几乎无限的技术领域。
价格范围从每个主机每月 9.37 美元到 200 美元不等,面向专业调试任务。它还具有扩展的学习曲线,因此除了花钱购买解决方案外,您还需要投入时间来学习如何使用它。new relic 的用户赞赏它容易集成到应用程序中以进行 apm 和基础设施监控。
kinsta 可以让您轻松地从他们的 mykinsta 仪表板集成 new relic。
debug bar
debug bar 是一组通过 wordpress 管理栏上的调试菜单访问的插件,显示各种调试信息。其选项包括控制台、短代码、常量、文章类型、计划任务、动作和过滤器、暂存、远程请求以及列出的脚本和样式依赖项。它是一个开源插件,因此可以免费使用。
主要插件 debug bar 提供基本功能,由其他插件扩展。它与 wordpress 提供的内置调试标志(例如 wp_debug
和 savequeries
)一起使用。当这些标志处于活动状态时,debug bar 会添加有用的调试信息,例如 php 警告和 mysql 查询,使您无需查找和阅读日志文件。
每个debug bar菜单选项都提供了其自己的调试功能。例如,控制台提供了一个控制台,您可以在其中运行任意的php代码,这对于测试变量内容(以及其他用途)非常有帮助。cron显示有关wordpress的计划事件(例如下一个事件的时间、计划事件的数量、自定义计划事件列表等)的信息。actions和filters是另一个选项,可以显示附加到当前请求的挂钩。actions选项卡显示附加到当前请求的动作,而filters选项卡显示所有过滤器标签以及附加到每个过滤器的函数。
为所有人提供调试功能
调试工具主要设计给软件开发专业人士使用。但即使您不是开发人员,如果只是维护一个wordpress博客,了解如何监视和调试您的网站至少是有用的。通过这样做,您可以为开发人员提供一些信息,帮助他们找到问题的源头,就像如果您感到不舒服,您可以在去医院之前自己测量体温来为医生节省一些工作一样。
学习一些wordpress专业人员如何赚钱的方法。