Что делать, если автоматическое обновление завершилось неудачей

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

Как выглядит ошибка автоматического обновления в WordPress?

После инициации автоматического обновления ядра WordPress (скажем, от версии 3.1.0 до 3.1.1) на экране “Update WordPress” будут отображаться статусы, характеризующие каждый шаг обновления:

Downloading update from http://wordpress.org/wordpress-3.1.1.zip…
Unpacking the update…
Verifying the unpacked files…
Installing the latest version…

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

В нашем случае сообщение, стоящее перед “Installation Failed”, раскрывает суть возникшей проблемы. Это самый простой вариант ошибки. В более сложных ситуациях статусы вообще не выводятся на экран, поэтому приходится разбираться в возникшей проблеме самостоятельно. Более того, в результате такой проблемы доступ к сайту может быть заблокирован для всех пользователей, включая администратора. Если администратор попытается загрузить какую-либо из страниц своего сайта, он получит на экран страницу со следующим содержанием:

Briefly unavailable for scheduled maintenance.
Check back in a minute.

Очень сложно справиться с проблемой, если вы не можете залогиниться как администратор. К счастью, решить вопрос можно и без администраторских полномочий. Достаточно использовать доступ через FTP: пройти в корневую директорию и удалить файл .maintenance. Если ваш FTP-клиент не видит файлов, начинающихся с точки, попробуйте войти в панель управления вашего сервера и использовать файловый менеджер для поиска и удаления требуемого файла. На следующем скриншоте представлен файл .maintenance в корневой директории WordPress:

Этот файл содержит переменную, которая используется функцией wp_maintenance:

<?php $upgrading = 1302115706; ?>  

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

An automated WordPress update has failed to complete – please attempt the update again now.

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

Проверка прав доступа к файлам

Установка надлежащих прав доступа к файлам — один из способов справиться с различными неприятностями, возникающими в процессе автообновления. В разделе «Обновление Консоли» кодекса WordPress можно увидеть следующий совет, касающийся решения проблем:

Удостоверьтесь в том, что ваша директория WordPress связана с тем пользовательским именем, под которым запущен сервер Apache. К примеру, если ваш сервер запущен как https, и ваши файлы лежат в папке /var/wordpress, используйте “chown -R apache.apache /var/wordpress.”

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

Для того чтобы временный файл был создан в каталоге /upgrade/, он (каталог) должен быть перезаписываемым для сервера. Чтобы понять, послужило ли это причиной возникновения проблем, попробуйте изменить права доступа для каталога на 777 (или на любой другой CHMOD эквивалент), после чего повторите процесс автоматического обновления. Если это сработало, то вопрос решен, правда, с небольшой оговоркой: вы должны использовать такие права доступа, которые выставляют самые жесткие ограничения из всех возможных. Получить такую комбинацию можно как опытным путем, так и с помощью изучения различных справок. Online CHMOD Calculator поможет вам с подбором подходящих прав доступа.

Отключение безопасного режима

Отключение безопасного режима, если оно разрешено, может помочь справиться с проблемами, вызванными автоматическим обновлением. Согласно PHP-руководству, начиная с версии PHP 5.3.0 безопасный режим считается устаревшей возможностью. Отключить безопасный режим можно несколькими способами. Самый простой способ — отключение безопасного режима в панели управления сервера, но этот способ не всегда доступен. Обходной путь — добавление следующего сниппета в файл php.ini:

safe_mode = Off

или следующего сниппета в конфигурационный файл Apache:

<Directory /var/www/public>
 php_admin_flag safe_mode off
</Directory>

Добавьте этот код в файл httpd.conf и перезапустите Apache.

Определение FTP переменных в файле wp-config.php

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

define('FS_CHMOD_FILE', 0755);
define('FS_CHMOD_DIR', 0755);
define('FS_METHOD', 'ftpext');
define('FTP_BASE', '/httpdocs/');
define('FTP_CONTENT_DIR', '/httpdocs/wp-content/');
define('FTP_PLUGIN_DIR ', '/httpdocs/wp-content/plugins/');
define('FTP_USER', 'username');
define('FTP_PASS', 'password');
define('FTP_HOST', '123.456.789');
define('FTP_SSL', false);

Разместите этот фрагмент кода над строкой “That’s all, stop editing! Happy blogging.” Не забудьте изменить имя пользователя, пароль и другие данные, используемые в остальных переменных.

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

http://digwp.com/2011/04/wordpress-auto-updates/

Блог про WordPress
Комментарии: 11
  1. Монтеро

    После такого предупреждения страшно обновляться до 3.3.1 ))

    Можно вопрос такой: пришли сообщения об обновлении плагинов на сайте, можно смело жать на "обновить" или есть какие-то ограничения и опасности?

    Спасибо

    1. Дмитрий (автор)

      Я сталкивался только с проблемой сброса настроек, приходилось некоторые плагины по-новой настраивать.

  2. Монтеро

    А нужно плагины отключать перед обновлением?

    1. Дмитрий (автор)

      Есть такой совет, но я лично не отключаю. Пока проблем не было.

  3. Lenka

    Спасибо большое, как раз после последнего обновления вылезла такая ошибка. Удалила .maintenance и все заработало. =)

  4. Петр

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

    1. Дмитрий (автор)

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

  5. Алена

    при попытке автоматического обновления wp появилась такая ошибка: «Warning: mysql_get_server_info(): supplied argument is not a valid MySQL-Link resource in /var/www/p345178/www/progenplan.by/wp-includes/wp-db.php on line 3229
    Warning: Cannot modify header information — headers already sent by (output started at /var/www/p345178/www/progenplan.by/wp-includes/wp-db.php:3229) in /var/www/p345178/www/progenplan.by/wp-admin/install.php on line 59
    WordPress
    Несоответствие требованиям
    Не удаётся продолжить установку, так как WordPress 4.4 требует MySQL версии 5.0 или выше. У вас версия .»

    Можно как-то отменить обновление??? Или что с этим делать…. файл .maintenance не нахожу в http://FTP...

    1. Дмитрий (автор)

      Вот здесь приведены инструкции, как обновиться вручную:

      http://codex.wordpress.org/Upgrading_WordPress

  6. Елена

    Здравствуйте!
    Дело в том, что после очередного автоматического обновления версии движка, а точнее после установки версии 4.0, появилось несколько ошибок в админке сайта, а именно при заходе на страницу внешний вид-настройка темы, выдаёт ошибку, а дословно «Страница не работает, сайт пока не может обработать этот запрос», в общем если я хочу сменить тему или подредактировать её, то теперь этого не сделать, да ещё и ошибка в видимой части сайта, появилась странная надпись вместо удалённой страницы, под шапкой, хотя её вообще быть не должно. Пробовала переустановить версию в ручную, но ничего не изменилось. Помогите решить данную проблему! Спасибо!

    1. Дмитрий (автор)

      Обратитесь к хостеру. Скорее всего, ресурсы, которые он выделяет, недостаточны для корректной работы новой версии WP.

Добавить комментарий для Петр Отменить ответ

Получать новые комментарии по электронной почте.