Белый экран смерти wordpress (WSOD) и как это исправить

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

Белый экран смерти WordPress

Белый экран смерти WordPress (WSOD — white screen of death) почти всегда вызван ошибками в PHP коде или нехваткой памяти. Первое, что вам следует сделать, это проверить наличие админ доступа на свой сайт. Если клиентская часть пользовательского интерфейса веб-сайта не работает, но с админ доступом все в порядке, скорее всего у вас проблемы с темой или плагином. Вы можете проверить как обстоят дела с админ доступом просто перейдя по адресу mysite.com/wp-admin.

В зависимости от браузера белый экран смерти также может иметь некоторые отличия. Вот пример для Google Chrome. Он выдает нам предупреждение «This page isn’t working and is unable to handle the request.» (Эта страница не активна и не может обработать запрос). Это ошибка HTTP 500.

белый экран смерти google

Белый экран смерти Google

Для Mozilla Firefox, это полностью белый экран без ошибок и предупреждений.

белый экран смерти firefox
Белый экран смерти Firefox

Как исправить WSOD

Если вы видите экран, подобный вышеприведенному, вот несколько общих шагов для решения проблемы:

  1. Отключите плагины и темы
  2. Устраните синтаксические ошибки
  3. Включите отладку
  4. Увеличьте лимит памяти
  5. Проверьте проблемы с правами доступа к файлам
  6. Проверьте на ошибки при обновлении
Белый экран смерти wordpress
Пустая страница wordpress

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

Одним из самых простых и распространенных способов исправления белого экрана смерти WordPress является обычное отключение всех плагинов. Зачастую проблемы с сайтом возникают после их неудачного обновления. Если у вас сохранился админ доступ, быстрым способом будет переход к вкладке «Плагины» и выбор опции «Деактивировать» в соответствующем меню. Это приведет к отключению всех ваших плагинов. Если это решит проблему, необходимо будет выявить «виновника». Активируйте их один за другим, перезагружая сайт после каждой активации.

Деактивация всех плагинов wordpress
Деактивация всех плагинов wordpress

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


Переименование папки с плагинами
Переименование папки с плагинами

То же самое касается и тем WordPress. Можете временно заменить свою тему на стандартную, Twenty Seventeen будет хорошим выбором. Если у вас есть доступ к панели управления, перейдите в раздел «Темы» в меню «Внешний вид» и, как вариант, активируйте тему «Twenty Seventeen», после чего еще раз проверьте свой сайт. Если он заработал, значит дело в теме.

Если админ доступ отсутствует, действия аналогичны рассмотренным в случае с плагинами. Назовите папку «wp-content/themes» как-нибудь по-другому, к примеру, «themes_old». После чего WordPress вернется к той стандартной теме, которая использовалась последней, скорее всего – это «Twenty Seventeen» (если у вас нет никаких других тем, можете загрузить Twenty Seventeen из репозитория WordPress, а затем в папку с темами «themes». Затем снова проверьте свой сайт.

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

2. Устранение синтаксической ошибки

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

Однако не стоит волноваться. С сайтом всегда можно соединиться посредством SFTP и вручную отменить внесенные изменения. В случае, если вы не знаете какие изменения вызвали проблему, у вас есть очередная причина выполнять резервное копирование WordPress сайта.

3. Включите отладку

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

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

define( 'WP_DEBUG', false )

Вам нужно будет заменить false на true и перезагрузить свой сайт. Если такой строки нет, можете добавить ее в начале кода.

Пример WP_DEBUG
Пример WP_DEBUG

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

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». Отключение этого плагина должно помочь.

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

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

4. Увеличьте лимит памяти

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

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

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

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

php_value memory_limit 64M

Можно воспользоваться файлом php.ini для увеличения лимита памяти. Откройте файл и в любом месте добавьте следующую строку:

memory_limit = 64M

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

5. Проверьте проблемы, связанные с правами доступа

Пустую страницу или белый экран смерти wordpress при неправильно выставленных правах на папки и файлы, встречать не приходилось. Но все же это может вызвать дополнительные проблемы. Как знать, при определенных обстоятельствах они могут стать причиной появления WSOD! Их можно исправить самостоятельно, но нужно совершенно точно понимать, что вы делаете, в противном случае лучше отказаться от затеи.

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

  • для файлов 664 или 644,
  • для папок 775 или 755
  • а для файла wp-config.php — 660, 600, или 644

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

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

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

6. Проверьте не было ли неудачного автообновления

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

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

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

Резюмируем

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

Читайте также:

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

avatar
  Хочу подписаться  
Уведомление на

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: