Обновление WordPress версии 2.7.1 до 2.9.2. Пошаговая инструкция на «живом» примере. Координальное обновление WordPress без значительных проблем. Решение ошибок, возникающих при обновлении. Шаг за шагом и всё получится.

Обновление WordPress 2.7.1 до 2.9.2

Фуххх! Именно так решил начать эту статью, т.к. всё получилось без больших проблем и заморочек. Сегодня решил обновить свой блог, хотя уже давно планировал это сделать, но никак не доходили руки. И тут, конец рабочей недели, к тому же есть время и желание. И так начнёмс… Буду писать всё по пунктам, так удобнее:

1. Подготовка

Для начала нужно скачать версию 2.9.2. Конечно, можете использовать и другие сборки, но я  пользуюсь этой и не жалуюсь). Дальше мы должны запомнить плагины, которые у нас установлены, т.к. в последующих шагах их нужно будет деактивировать, а потом обратно задействовать (активировать). Как это сделать, я пользовался программкой для снятия скриншотов с экрана ScreenshotMaker, думаю найти её или ей подобную не составит труда. Вообще, тут много вариантов, можно скринить, можно использовать сохранение страниц или снимков в браузере, также вариант использовать клавишу PrintScreen на клавиатуре и с помощью Paint’a вставлять (Ctrl+V) и сохранять картинки.

2. Сохраняемся

Сначала необходимо сделать бэкап базы, для этого проходим  в админке (Инструменты/Архивация базы данных (этой части соответствует плагин WordPress Database Backup)). В пункте (Таблицы) находятся два столбца: [Основные таблицы WordPress всегда будут архивированы] и [Вы можете добавить к ним любые следующие таблицы]. Во втором выбираем все пункты (для полной архивации). Дальше в пункте (Настройки архивации) выбираем куда хотим отправить созданный архив: Сохранить на сервере, Скачать на компьютер, Отправить архив на email. Отмечаем [Сохранить на сервере] и создаём архив. После проделанной операции лучше всего этот архив кинуть себе на компьютер, для этого я использую FTP-клиент FileZilla Client, также можно использовать и другие программы. Например, файловый менеджер Total Commander.

Мы сохранили архив базы на компьютере, теперь нам нужно скинуть некоторые файлы с сервера на свой ПК через ftp-клиент. Можно, конечно, скинуть все файлы и папки из корневого каталога public_html, но мы поступим иначе. Скидываем только файлы из корневого каталога. Про папки напишу чуть позже.

Всё, сохранение закончено, теперь можно приступать.

3. Объявляем

Т.к. блог зачастую является посещаемым местом, то необходимо как-то оповестить пользователей о проведении работ на блоге. Для этого существует плагин Maintenance Mode, в подробности его использования вдаваться не буду, просто в настройках плагина в пункте [Активировать/деактивировать режим Maintenance] выбираем (Активированный) и нажимаем (Настройки сохранены).
maintenance





После этого при заходе пользователя на Ваш блог он увидит такую страничку:
maintenance

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

4. Приступаем

  • Ставим Default-тему (Дизайн/Темы/WordPress Default/Активировать).

стандартная тема

  • Деактивируем все плагины, кроме Maintenance Mode.

плагины

плагины

  • Переходим на ftp сервер хостинга  и переименовываем папки wp-includes и wp-admin, дописывая цифры. Папку wp-content не трогаем.
  • Копируем с заменой все файлы, подчёркиваю файлы.
  • Копируем без замены папки wp-includes и wp-admin.

ftp

  • Находим в корневой папке файл wp-config-sample.php и редактируем его:

// ** Настройки MySQL: Эту информацию можно получить у вашего хостинг-провайдера ** //
/** Имя базы данных для WordPress */
define(‘DB_NAME’, ‘Имя базы данных’);

/** MySQL имя пользователя */
define(‘DB_USER’, ‘Имя пользователя для данной базы’);

/** MySQL пароль базы данных */
define(‘DB_PASSWORD’, ‘Пароль базы данных’);

/** MySQL сервер — иногда требуется изменять это значение. например на Мастерхосте */
define(‘DB_HOST’, ‘localhost’);

/** Кодировка базы данных, используемая при создании таблиц. */
define(‘DB_CHARSET’, ‘utf8’);

/** Сопоставление базы данных. НЕ ИЗМЕНЯЙТЕ ЭТО ЗНАЧЕНИЕ. */
define(‘DB_COLLATE’, »);

  • Т.к. мы предварительно скопировали этот файл, то можно посмотреть настройки для базы в нём и скопировать сюда.
  • Также не забудьте в поле (Уникальные ключи для аутентификации) переименовать слова для уникальности. После этого сохраняем файл в кодировке UTF-8 без BOM и переименовываем его на wp-config.php.
  • Проходим в админку и обновляемся.

ftp

Надеюсь на данном этапе у Вас всё идёт нормально.

5. Настраиваем

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

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

Вот так плагин за плагином необходимо приближаться к концу.

6. Ошибки

Теперь о том какие могут быть ошибки, и какие возникли у меня. На 6-ом плагине я не выдержал и выделил все нужные и активировал, после чего выдало сообщение:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes) in /…/…/public_html/wp- includes/kses.php(413) : runtime-created function on line 1

Не стоит падать духом это всего лишь сообщение о том, что какому-то плагину, а может и не одному, не хватает оперативной памяти. Вообще для блога на платформе WordPress должно хватать 32мб, но как показывает практика, многие плагины ругаются. Есть такие варианты решения проблемы: изменить в настройках управления хостингом или добавить строку define(‘WP_MEMORY_LIMIT’, ’64M’); в файл wp-config.php. Если после этого ничего не изменилось, значит у Вас такой тарифный план хостинга. Вы можете его поменять или же смириться и использовать взаимозаменяемые плагины.

Чтобы избавиться от проблемы необходимо деактивировать плагин, но ещё нужно знать какой. Заходим на ftp сервер (/public_html/wp-content/plugins)  и методом тыка начинаем переименовывать плагины (папки/файлы) (тем самым деактивируя их), из-за которых возможно вылетает ошибка. Переименовали плагин (например, поставив единичку в начале названия) заходите в админку/плагины, если ошибка не исчезает, то пробуйте дальше. Вот несколько плагинов, которые у меня вызвали ошибки: Simple Tags — ну тут просто из-за того, что он был чисто до версии 2.7; Video widget; WP-Polls и WP-Polls Widget; WP Super Cache; WP Tuner. Это из тех, что использовал до этого.

Также следует учесть изменения в php коде, связанные с плагинами, которые у Вас не работают. Например, одна из ф-ций плагина Simple Tags — это блок (связанные записи) в конце статьи. Т.к. я вставлял код в файле темы single.php для связанных записей перед комментариями,  то у меня форму комментариев вообще выбило в виде ошибки. Поэтому тут надо быть внимательным.

Надеюсь на то, что у Вас всё получилось из выше написанного и желаю удачи в этом не простом деле!)