Если у вас есть свой сайт на WordPress и вы делаете его достаточно давно, то вы однозначно хоть раз видели белый экран смерти Wordress. Это очень неприятная вещь. Вы пытаетесь открыть любую страницу сайта, а в ответ видите только белый экран, он может быть как на абсолютно всех страницах сайта, в админ панели и так далее. Самое плохое здесь, это то, что непонятно что делать и как решить проблему.
В этой статье мы рассмотрим что такое белый экран WordPress, почему он появляется и как исправить ошибку. А исправлять ее нужно быстро, особенно если это популярный сайт в публичном доступе.
Что такое белый экран смерти?
Этот экран получил свое название из-за другого экрана, который, наверное, все помнят:
В некоторых отношениях синий экран Microsoft и белый экран WordPress похожи между собой. Оба они говорят о том, что что-то пошло не так, но на экране WordPress не отображаются ошибки. Видимо ошибка произошла на раннем этапе генерации страницы, она еще не загрузилась и соответственно выведена не будет. Вывод ошибок на экран в WordPress по умолчанию отключен, чтобы ваши пользователи не увидели ничего лишнего.
Вызвать появление белого экрана WordPress могут различные факторы, вот некоторые из ник:
- Вы обновляли WordPress и обновление было завершено некорректно;
- Ошибку вызывает установленный плагин;
- Ошибку вызывает установленная тема;
- Ошибка работы с базой данных;
- Проблемы с кэшированием страниц.
Вы знаете причины проблем, а теперь давайте рассмотрим более подробно как выйти из подобной ситуации.
Как исправить белый экран WordPress?
В идеале нам бы был очень кстати полный ssh доступ к серверу, на котором размещен сайт, но если его нет, то вам будет достаточно FTP или же файлового менеджера в веб-интерфейсе. Например, вы можете использовать FTP клиент Filezilla.
Во многих инструкциях пишется что сразу нужно отключить все плагины, недавно установленные темы, кэш, права для файлов и многое другое. Проверять все это можно часами. Но зачем все это делать если можно сразу посмотреть в чем была проблема. Для этого включите режим отладки WordPress и перезагрузите страницу. В большинстве случаев система выведет несколько ошибок и от них уже можно будет отталкиваться. А уже если не выведет, тогда и на кофейной гуще можно начинать гадать, но раньше не надо.
1. Режим отладки
Если у вас есть доступ по ssh, вы можете открыть файл wp-config.php через терминал, для этого наберите:
vi /var/www/путь/к/сайту/wp-config.php
Также вы можете открыть этот файл через редактор FTP. В нем найдите такую строчку:
И замените ее значение на true:
Дальше сохраните изменения в файле. Набрав :wq в случае использования vim или другим способом по FTP. Также не помешает включить отображение ошибок php. Если у вас VPS вы можете сделать это через терминал:
vi /etc/php.ini
Сохраните изменения и перезапустите веб-сервер. Если же вы пользуетесь веб-хостинг, то найдете возможность включить отображение ошибок php в панели управления cPanel или DirectAdmin.
Вот здесь уже, скорее всего, вы увидите в чем там дело и почему вы видите белый экран WordPress. И теперь уже можно действовать в соответствии с ошибками, если вы видите проблему подключения к базе, то можете ее устранить, при проблемах с каким-то плагином или темой можно ее отключить или очистить кэш если проблема там. Далее, рассмотрим наиболее часто встречающиеся причины проблемы и их решение.
2. Отключите плагины
После того как посмотрели сообщения об ошибках и ничего не поняли либо там ничего не было, то первым делом нужно отключить плагины, которые были установлены недавно. Если у вас есть доступ к админ панели, иногда бывает и такое, попробуйте открыт адрес wp-admin, то вы это сделать.
Если же доступа к админ интерфейсу нет и там тоже белый экран, то можно предположить, что проблема не в плагине, а отключить плагин можно просто переименовав папку с ним через ftp или ssh. Все плагины Wodpress находятся в папке /путь/к/сайту/wp-content/plugins. Если не помогло отключение новых плагинов, можно отключить все. Можете просто переименовать папку plugins в plugins.old. Затем можете по одному активировать плагины чтобы найти виновного.
3. Выбор стандартной темы
Иногда проблемы может создать тема wordpress, самый простой способ решить эту проблему — это использовать тему по умолчанию. Если вы переименуете папку с текущей темой, WordPress автоматически начнет использовать тему по умолчанию.
Еще один способ изменить тему — модификация базы данных. За тему отвечают поля template и stylesheet, измените их значения на twentyfifteen и система будет использовать тему по умолчанию.
4. Очистка кэша
Кєширование тоже иногда может вызвать такие проблемы, и тогда может даже не помочь включение отладки. Но если вы использовали кэширующий плагин, то проблема будет решена отключением плагинов. Если же нет, то вам нужно очистить кэши. Обратите внимание на такие возможные кэши:
- кэш веб-сервера Nginx — /var/cache/nginx;
- кэш fastgci — /var/cache/fastcgi;
- кэш опкода php;
Отключите кэш опкода, затем очистите папки с другими кэшами если используете их. Это может помочь решить проблему.
5. База данных
На всякий случай проверьте запущена ли база данных и доступна она ли из WordPress. Обычно, когда база данных не работает то вы не увидите белый экран WordPress или админки, а получите соответствующую ошибку.
6. Разрешения для файлов
В Linux очень гибкая система разрешений, она позволяет указать какие пользователи смогут получить доступ и к каким файлам. Это же касается сервисов. Если веб-сервер или интерпретатор php не будет иметь доступа на чтение файлов wordpress, то вы не сможете открыть сайт. Права должны быть такими:
- Все файлы — 644;
- Все папки — 744;
- Файл wp-config.php — 660;
Чтобы установить такие права перейдите в папку с сайтом и наберите:
cd /путь/к/сайту
$ sudo find . -type f -exec chmod 664 {} +
$ sudo find . -type d -exec chmod 775 {} +
$ sudo chmod 660 wp-config.php
Если проблема была в этом, то она решена. Также проверьте не включен ли selinux, это дополнительная система прав, которая тоже может создавать проблемы.
7. Ограничения сервера
Возможно, на создание страницы не хватает оперативной памяти или времени выполнения из-за очень жестких ограничений веб-сервера. Чтобы увеличить количество доступной памяти добавьте такую директиву в wp-config:
Если это не работает, добавьте такую строку в php.ini:
8. Неудачное обновление
Проблему white screen wordpress может вызвать неудачное обновление, например, из-за таймаута сервера. Проверьте есть ли файл .maintence в корневой папке. Этот файл wordpress создает на период обновления. Если обновление было завершено, но этот файл не удалился, то вы можете его удалить вручную, если же обновление не было выполнено, возможно, вам придется обновить wordpress вручную.