Устранение “Белого экрана смерти” в WordPress

by Jos Velasco
Устранение “Белого экрана смерти” в WordPress thumbnail

Если вы читаете это, уже поздно.

(Нет, я шучу. Это микстейп Дрейка из 2015 года.)

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

«На этом сайте произошла критическая ошибка.»

Критическое сообщение об ошибке

Gulp.

Но это нормально. Мы можем это исправить.

Шаг первый: Не паникуйте.

Вы столкнулись с «критическим сообщением об ошибке».

(Или художник, ранее известный как Белый экран смерти, также известный как WSoD.)

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

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

Белый пустой экран WordPress

(Это было не очень полезно.)

Но начиная с версии WordPress 5.2, появляется сообщение об ошибке, которое сообщает вам, когда что-то пошло не так и дает представление о том, как исправить проблему.

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

Давайте веселиться!

Что такое критическая ошибка WordPress?

Легендарная критическая ошибка или WSoD может возникнуть когда что-то идет не так с WordPress.

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

Не беспокойтесь, ваш сайт все еще на месте.  Вам просто нужно устранить ошибку, чтобы он снова заработал.

Прежде чем мы перейдем к этому, что в первую очередь приводит к критической ошибке?

Проблема часто возникает из-за проблемы с PHP вашего сайта, на котором основан WordPress.

Глоссарий DreamHost

PHP

PHP (Hypertext Preprocessor) — это язык сценариев с открытым исходным кодом. Он широко используется в веб-разработке и может быть встроен в HTML. Несколько популярных систем управления содержимым (CMS), таких как WordPress, созданы на PHP.

Читать далее

Обычно ошибка возникает из-за:

  • Некорректный код, добавленный на ваш сайт
  • Конфликты между плагинами
  • Проблемы с версией PHP/ограничения памяти

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

Восстановление из резервной копии

Самый быстрый и простой способ решения критической ошибки – это просто возврат вашего сайта к предыдущей версии.

В большинстве случаев проблема была вызвана изменением, сделанным в WordPress.

Например, если вы недавно установили новый плагин, добавили код на свой сайт или внесли изменения в файлы темы вашего сайта.

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

Многие провайдеры хостинга WordPress предлагают управляемые сервисы по созданию резервных копий.

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

 

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

Если это так, тогда нам нужно будет решить проблему другим способом.

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

Получайте контент прямо в свой почтовый ящик

Подпишитесь сейчас, чтобы получать все последние обновления прямо в свой почтовый ящик.

Быстрые решения для критической ошибки

Давайте начнем с нескольких простых решений.

Прочитайте электронное письмо от WordPress (если применимо)

Лучший вариант: Как только эта ошибка будет вызвана на вашем сайте, вы можете получить электронное письмо от WordPress, отправленное на адрес электронной почты администратора.

Отображаемая ошибка будет выглядеть примерно так:

Критическое сообщение об ошибке

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

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

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

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

Попробуйте использовать режим восстановления

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

Это позволит вам восстановить доступ к вашей панели администратора WP для устранения ошибок, но важно отметить, что это не решит проблему. Вместо этого, это просто предоставит вам доступ к панели администратора WP для отключения плагинов или исправления ошибок кода без необходимости использования доступа по FTP/SFTP.

Даже если вы не получили письмо с инструкциями или инструкции не сработали, вы всё равно можете попробовать воспользоваться режимом восстановления вручную.

Чтобы войти на ваш сайт в режиме восстановления, просто посетите этот URL:

yoursite.com/wp-login.php?action=entered_recovery_mode

Оттуда вас перенаправят на экран входа в WordPress, где вы сможете ввести свое имя пользователя и пароль.

Начните и отмените любые изменения, верните ваши темы, плагины или что-то еще, что могло вызвать проблему.

Откатите последнее действие на вашем сайте

Добавление строки кода или вставка PHP-скрипта из интернета может нарушить работу вашего сайта.

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

Если вы можете получить доступ к панели администратора WP:

Войдите в ваш WordPress backend и попробуйте удалить или отменить последнее внесенное изменение.

Например, если вы добавили некоторый код из онлайн-руководства, попробуйте удалить этот код из ваших файлов темы и посмотрите, решит ли это проблему.

Если вы недавно установили или обновили плагин, попробуйте деактивировать этот плагин.

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

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

Экран плагинов, опция деактивации

Если вы не можете получить доступ к административной зоне WP:

Вам необходимо внести эти изменения, подключившись к веб-серверу вашего сайта через SFTP/FTP клиент или используя файл-менеджер хоста.

Как только вы получите доступ к вашему сайту, перейдите в основной каталог WordPress. (Обычно он называется «wordpress» или что-то вроде «home», «html» или «www».)

Найдите папку wp-content.

Папка wp-content

Оттуда вам нужно будет внести изменения непосредственно в соответствующий файл.

Например, предположим, что вы изменили файл темы вашего сайта, что привело к ошибке.

Перейдите в wp-content > themes > your-theme-name. Затем найдите соответствующий файл, который вы редактировали (например, “header.php”). Откройте файл.

Вы можете редактировать его с помощью текстового редактора для компьютера, такого как Блокнот, или IDE, такой как Sublime Text. Удалите добавленный вами код и сохраните файл.

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

В этом случае перейдите в папку /wp_content/plugins.

Найдите папку соответствующего плагина. Теперь переименуйте папку в любое другое имя, отличное от текущего. Например, измените имя с «simple-plugin» на «simple-plugin.renamed».

Это деактивирует плагин и должно решить проблему.

Измените вашу тему

Так же как плагины могут содержать устаревший или некорректный код, так и темы. Некоторые темы могут быть неправильно написаны или вызвать конфликт с одним или несколькими вашими плагинами. Также могли возникнуть проблемы при установке или обновлении темы, из-за чего она осталась неполной. Наконец, если вы внесли изменения в файл functions.php темы, это также может вызвать ошибку.

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

Если у вас есть доступ к панели управления администратора:

Перейдите в раздел Внешний вид > Темы. Наведите курсор на одну из стандартных тем WordPress, например, Twenty Twenty-Three, и кликните Активировать.

Активировать тему

Если панель управления администратора недоступна, вы также можете сделать это с использованием SFTP/FTP или File Manager.

Откройте папку /wp_content/themes и просто переименуйте папку используемой вами темы. (Например, измените имя папки с «current-theme» на «current-theme_test.»)

wp_content_themes папка

Это приведет к тому, что WordPress деактивирует вашу тему и автоматически применит тему по умолчанию. Теперь вы можете проверить ваш сайт, чтобы узнать, исчезла ли фатальная ошибка.

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

Включите режим отладки для диагностики проблемы

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

Познакомьтесь: режим отладки WordPress.

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

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

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

Чтобы активировать режим отладки, вам необходимо отредактировать файл wp-config.php вашего сайта. Этот файл является чрезвычайно важным элементом вашего сайта, так как содержит всю информацию о вашей базе данных (включая ваши пароли). Поэтому, перед началом редактирования, вам следует ознакомиться с официальной документацией.

Когда вы будете готовы начать отладку, получите доступ к вашему сайту через SFTP, SSH или файловый менеджер вашего хоста. (Смотрите вариант 2 для более подробной информации.)

Перейдите в корневой каталог вашей установки WordPress. (Это должна быть папка, которая содержит папки, такие как «wp-content.»)

Ищите файл wp-config.php.

wp-config.php

Откройте и найдите следующую строку в коде файла:

define( 'WP_DEBUG', false );

Этот код устанавливает режим отладки в положение «false» или выключен.

Замените эту строку следующими двумя строками:

define( 'WP_DEBUG', true );

define( 'WP_DEBUG_LOG', true );

(Если вы не видите ничего, что выглядело бы как оригинальная строка в файле wp-config, вы можете вставить эти две строки в любое место файла перед последней строкой, которая должна гласить: «/* Всё, прекратите редактирование! Счастливого блоггинга. */.»)

Когда вы сохраните файл, будет активирован режим отладки. Это также включит журнал отладки WP, который создает файл debug.log в каталоге /wp-content/. Этот файл журнала ошибок можно открыть и прочитать с помощью большинства стандартных текстовых редакторов, таких как TextEdit или Notepad.

Примечание для профессионалов: Вы также можете выбрать отображение сообщений об ошибках непосредственно на странице. Для этого добавьте следующий код в wp-config.php: define( ‘WP_DEBUG_DISPLAY’, true );

Теперь попробуйте снова зайти на ваш сайт.

Затем откройте файл журнала в директории /wp-content/.

Вы должны увидеть некоторые детали о произошедшей ошибке PHP.

(На заметку: Не забудьте отключить режим отладки и ведение журнала отладки после того, как вы решите вашу проблему. Имейте в виду, что журнал отладки иногда может выявить уязвимости и другие проблемы с вашим сайтом.)

Имея эту информацию, мы приступим к решению проблемы.

Устранение проблемы

Если вы следовали за этой статьей до этого момента, то, вероятно, вы дошли до той части, где сейчас смотрите на файл журнала и думаете: «что, черт возьми, это значит?»

Давайте исправим это раз и навсегда.

Удаление или исправление кода темы

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

Например, вы можете увидеть ошибку, подобную этой:

Parse error: syntax error, unexpected $end in /home/name/public_html/wordpress/wp-content/themes/your_theme/functions.php on line 231

В данном случае видно, что проблема заключается в файле functions.php, а именно на строке номер 231. Это точно указывает нам, где искать решение проблемы.

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

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

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

Поделитесь ошибкой с ними и посмотрите, смогут ли они помочь вам устранить проблему.

Как только вы исправите проблему, вы можете сохранить файл и затем проверить ваш сайт снова.

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

Даже если вы не устанавливали плагин недавно, он все равно может вызвать ошибку.

Многие сайты настроены на автоматическое обновление плагинов, и новое обновление либо самого плагина, либо вашей установки WordPress может вызвать ошибку.

Как можно определить, что это так и узнать, какой плагин виноват?

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

Вы можете увидеть ошибку в следующем виде:

Parse error: syntax error, unexpected $end in /home/name/public_html/wordpress/wp-content/plugins/your_plugin/plugin.php on line 231

Вы можете понять, что это ошибка, связанная с плагином, потому что место ошибки – файл в папке /wp-content/plugins.

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

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

Папка wp-content

Для этого перейдите в папку /wp-content/plugins/your_plugin. Переименуйте папку в любое другое имя, кроме текущего (например, «your_plugin_disabled»).

Это отключит плагин, вызывающий ошибку, и восстановит ваш сайт, пока вы выясняете, как исправить проблему, вызывающую ошибку.

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

Сделайте это, просто переименовав папку «plugins» в что-то новое, например, «plugins_test».

переименование в plugins_test

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

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

Связанное: Как создать ваш первый плагин WordPress (с минимальным объемом кодирования)

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

Если белый экран смерти (WSoD) появляется время от времени или на отдельных частях вашего сайта, это может быть связано с тем, что ваш сайт превысил максимальный лимит памяти. Это относится конкретно к лимиту памяти PHP, который является объемом памяти, выделенным для PHP, на котором работает WordPress. Вы можете использовать экран информации о состоянии сайта для получения данных о конфигурации вашего сайта WordPress. Обычно лимит устанавливается на уровне 40MB, но иногда этого недостаточно.

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

Чтобы увеличить объем памяти PHP вашего сайта:

  1. Доступ к вашему сайту через SFTP/FTP, File Manager или SSH
  2. Перейдите в корневую папку WordPress
  3. Откройте wp-config.php

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

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

Число + “M” обозначает количество MB (мегабайт), которое вы хотите выделить для памяти PHP.

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

Проверка необычных ошибок

Если вы дошли до этого момента и все еще не смогли устранить ваш WSoD, мы вас выражаем наше сочувствие. Вы также находитесь в меньшинстве, так как методы, которые мы рассмотрели до сих пор, помогут устранить большинство ошибок. Однако, есть еще надежда!

Теперь мы быстро рассмотрим некоторые из менее распространенных проблем, которые могут вызвать проблемы с WordPress (что приводит к WSoD). Это менее вероятные причины, но они не являются чем-то неслыханным, поэтому важно проверить их, если вы уже попробовали все остальное.

Проверьте, не работает ли ваш сервер

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

Один из способов проверить это – ознакомиться со статусом сервиса вашего хоста:

Статус сервиса DreamHost

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

Проверьте ваше решение для кэширования

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

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

Связанное: Учебник по оптимизации скорости вашего сайта

Исследуйте ваш сайт на предмет поврежденных файлов

Редко случается, что основные файлы WordPress повреждаются, но это возможно.

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

Что делать, если ничто не устраняет критическую ошибку

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

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

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

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

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

Глоссарий DreamHost

Malware

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

Читать далее

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

Это исправлено?

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

Но благословите ваше сердце, если вы всё ещё читаете.

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

Так что не бойтесь просить о помощи.

В конце концов, ради этого мы здесь.

Фоновое изображение объявления

Вы мечтаете, мы программируем

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

Узнать больше