Как исправить белый экран смерти в WordPress

Дата публикации:Сентябрь 22, 2015

Пожалуй, каждый из нас хотя бы раз сталкивался с так называемым «белым экраном смерти» в WordPress после того, как устанавливал плагин или изменял какие-либо настройки. Ни контент, ни панель администратора – ничего недоступно. Если вам знакома описанная ситуация, эта статья для вас.

wsod

Я расскажу вам про все возможные проблемы, самые частые причины их возникновения, а также – что самое главное – предложу вам решения того, как вернуть свой сайт в рабочее состояние в максимально быстрые сроки.

Белый экран смерти (WSOD) практически всегда связан с ошибками в коде PHP или исчерпанием доступной памяти. Первое, что нужно сделать, это определить, работает или нет панель администратора. Если фронтэнд сайта не отображается, но при этом панель администратора работает, то в таком случае проблема, скорее всего, вызвана поврежденной темой или плагином.

Отключаем плагины и темы

Самый лучший способ справиться с этим – отключить все плагины. Если это поможет решить проблему, то в таком случае вам останется лишь найти виновника. Начните активировать плагин один за другим, перезагружая свой сайт после каждой активации. Если ваш фронтэнд перестанет работать, следовательно, вы нашли проблемный плагин.

Если это не помогло, то в таком случае вы можете временно переключиться на дефолтную тему WordPress. Можно, к примеру, воспользоваться Twenty Fifteen. Если ваш сайт стал нормально работать, значит, проблема связана с вашей темой.

Включаем режим отладки

Если ваш сайт по-прежнему не работает, либо панель администратора не запускается (или если вы обнаружили виновника проблемы, но при этом хотите копнуть еще глубже), вы можете включить режим отладки, который позволит вам увидеть любые ошибки.

Проблема состоит в том, что когда происходит фатальная ошибка, скрипт просто прекращает свое выполнение. Если ошибка произойдет до того, как какой-либо контент будет выведен на экран, вы просто увидите белый экран, лишенный какой бы то ни было информации.

Чтобы включить режим отладки, вам нужно открыть файл wp-config.php вашей сборки WordPress. В нем должна быть следующая строка:

define( 'WP_DEBUG', false )

Вам нужно заменить false на true, после чего уже перезагрузить сайт. Вместо белого экрана смерти вы получите белый экран с сообщениями об ошибках. Не самое прекрасное усовершенствование, но зато хоты бы появляются какие-то зацепки.

Если вы не отключали темы и плагины, вы сможете понять, кто является виновником проблемы, просто изучив сообщение об ошибке. В сообщении должно быть указано, какой файл вызвал ошибку. Пример:

Cannot redeclare get_posts() (previously declared in /var/www/html/wordpress/wp-includes/post.php:1874) in /var/www/html/wordpress/wp-content/plugins/my-test-plugin/my-test-plugin.php on line 38

Как вы можете видеть, проблему вызвала строка 38 плагина, который называется «my-test-plugin». Отключаем этот плагин, и все должно заработать.

Совет: если у вас имеется доступ по FTP или вы можете зайти на сервер через панель управления вашего хостинга (к примеру, cPanel), вы можете разом деактивировать все плагины, переименовав папку plugins, к примеру, в plugins.hold. Папка находится в wp-contents.

Если вы разбираетесь в коде, вы можете попытаться самостоятельно модифицировать плагин. В случае с плагином из официального хранилища я рекомендую написать его автору вместо того, чтобы самостоятельно пытаться что-то исправить. При ручной модификации плагина вам придется самостоятельно поддерживать все изменения, что является довольно проблематичной задачей. Проще его деактивировать и дождаться того момента, когда он будет исправлен разработчиком.

Увеличиваем лимиты памяти

Если вы по-прежнему видите пустую страницу или получаете сообщение о нехватке памяти, то в таком случае вам нужно выделить приложению больше памяти. Сделать это можно через файл wp-config.php в большинстве сборок, просто добавьте следующий код:

define('WP_MEMORY_LIMIT', '64M');

Если это не сработало, то в таком случае у вас есть несколько вариантов того, как можно поступить. В обычной среде вы можете использовать ваш файл .htaccess – который находится в корневой директории WordPress, – чтобы увеличить лимит памяти. Просто добавьте в него следующую строку:

php_value memory_limit 64M

Если вы работаете с современными хостингами, которые используют в своей архитектуре Nginx, файл .htaccess может быть недоступен. В таком случае вы можете воспользоваться файлом php.ini для увеличения лимита памяти. Поместите в этот файл следующую строку:

memory_limit = 64M

Если вы по-прежнему выходите за пределы выделенной памяти, то в таком случае, возможно, проблема с вашим приложением. Скорее всего, ваша тема или один из ваших плагинов используется чрезмерный объем ресурсов. Обратитесь к разработчикам или к вашему хостингу, чтобы они изучили ваши SQL-логи и статистику по использованию ресурсов.

Решаем проблемы с правами доступа к файлам

Эта причина вряд ли может привести к белому экрану смерти, однако она по-прежнему может вызывать разные проблемы.

Для WordPress действуют следующие правила:

  • Файлы должны быть 664
  • Папки должны быть 775
  • Файл wp-config.php должен быть 660

Если у вас есть SSH-доступ к вашему серверу, вы можете применить соответствующие правила путем выполнения следующей команды, выполненной из корневой директории WordPress:

sudo find . -type f -exec chmod 664 {} +
sudo find . -type d -exec chmod 775 {} +
sudo chmod 660 wp-config.php

Если вы боитесь менять что-то самостоятельно, обратитесь к своему хостингу. Они сделают это за вас. Некоторые WordPress-хостинги имеют автоматическую проверку прав доступа, которая позволяет все настроить за пару секунд.

Решаем проблемы с автоматическим обновлением

В редких случаях WordPress может столкнуться с проблемами при обновлении, такими как таймаут сервера. Как правило, все решается автоматически, однако в некоторых ситуациях это может вести к появлению белого экрана смерти.

Первое, что нужно сделать в таком случае – это перейти в корневую директорию WordPress и посмотреть, есть ли в ней файл .maintenance. Удалите этот файл и попробуйте загрузить свой сайт снова. Если обновление было успешным – но WordPress не смог удалить этот файл автоматически – все вернется в обычную стезю.

Если обновление не было завершено, оно может быть сделано автоматически, что, опять же, приведет к нормальному состоянию сайта. Если это не помогло, то в таком случае вы можете пройти процедуру ручного обновления, которая поможет справиться с проблемой раз и навсегда.

Источник: kinsta.com

Поделиться

9 комментариев

  1. Не так давно столкнулась с данной проблемой когда чистила бесплатный шаблон темы на wordpress ни панель администратора ничего не отвечало. Пришлось перезаливать файл темы через тотал командер на сервер.По другому никак проблему устранить не могла

  2. Если сайт небольшой, то лучше делать на чистом HTML с «инклюдами» для меню, хедера, футера и т. п. А движек любой иногда глючит.

  3. Да, белый экран, типичная ошибка новичков и ихняя страшная головная боль, все через это прошли

  4. Кто-то может огласить «черный список» плагинов, которые могут привести к такому «счастью»? ))

    • Дмитрий says:

      Вряд ли можно составить список таких плагинов. Здесь же все индивидуально — зависит от совместимости плагинов, от их требований к версии WordPress, даже от самого сервера многое может зависеть.

  5. suharrmen says:

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

    • Саша says:

      Да не, отрубить все плагины и включать по одному и проверять. Они основная причина сбоев в нехватки памяти.

  6. Спасибо огромное за статью!! Очень полезная информация! Этот белый экран меня однажды чуть с ума не свел! Теперь я поняла что к чему, надеюсь больше не возникнет у меня такой неприятности, а если и возникнет, то смогу ее устранить без потери нервов))

  7. Alex says:

    А мне оказывается повезло раз не было такой проблемы… После прочтения мурашки по коже))) спасибо, что предупредили о риске и указали на пути ее решения. Буду знать, куда обращаться в случае чего.

Оставить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Получать новые комментарии по электронной почте. Вы можете подписаться без комментирования.