Wordpress неотслеживаемый белый экран смерти при миграции


Моя проблема заключалась в том, что после переноса веб-сайта на другой сервер с помощью backup buddy я наткнулся на белый экран смерти.

Я включил режим отладки в 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. Когда я добавляю "умереть ("бум"); "перед "include_once("widget-price_filter.php ');"= бум распечатан.
  2. Когда я добавляю "умереть ("бум"); "после "include_once("widget-price_filter.php ');"= бум НЕ распечатан.

Таким образом, можно с уверенностью сказать, что ошибка находится внутри widget-price_filter.php верно?

Проблема в том, что я добавляю кубик в начале widget-price_filter.php, он не распечатывает его. Это похоже на то, что строки, в которой произошла ошибка, нигде нет.

Что может быть причиной этого?

Author: thedjaney, 2012-09-14

1 answers

Таким образом, можно с уверенностью сказать, что ошибка находится внутри widget-price_filter.php верно?

Да, полностью (и вы следовали правильному способу отладки).

Проблема в том, что я добавляю кубик в начале widget-price_filter.php, он не распечатывает его. Это похоже на то, что строки, в которой произошла ошибка, нигде нет.

Если (как вы говорите, вы сделали) вы добавили die('HELLO'); прямо вверху (после <?php), и он не появляется - это означает, что есть одна из двух проблем

  1. Файл не найден
  2. Синтаксическая ошибка на этой странице.

Вы можете решить 1 из трех способов:

  1. Проверьте журналы ошибок php (если у вас есть доступ)
  2. Перед вызовом "include_one" (в init.php ) добавить:

    error_reporting(E_ALL);
    ini_set('display_errors', 'on');
    
  3. Полностью очистите код (просто оставив <?php die('HELLO'); ?>, проверьте, что отображается, а затем добавьте код по частям.

Если у вас есть маршрут 2, не забудьте убрать его, когда вы это сработало. Очень важно!

+1 за то, что на самом деле потратил время, чтобы попытаться решить эту проблему самостоятельно, прежде чем публиковать (с помощью echo и die). Так что я надеюсь, что это поможет с остальным.

 5
Author: Robbie, 2012-09-14 01:55:07