标签: DEBUG

  • 如何开启Debug记录WordPress日志文件

    WordPress日志文件

    WordPress日志文件是您可能从未听说过的整个WP生态系统中最重要的方面之一。或者至少,可能从来没有想过。日志文件本质上是您的网站和服务器在其生命周期(或特定时间范围)内所做的一切的记录。不幸的是,许多人认为日志文件难以理解和使用。

    我们想打破这种误解,向您展示如何使用WordPress日志文件以及这些知识可以做什么来改进您的网站。

    使用WordPress日志文件做什么?

    WordPress日志文件的使用因您的角色而异。用户会发现与管理员和开发人员不同的有用的东西等等。但是,这些完全相同的日志文件可以做很多事情,而且许多目的可以重叠。

    • 发现错误
    • 帮助故障排除
    • 审计安全
    • 评估无障碍标准
    • 监控用户体验
    • 跟踪用户活动
    • 检查插件性能
    • 探索主题

    还有很多。另外,还有很多不同类型的日志文件。有些是针对WordPress本身的,而有些则可能是由个别插件生成的。让我们特别看看其中的一些,看看你能期待什么。

    WordPress调试日志文件

    默认的WordPress日志文件本身对于新的WP安装是禁用的。您必须进入wp-config.php文件并手动启用它。默认情况下,调试日志是禁用的,因为记录WP安装所做的一切会占用您的一些服务器资源。它不是运行站点,而是记录它如何运行站点。

    我们建议您只在短时间内启用日志记录,因为出现问题需要修复它们。当然,除非您在开发环境中工作。

    现在,您可以通过多种方式启用日志。通过FTP使用类似FileZilla的程序并在代码编辑器中编辑文件。通过cPanel,甚至通过插件,例如WP File Manager。不管怎样,这个过程很简单。您将在安装的根目录中找到wp-config.php文件,并向其中添加两行代码。

    define( ‘WP_DEBUG’, true );
    define( ‘WP_DEBUG_LOG’, true );
    define( ‘WP_DEBUG’, true );
    define( ‘WP_DEBUG_LOG’, true );
    define( ‘WP_DEBUG’, true );
    define( ‘WP_DEBUG_LOG’, true );

    步骤 1:找到wp-config.php

    无论您的根目录在哪里,都可以连接到那里。它很可能位于/public_html/example.com/下(.com部分可能存在也可能不存在)。

    wp-config.php文件

    步骤 2:编辑wp-config.php

    在那里,在您选择的编辑器中打开它。Sublime Text、VS Code和Atom都是流行的选择。滚动直到找到显示 /* That’s all, stop editing! Happy blogging. */ 那里,将上面的两行代码直接粘贴到它上面。您甚至可能已经在文件中标记为false

    如何通过WordPress日志文件来优化网站-3

    第一行允许进行调试,而第二行生成日志文件本身。在这种格式中,代码段将WordPress日志文件保存到wp-content/debug.log,但您可以用单引号中的相对路径替换true以指定不同的位置。例如,define( 'WP_DEBUG_LOG', '/tmp/wp-errors.log' ); WordPress Codex条目中调试日志所指定。

    步骤 3:查找、阅读和理解日志文件

    请注意,您的日志文件可能不会立即出现。它不是服务器活动的实时日志,而是其中发生的错误的日志。因此,为什么我们之前建议您仅在出现问题时启用它。因此,如果debug.log文件尚不存在,请给它时间。

    debug log文件

    当您最终获得debug.log文件时,您可以在文件管理器或您选择的代码编辑器中打开它。但是你会看到类似的东西。

    log文件编辑

    对于典型的 WordPress 用户来说,这看起来像gobbledygook。但是,对于开发人员来说,他们会发现一些插件中的PHP问题无法执行某些任务。

    步骤 4:获取帮助

    正如我们上面所说,大多数WP用户不知道如何处理这些错误。但是,当您的网站未达到最佳性能时,您需要修复这些问题。这时候你就得找人帮你了。

    在此特定路径中您有几个选择,其中最明显的是下载整个debug.log文件并通过Slack或电子邮件将其发送给熟悉WP的技术人员。大多数时候,这是最好的选择。即使您是一名开发人员并拥有此日志,您也可能会将其发送到链上(或者,如果您是高级开发人员并委派任务,则可能会将其发送到链上)。

    但如果您不是团队的一员,您也可能需要将文件发送到某个地方。但是在哪里?Stack Overflow。或者更具体地说,WordPress Stack Exchange(基于WP的子论坛)。如果您无法在 Stack Overflow 或 Stack Exchange 上获得有关您的技术问题的答案,您应该去买一张彩票。因为这些都是一些疯狂的可能性。

    此外,您可以将调试日志直接发送给插件的开发人员,甚至可以在WordPress.org的官方WordPress帮助论坛上发布。虽然问题可能与个别插件有关,但日志来自WP,人们之前可能遇到过这些特定问题。

    最重要的是,每个插件的repo页面上都有插件支持页面。

    WP插件支持

    这些会将您带到WP.org上针对该特定插件的直接支持论坛。

    插件论坛

    使用这些论坛可以获得针对您的问题的一些个性化帮助。

    小结

    如您所见,WordPress错误日志非常密集。它们可能令人生畏,甚至让它们设置(除了使用插件)对某些人来说也可能是可怕的。但是,如果您将调试限制在开发环境中,或者在获取公共服务器上的日志后将其关闭,那么它们是一个出色的故障排除工具,可以查看您的站点内部出了什么问题。因此,下次您的用户遇到问题,甚至您的员工遇到站点后端未按预期运行的问题时,WordPress日志文件可以成为一道极好的防线。

  • WordPress调试完整指南(启用WP_DEBUG + 其他工具)

    WordPress调试完整指南(启用WP_DEBUG + 其他工具)

    在一个完美的世界中,您永远不会遇到需要调试的问题。但在现实世界中,您几乎肯定会在WordPress网站上遇到需要深入了解的问题。

    为了帮助您做到这一点,WordPress包含其自己的内置调试模式,您还可以找到有用的第三方工具来帮助您调试WordPress。

    在这篇文章中,我们将深入研究内置的WordPress调试模式并向您展示如何启用它。然后,我们还将分享其他一些调试WordPress网站的方法。

    这是我们将涵盖的所有内容:

    WP Debug有什么作用?

    核心WordPress软件是用PHP编写的,插件和主题也是如此。

    如果您的网站出现问题,WordPress Debug模式可以通过显示所有PHP错误、通知和警告来帮助您找出问题所在。

    启用Debug模式后,只要出现问题(即使它不会立即引起问题),您就会看到如下消息:

    WordPress网站上的WP_DEBUG错误示例

    WordPress网站上的WP_DEBUG错误示例

    然后,您可以修复问题或将其报告给您的开发人员或主题/插件的开发人员。

    什么是WordPress调试日志?

    当你本身启用WordPress的调试模式,你会看到的消息像上面网站上的例子在那一刻-但这些消息不会被保存任何地方。

    如果您想保存它们,您还可以启用WordPress调试日志以将所有这些消息和错误保存到您服务器上的文件中。

    通过将WP_DEBUG_LOG常量设置为true启用后,WordPress会将所有问题写入以下文件:

    wp-content/debug.log

    但是,您也可以指定自定义文件路径以将日志写入服务器上的其他位置。

    如果您想将问题保存到日志中但不想在页面的HTML中公开显示它们(如上面的示例屏幕截图),您还可以使用WP_DEBUG_DISPLAY常量来保持启用调试模式但不在您的站点上显示消息。

    通常,您需要WP_DEBUG_DISPLAYWP_DEBUG_LOG.

    如何启用WordPress Debug模式

    要启用WordPress调试模式,您有多种选择。我们将介绍三种启用它的方法:

    1. 如何使用WordPress调试插件
    2. 如何手动启用WordPress调试模式

    如何使用WordPress调试插件

    您可以使用免费的WordPress调试插件,启用调试模式。WordPress.org上有几个选项,但我们推荐Andy Fragen提供的免费WP Debugging插件

    WP Debugging插件

    WP Debugging插件

    安装并激活插件后,它会立即开始工作。默认情况下,它将以下常量设置为true(即启用以下功能):

    • WP_DEBUG – 启用调试模式。
    • WP_DEBUG_LOG – 将消息保存到日志文件。
    • SCRIPT_DEBUG
    • SAVEQUERIES

    我们将在本文稍后介绍最后两个常量的作用。

    要配置一些选项,您可以转到工具 → WP Debugging:

    WP Debugging插件设置

    WP Debugging插件设置

    完成后,请确保禁用插件以禁用调试模式。

    如何手动启用WordPress调试模式

    最后,您还可以通过手动将常量添加到wp-config.php文件来启用WordPress调试模式。

    首先,通过FTP连接到您的服务器并编辑wp-config.php文件。默认情况下,此文件位于您站点的根文件夹中(除非您出于安全原因移动了它)。

    要启用只是基本的WordPress的调试模式,添加下面的代码片段上面写着/* That’s all, stop editing! Happy blogging. */:

    // Enable WP_DEBUG modedefine( ‘WP_DEBUG’, true );
    // Enable WP_DEBUG modedefine( ‘WP_DEBUG’, true );
    // Enable WP_DEBUG modedefine( 'WP_DEBUG', true );

    您还可以根据自己的喜好使用以下一些常量:

    // Enable Debug logging to the /wp-content/debug.log filedefine( ‘WP_DEBUG_LOG’, true );// Disable display of errors and warningsdefine( ‘WP_DEBUG_DISPLAY’, false );@ini_set( ‘display_errors’, 0 );
    // Enable Debug logging to the /wp-content/debug.log filedefine( ‘WP_DEBUG_LOG’, true );// Disable display of errors and warningsdefine( ‘WP_DEBUG_DISPLAY’, false );@ini_set( ‘display_errors’, 0 );
    // Enable Debug logging to the /wp-content/debug.log filedefine( 'WP_DEBUG_LOG', true );// Disable display of errors and warningsdefine( 'WP_DEBUG_DISPLAY', false );@ini_set( 'display_errors', 0 );

    完成后,您可以将常量设置为false或仅删除代码段以禁用调试模式。

    确保在完成后禁用WordPress中的调试模式

    调试模式在您尝试解决WordPress问题时很有用,但您不应该让它24/7全天候启用,因为它可以将您的PHP代码中的文本显示给网站访问者。

    我们在上面提到了这一点 – 但这只是提醒您在完成故障排除后始终禁用调试模式。

    其他调试WordPress的方法

    除了我们上面介绍的内置调试工具之外,还有其他几个内置和第三方工具可以帮助您调试WordPress网站。

    脚本调试

    SCRIPT_DEBUG是另一个内置常量,它强制WordPress使用核心CSS和JavaScript文件的开发版本,而不是它通常加载的缩小版本。

    如果您正在测试对内置 .js 或.css文件的更改,这会很有帮助。

    要启用SCRIPT_DEBUG,您可以:

    • 使用上面的免费WP Debugging插件,默认情况下启用它。
    • 将以下常量添加到您的wp-config.php文件中 –define( 'SCRIPT_DEBUG', true );

    数据库查询调试

    如果您的站点的数据库有问题,您可以使用SAVEQUERIES常量来启用数据库查询日志记录:

    • 每个数据库查询。
    • 调用数据库查询的函数。
    • 查询用了多长时间。

    要启用查询日志记录,您可以:

    • 使用上面的免费WP Debugging插件,默认情况下启用它。
    • 将以下常量添加到您的wp-config.php文件中 –define( 'SAVEQUERIES', true );

    注意:这会影响您网站的性能,因此请尽可能在临时网站上使用它,并在完成后立即将其禁用。

    Query Monitor插件

    Query Monitor插件是一个免费的插件,这对在WordPress包括调试许多不同的领域有所帮助:

    总的来说,它是您能找到的最好的WordPress调试工具之一,这就是为什么它在320多条评论中几乎获得了完美的5星评级。

    安装并激活插件后,您将在WordPress工具栏上获得一些显示调试信息的新选项。单击后,这些选项将打开一个新的Query Monitor框,为您提供更多信息:

    Query Monitor插件

    Query Monitor插件

    为了更详细地了解,我们有一整篇关于如何使用Query Monitor插件的文章

    New Relic

    New Relic是用于分析和调试站点性能的高级工具。它可以帮助您发现影响站点性能的瓶颈和问题。

    服务器日志

    最后,您的服务器日志也可以成为调试WordPress的有用工具。

    如果您在使用宝塔面板,也可以轻松查询服务器日志,参考宝塔面板日志查阅教程

    小结

    如果您需要调试WordPress,内置的WordPress调试模式提供了一种查看PHP错误和通知的有用方法。

    您可以使用插件或通过将代码片段添加到您网站的wp-config.php文件来启用它。

    如需更多帮助,您还可以使用其他内置工具或第三方工具,例如New Relic和免费的Query Monitor插件。

  • 简单有效的WordPress调试及故障排查小技巧

    简单有效的WordPress调试及故障排查小技巧

    如果您是Web开发人员,您经常处理网站错误,对吗?无论您是从头开始为网站编写代码,还是部署已经编写好的软件程序,您都一定会遇到错误。这是因为编码错误可能发生在包括WordPress在内的所有类型的计算机程序中。

    但是每个问题都有解决方案,错误也是如此。事实上,作为一名Web开发人员,您的主要职责之一是调试错误或编码错误。这篇文章将全面为您提供调试WordPress编码错误一些有效的信息。

    所以,如果你是WordPress开发者,这个博客对你来说非常方便。我们将在整个博客中为您提供一些杀手级和有效的调试WordPress提示和技巧。

    但在此之前,让我们定义术语调试并给您一个概述。这将帮助您更好地理解后续要点。

    Debug调试说明

    简而言之,调试或调试是指检测和修复软件或计算机程序中的编码错误。通常,Web开发人员是执行调试任务的专业人员。

    开发人员使用许多调试工具来修复代码中的错误。一旦更正,他们会运行进一步的测试以确保程序中不会再次出现错误。需要注意的是,调试是软件开发过程中的一个持续动作。

    Debug调试说明

    要调试一个软件,您可以采用多种策略,包括单元测试、代码审查和结对编程。在发布软件程序之前,Web开发人员的工作是确保软件程序没有错误。

    但是,即使在修复了明显的错误之后,错误也可能出现在软件正式发布后。这是因为几乎不可能一次性识别出产品中的所有错误。用户开始使用该产品后,该程序的一些错误就会显现出来。当用户抱怨错误时,开发人员必须立即修复它们。

    为什么提前调试WordPress网站很重要

    WordPress安全性一样,调试WordPress也很重要。当您设计WordPress网站时,您会利用许多3rd方插件来增强您的网站功能。但是所有这些插件都不太可能为您带来预期的成果。其中许多插件会触发代码冲突,从而削弱您的WordPress网站。

    调试WordPress

    WordPress有一个debug调试模式,可以让您预先检测到这种类型的代码冲突。这使您可以在网站上线之前解决这些问题。因此,在网站上线后修复新出现的网站错误所需的时间和精力会减少。

    7个有效的调试WordPress提示和技巧

    现在,是时候切入正题了,即为您提供调试WordPress站点的可能解决方案。通常,每当我们中的任何人面对我们的WordPress网站崩溃时,我们倾向于停用或卸载我们所有活动的主题和插件。事实上,这是我们被要求做的。并不是说采用这种方法是错误的。

    但这是让您的网站重回正轨的浪费时间和低效的方法。这样,您网站的真正问题也可能会被忽视。因此,你必须想出一个真正的游戏规则改变者,而这正是我们要在这里讨论的——

    如果您愿意了解如何恢复被黑的WordPress网站,可以参考以下链接 –

    如何恢复被黑的WordPress网站?

    WordPress调试插件的可用性

    当涉及到WordPress网站的功能增强时,插件总是很有用的。例如,如果您想通过社交媒体功能丰富您的网站,您可以使用社交媒体插件

    同样,如果您想为您的WordPress网站增强调试功能,您可以使用一流的WordPress调试插件。我们会命名并推荐2个调试WordPress插件——Query Monitor和Debug Bar。

    Query Monitor

    Query Monitor带有一些令人兴奋的WordPress调试功能。它有一个用于WordPress的开发人员工具面板。它可以让您对数据库查询、PHP错误、块编辑器块、挂钩和操作、语言和翻译、重写规则、排队脚本和样式表、HTTP API调用等进行故障排除或调试。

    Query Monitor

    它还包含一些高级功能,例如调试Ajax调用、REST API调用和用户能力检查。该插件的显着特点是它能够通过插件和主题来缩小其输出范围,让您破译低级插件和主题。

    查询监视器也以显示方便的信息而闻名。选择菜单项后,您可以添加管理工具栏菜单以显示当前页面概述,并在面板中显示调试信息。

    Debug Bar

    Debug Bar是一个高度信任的调试WordPress工具,您可以从WP admin中使用它。它使您可以快速访问不同类型的调试信息,例如缓存、查询等。该工具出现在站点的管理栏顶部,使您可以从前端和后端调试信息。

    Debug Bar

    在Debug Bar插件中,您将有几个选项来识别代码中的问题。例如,您可以通过激活WP_DEBUG来启用对PHP警告和通知的跟踪。此外,要找出您网站的性能问题,您可以启用SAVEQUERIES,它会公开和跟踪MYSQL。

    激活WP_DEBUG

    在WordPress中记录任何问题的最简单方法是激活WP_DEBUG,您可以通过编辑wp-config.php文件来完成。WP_DEBUG是WordPress内置的默认调试模式,它有2个子类型。

    一个是WP_DEBUG_DISPLAY,它在屏幕上显示错误,另一个是WP_DEBUG_LOG,它将错误消息保存在wp-content/debug.log中。

    要激活WP_DEBUG,您可以导航到网站的根目录。您可以通过托管服务提供商的文件管理器或使用FileZilla等文件传输协议 (FTP) 客户端来执行此操作。wp-config.php文件将位于public_html文件夹下。

    找到并打开文件后,下一步是复制并粘贴以下代码段:

    // Enable WP_DEBUG mode
    define( ‘WP_DEBUG’, true );
    // Enable Debug logging to the /wp-content/debug.log file
    define( ‘WP_DEBUG_LOG’, true );
    // Disable display of errors and warnings
    define( ‘WP_DEBUG_DISPLAY’, false );
    @ini_set( ‘display_errors’, 0 );
    // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
    define( ‘SCRIPT_DEBUG’, true );
    // Enable WP_DEBUG mode
    define( ‘WP_DEBUG’, true );

    // Enable Debug logging to the /wp-content/debug.log file
    define( ‘WP_DEBUG_LOG’, true );

    // Disable display of errors and warnings
    define( ‘WP_DEBUG_DISPLAY’, false );
    @ini_set( ‘display_errors’, 0 );

    // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
    define( ‘SCRIPT_DEBUG’, true );

    // Enable WP_DEBUG mode
    define( 'WP_DEBUG', true );
    
    // Enable Debug logging to the /wp-content/debug.log file
    define( 'WP_DEBUG_LOG', true );
    
    // Disable display of errors and warnings
    define( 'WP_DEBUG_DISPLAY', false );
    @ini_set( 'display_errors', 0 );
    
    // Use dev versions of core JS and CSS files (only needed if you are modifying these core files)
    define( 'SCRIPT_DEBUG', true );

    需要注意的是,这应该插入到/* That’s all, stop editing! Happy blogging. */”。完成后,请务必保存更改。

    启用WPDB错误报告

    如果您使用WPDB类来处理您的数据库,那么进行WPDB错误报告是非常重要的。通过此错误报告,您可以确定您的查询是否运行良好。最重要的是,它还将显示调试WordPress的错误消息。

    $wpdb对象中有一个名为$show_errors的变量。如果将此设置为true,则可以提示WordPress将任何给定查询的SQL错误输出到屏幕上。

    global $wpdb;
    // Before running your query:
    $wpdb->show_errors = TRUE;
    $result = $wpdb->get_results(“SELECT field_value FROM table_name”);
    if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
    }
    global $wpdb;
    // Before running your query:
    $wpdb->show_errors = TRUE;
    $result = $wpdb->get_results(“SELECT field_value FROM table_name”);
    if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
    }
    global $wpdb;
    // Before running your query:
    $wpdb->show_errors = TRUE;
    $result = $wpdb->get_results("SELECT field_value FROM table_name");
    if(! $result){
    $wpdb->print_error();
    // Or you can choose to show the last tried query.
    echo $wpdb->last_query;
    }

    要启用此功能,请转到/public_html/wp-includes/wp-db.php并打开文件。搜索wpdb class并将$show_errors变量更改为true

    部署WordPress临时站点

    不熟悉“临时站点”一词?好吧,登台站点是您的实时站点的精确克隆。您可以在不公开的情况下在您的私有子域中托管暂存站点。这就是为什么暂存站点首先是执行代码的理想场所。

    登台站点充当开发平台,允许您实现希望在实时站点中推送的任何代码。由于登台环境对人和搜索引擎来说是不可见的,因此它是一个理想的平台,可以在将代码移至实时站点之前对其进行测试、调整和微调。

    识别PHP错误

    在PHP中,您可以保留错误日志,因为它带有自己的错误报告级别。使用phpinfo文件,您可以在脚本的早期轻松检测PHP错误。这个phpinfo文件能够输出有关PHP当前状态的信息。

    信息类型包括编译选项和扩展、版本、环境、操作系统版本、HTTP标头和许可证。为此,您可以配置php.ini文件以启用PHP错误报告并指定存储错误日志的位置。

    error_reporting = E_ALL | E_STRICT
    error_log = /var/log/php_error.log
    error_reporting = E_ALL | E_STRICT
    error_log = /var/log/php_error.log
    error_reporting = E_ALL | E_STRICT 
    error_log = /var/log/php_error.log

    但是,您可能会发现某些托管计划中禁用了此选项。在这种情况下,您可以部署PHP代码检查器,它会为您提供一个助手来检查代码中的缺陷。该工具将使您能够查找和修复语法错误,例如拼写错误的函数或丢失的分号。

    但是如果你的语法没有错误,你必须想出像Eclipse和PHPStorm这样的IDE。这些工具将破坏代码并让您检查您是否在做任何逻辑错误,例如忽略您之前存储在字符串中的变量。

    检查您网站的服务器错误日志

    您在浏览网站时可能遇到的常见网站错误之一是“内部服务器错误”。这种类型的错误可能是由于脚本超过了最大运行时间。PHP和WordPress都无法检测到此类编码错误。因此,对于此类错误,您不会收到任何PHP错误消息。

    检查您网站的服务器错误日志

    这是访问和查看您网站的错误日志的地方。常规日志检查可以帮助新手和高级开发人员找出问题。如果错误来自PHP代码或由于WordPress安装中的任何失误,您可以从错误日志中了解。

    您还可以致电您的托管服务提供商以了解错误日志的位置。他们还可以让您了解可能导致内部服务器错误的任何可能原因。

    启用SCRIPT_DEBUG

    为了最大限度地减少加载时间和带宽使用,WordPress默认使用CSS和JavaScript文件的缩小版本。使用缩小版本可能会隐藏您利用的脚本或插件中的错误。为了摆脱这个问题,WordPress还提供了一个常量,您可以将其添加到wp-config.php文件中,即 –

    define( ‘SCRIPT_DEBUG’, true );
    define( ‘SCRIPT_DEBUG’, true );
    define( ‘SCRIPT_DEBUG’, true );

    如果常量“ SCRIPT_DEBUG ”被定义为“true”,WordPress将自动加载CSS和JavaScript文件的非缩小版本,使所有插件使用它们的完整版本。

    小结

    调试WordPress不是在公园里散步,而是一项艰巨的任务,有时会变得乏味。但是,如果您遵循我们在这篇文章中列出的7个技巧,您可能会发现该过程更简单、更容易。

    事实上,我们总是倾向于依赖备份数据,而不是发现和修复现有问题。这是不可取的,因为如果不修复现有问题,您将在备份中再次遇到相同的问题或错误。

    因此,努力工作并找出WordPress网站的错误,按照上述技巧调试您的WordPress网站。有了它,您将掌握编码的窍门,还可以调试您的WordPress网站。修复错误后,您也可能会从WordPress网站获得更好的成果。