4

我的问题是,在使用备份伙伴将网站迁移到另一台服务器后,我遇到了白屏死机。

我在 Wordpress 中打开了调试模式,仍然没有错误,只是白屏。

所以我尝试删除所有文件并再次重新上传它们并将数据库保持原样(BackupBuddy 导入的那个),但它仍然给我白屏。

所以我试图追踪出现白屏的特定行并陷入奇怪的行为。

在 /wp-content/plugins/woocommerce/widgets/widget-init.php 中:

include_once('widget-cart.php');
include_once('widget-featured_products.php');
include_once('widget-layered_nav.php');
include_once('widget-price_filter.php');
include_once('widget-product_categories.php');
include_once('widget-product_search.php');
include_once('widget-product_tag_cloud.php');
include_once('widget-recent_products.php');
include_once('widget-top_rated_products.php');
  1. 当我添加“die('boom');”时 在“include_once('widget-price_filter.php');”之前 = 打印出动臂。
  2. 当我添加“die('boom');”时 在“include_once('widget-price_filter.php');”之后 = 没有打印出动臂。

所以可以肯定地说这个错误在 widget-price_filter.php 中,对吧?

问题是当我在 widget-price_filter.php 的开头添加一个骰子时,它不会打印出来。就像发生错误的行不存在一样。

这可能是什么原因?

4

1 回答 1

6

所以可以肯定地说这个错误在 widget-price_filter.php 中,对吧?

是的,完全是(并且您遵循了正确的调试方式)。

问题是当我在 widget-price_filter.php 的开头添加一个骰子时,它不会打印出来。就像发生错误的行不存在一样。

如果(如您所说)您已die('HELLO');在顶部(在 之后<?php)添加并且它没有出现 - 这意味着存在两个问题之一

  1. 文件未找到
  2. 该页面中的语法错误。

您可以通过以下三种方式之一解决:

  1. 检查 php 错误日志(如果您有权访问)
  2. 在调用“include_one”(在 init.php 中)之前添加:

    error_reporting(E_ALL);
    ini_set('display_errors', 'on');
    
  3. 完全清空代码(只留下<?php die('HELLO'); ?>, 检查出现然后一点一点地添加代码。

如果您有路线 2,请记住在它工作时将其取出。很重要!

+1,因为在发布之前实际上花时间尝试自己解决它(有回声和死亡)。所以我希望这对其余的有所帮助。

于 2012-09-14T01:52:14.867 回答