Устраняем ошибки админпанели WP на Open Server
Мой вариант устранения ошибки при входе в админпанель WordPress на локальном хостинге Open Server.
Сразу скажу. Что проблема возникла только при переносе действующего сайта на локалку.
Зачем это нужно, если сайт работал? Да, решил просто обновить тему. А для этого нужно было протестировать.
Это небольшое отступление!
А теперь заходим в админку http://ваш сайт/wp-login.php, а там ошибка:
«ОШИБКА: Cookies заблокированы из-за неожиданного вывода на экран. Посмотрите документацию или обратитесь за помощью на форумы поддержки.»
Так более наглядно:
Облазил все форумы и сайты, но толком ничего не помогло, в том числе и советы с форума поддержки:
1. На некоторых серверах запрещена отправка cookies в GET-запросах. Проблема замечена при неверной конфигурации акселератора Varnish. В этом случае со второй попытки (после выполнения POST-запроса) авторизация всё же работает.
2. Один из плагинов выводит что-то на экран раньше времени. Решается переименованием каталога wp-content/plugins, созданием нового пустого каталога и последующим тестированием плагинов по одному.
3. Та же самая проблема, но в теме оформления. Найдите в wp-content/themes
каталог активной темы и переименуйте его, затем выберите в панели управления любую из стандартных тем.
4. Метка BOM в файле wp-config.php или functions.php
темы оформления). При включённой константе WP_DEBUG появляется сообщение «Cannot modify header information». Решается пересохранением файла в UTF-8 без BOM.
5. Неверное значение константы COOKIE_DOMAIN в wp-config.php.
Помимо значения false (текущий домен), допускаются домены второго или третьего уровня. Варианты типа localhost не подходят.
6. Правила кеширования при использовании сервиса CloudFlare. Нужно отключить кеширование для файла wp-login.php.
В интернете на одном из сайтов парниша советовал полностью заменить functions.php
темы оформления. Этот вариант я также попробовал. Но полная замена файла функций также не помогла.
Тогда я решил посмотреть логи (теперь понимаю, что это нужно было сделать сразу). Чтобы посмотреть логи, жмакаем на зеленый флажок в трее и потом на «Просмотр логов».
В логах нашел ряд типовых ошибок:
28-Jan-2017 11:10:27 UTC] PHP Warning: Cannot modify header information - headers already sent by (output started at W:\domains\вашсайт\wp-content\themes\........\functions.php:44) in W:\domains\вашсайт\wp-login.php on line 394.
Именно это и натолкнуло на мысль о виновности во всем именно файла functions.php
темы оформления. В частности что-то было не в порядке со строкой 44. Открыл functions.php, нашел строку 44 и увидел несколько отступов выше и ниже строки.
Удалил их и опля. Все получилось.
Всем хорошего настроения и приятной работы.