{"id":14291,"url":"\/distributions\/14291\/click?bit=1&hash=257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","hash":"257d5375fbb462be671b713a7a4184bd5d4f9c6ce46e0d204104db0e88eadadd","title":"\u0420\u0435\u043a\u043b\u0430\u043c\u0430 \u043d\u0430 Ozon \u0434\u043b\u044f \u0442\u0435\u0445, \u043a\u0442\u043e \u043d\u0438\u0447\u0435\u0433\u043e \u0442\u0430\u043c \u043d\u0435 \u043f\u0440\u043e\u0434\u0430\u0451\u0442","buttonText":"","imageUuid":""}

Белый экран смерти или что делать когда Wordpress не хочет работать?

Я занимаюсь разработкой "простых" сайтов на wordpress.
Почему он? Когда клиенту нужен небольшой сайт которым он сможет удобно сам управлять, я беру wordpress, накатываю ему на хостинг и даю инструкцию по редактированию контента на сайте.

Обычно план работ такой:
получил тз -> задал уточняющие вопросы -> отдал верстальщику дизайн -> создал из верстки тему, создал "кастомные" поля -> заполнил первично контентом -> отдал инструкцию по работе контент-менеджеру -> забрал деньги -> радуюсь.
Путь, кажется, длинный, но счастливый.

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

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

Как же так! Не один сайт создан по этой схеме! Ни в одном нет такой проблемы!

Грустный автор

Какие симптомы мы имеем?!

  • Не создаются новые страницы, отображается белый экран
  • Не создаются новые поля, при этом удаляя старые, которые не трогали
  • Изменения контента на страницы приводит к его полному уничтожению!!!

После обновления плагина полей, мы используем ACF, проблема не была решена, значит надо копать дальше?
И я отправился в интернет, а конкретно в гугл, с запросом "wordpress admin white screen WTF".
Сразу же была найдена статья под названием How to Resolve the WordPress White Screen of Death, состоящая из 11 пунктов.

  1. Clear the WordPress cache.
  2. Retrace your steps.
  3. Check your admin dashboard and website for hints.
  4. Disable your plugins.
  5. Disable your currently active theme.
  6. Change your memory limit.
  7. Check the WordPress error logs.
  8. Assess your other WordPress integrations.
  9. Restore any recently edited file to its initial version.
  10. Get in touch with your hosting provider.
  11. Restore your website from a backup.

Пройдемся по каждому пункту

1 - Очистить кэш вордпреса.

Очищаем кэш через плагин, проблема остается.
Смотрим где еще может храниться кэш и не находим его там.
Значит идем дальше.

2 - Повторить все шаги, что были сделаны

Сайт не трогали пол года, значит идем дальше.

3 - Проверить админ панель на наличие подсказок/ошибок

Окей, тут уже дельный совет.
В такой запаре я забыл включить отображение ошибок.
Заходим в файл wp-config.php и выставляем значение

define( 'WP_DEBUG', false ); //на define( 'WP_DEBUG', true );

Ошибок нет. Непонятно, но идем дальше.

4, 5 - Отключить все плагины, сменить/отключить текущую активную тему

Тут я объединил два пункта в один, так как делал их почти параллельно.
Отключаем плагины.
Чтобы точно быть уверенным, что он выключен, меняем название папки с плагинами с plugins на plugins_old и создаем чистую папку plugins.
В админ панели нет плагинов, но проблема остается. Значит дело не в плагинах.
Далее в админ панели меняем тему на стандартную, проблема остается.
Стало еще грустнее, но надо решать.

6 - Изменить лимит памяти

Все в том же wp-config.php добавляем строчки, чтобы наверняка, ага

define('WP_MEMORY_LIMIT', '1024M'); @ini_set('max_input_vars', 5000 ); // тут была мысль, что на сайте очень много данных и он может не справлять с сохранением

Опять ничего.

7 - Прочитать лог ошибок wp

Тут косяк, ошибки никуда не писались, но из пункта 3 мы понимаем что ничего и не записалось бы.

8 - Проверить интеграции с wp

Этот пункт я пропускаю, так как лишних интеграции с CDN и прочим тут нет

9 - Вернуть редактируемые файлы в изначальное значение.

Возвращаем файл wp-config в изначальное значение, пациент все еще мертв.
Файлы темы не трогаем, помня про пункт 5

10 - Потрогать моего хостера

Пару раз потрогал beget, где, сосбна, и лежит сайт, beget говорит все ок.
Но тут я и не сомневался, проблема не в хостинге, остальные сайты лежат на нем же, но других аккаунтах, в них проблемы нет

11 - Восстановить сайт из бэкапа

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

Эмоции автора, когда даже гугл не хочет помогать

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

Вернув бэкап я стал думать, что делать дальше?

Оставлять клиента в беде не хочется, да и задача интересная! Как это так?! Никто не трогал, а оно сломалось?

Все еще автор

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

И вот тут и была зарыта собака

(не в обиду собакам, они лапочки)

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

Почему это все перешло в белый экран и почему wp не давал ошибок?
При создании страницы/поля/чего угодно в базу добавляется запись с ключом который должен выставиться автоматически, то есть самый большой ключ + 1.
Но так как все ключи, а значит и auto increment были стерты, он создавал запись с id 0, а потом еще одну и еще одну.
Не понимая что брать wp падал, но и проблемы такой он не знает, соответственно ошибки нет, вот чистый лист, твори!

Подведу итог исследований

  • В интернете много статей о том как починить ту или иную проблему в wp, но все они однотипны и зачастую не решают задачу, а нужны только для рекламы услуг хостинга и тд
  • Всегда тщательно проверяйте все!
  • WP_DEBUG не показывает ошибку? Идем в плагины!
    Нет проблемы в плагинах? Смотрим тему!
    Нет проблемы в теме? Проверим базу!
  • Осторожно ставьте плагины, ставьте только проверенные.

Похожих проблем в гугле не нашел, надеюсь кому-то поможет мое небольшое расследование.

0
4 комментария
Сергей Коновалов

Какой плагин-то был?

Ответить
Развернуть ветку
Антон Пятков
Автор

Какое именно испортил хз
Либо ACF либо YoastSEO
¯\_(ツ)_/¯

Ответить
Развернуть ветку
SMBot. Мониторинг сайтов.

Картинки топ)) в 11 пунктов из статьи надо свой 12ый добавить про базы данных)

Ответить
Развернуть ветку
Антон Пятков
Автор

Думал над этим
Но тут же разбор пунктов с сайта "советчика"
а 12 уже мой, личный

Ответить
Развернуть ветку
1 комментарий
Раскрывать всегда