Как обновить WordPress: один из способов

Алексей Федорчук

Давеча, при реконструкции Блогосайта, возникла насущная необходимость обновить версию CMS, на которой он крутится — WordPress от 2.2.1 сразу до 3.8. Инструкций по этому вопросу можно найти без счёта — и у провайдеров, и просто в сети. Тем не менее, поскольку процедура эта прошла у меня легко и безболезненно, я решил составить ещё одну: во-первых, для себя, на будущее (чтобы ничего не забыть), во-вторых — для тех, кто пользуется CMS от хостера и проделывает эту операцию впервые.

Для начала — вводные данные. Я пользовался CMS, предоставляемой хостером, в момент создания Блогосайта, как уже сказано, это был WordPress версии 2.2.1. Необходимость апгрейда, кроме общих соображений (безопасность, идти в ногу со временем и прочие рассуждения в пользу бедных), была обусловлена настоятельной потребностью сменить тему оформления, старая перестала отвечать реалиям контента. А все подходящие для меня темы для моей версии WP просто отсутствовали. Как и многие весьма полезные плагины.

У меня на хостинге сосуществует около десятка сайтов — каждый в своём каталоге myname/$sitename. Корневым каталогом для WP каждого сайта является myname/$sitename/docs — у других провайдеров хостинга путь к корню может быть иным, например, $username/$sitename/wps/docs. Предполагается, что хостер предоставляет средства для управления файлами и СУБД через web-интерфейс (у меня — предоставляет).

Перво-наперво нужно разобраться с базой данных данного сайта — утрата сведений о ней может оказаться очень трудно восполнимой (а в некоторых случаях — и не восполнимой вообще, по крайней мере в полном объёме). В дальнейшем потребуются:

  • её имя (при наличии нескольких проектов на одном хосте важно не ошибиться, какая база к какому сайту привязана);
  • имя пользователя данной базы, который имеет право полного к ней доступа;
  • пароль данного пользователя на доступ к базе;
  • имя хоста базы данный — обычно это что-то вроде username_mysql.

Здесь надо помнить, что пользователь базы данных и администратор WP, это, подобно Марксу и Энгельсу, абсолютно разные лица аккаунты, и их учётные данные не имеют между собой ничего общего. Причём пользователей у одной базы может быть несколько, и не все они обладают совокупностью прав.

Все перечисленные сведения — абсолютно секретны, и ни в коем случае не должны стать достоянием врага (особенно врага Отечества). Поэтому они должны храниться в глубокой тайне, а получить их можно только путём сложных манипуляций через web-интерфейс к управлению СУБД хостера — обычно таковым является PHPMyAdmin. Однако страшную эту тайну раскрою — они могут быть содержатся и в файла wp-config.php, расположенном в корне сайта. Так что этот файл следует сохранить там, где он в ходе дальнейших действий будет под рукой.

Следующий шаг — архивирование собственно базы данных. Обычно хостер предоставляет такую услугу автоматически — но через определённые промежутки времени. Так что в данном случае нужно сделать снапшот актуального состояния базы. Для этого существует много инструментов — для моей старой версии я пользовался плагином к WP под названием WordPress Database Backup, но в новых версиях он вроде уже не поддерживается, так что надо подбирать подходящий (о плагинах будет отдельный разговор).

Затем я средствами хостерского файлового менеджера сделал zip-архив всего каталога с WP, начиная с корня (повторяю, у меня это $sitename/docs) — на всякий пожарный случай, для восстановления первозданного вида. И отдельно, для упрощения дальнейших процедур, сделал также и zip-архивы подкаталога docs/wp-content/upload и его аналогов (в них помещаются закачанные на сайт файлы, например, иллюстрации к материалам, и тому подобное).
Все перечисленные архивы я скачал на локальную машину (разумеется, вместе с архивом базы), сохранив их в корневом каталоге сайта.

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

В общем случае это, наверное, правильно — но у меня такой номер не прошёл: из архива WP распаковывались только отсутствующие файлы, а существующие сохранялись в неприкосновенности. Собственно, потому и потребовались предыдущие шаги по зазиплению подкаталогов.

Отступление. Скажу по секрету — прежде чем приступать к апгрейду движка Блогосайта, я воспользовался любезностью своего итальянского друга, сеньора Сьеро, и вдоволь потренировался на его сайте. Благо, и на нём я умудрился ничего не убить — просто отработал последовательность действий, показавшуюся мне оптимальной.

Так что я начал с того, что удалил всё содержимое каталога docs, кроме упомянутых ранее архивов — в хостерском файд-менеджере это сделать быстрее, чем выборочно сохранять заархивированные каталоги. А затем уже развернул архив WP. Далее можно поступить двояко.

Первый путь — просто загрузить в строке адреса http://URL-site/wp-admin/install.php и в нём вбить все сведения про базу данных, о которых говорилось ранее. Это, с одной стороны, легко. Но с другой — почему-то эти же данные сами собой прописались для некоторых (не всех!) других моих сайтов, в результате чего они стали загружать один и тот же контент — контент Блогосайта.

Вылечилось такое безобразие легко — правкой wp-config.php сайтов, им затронутых. Благо, сведения о базах данных я предусмотрительно сохранил для всех моих площадок на этом хосте. Но лучше, чтобы необходимости в лечении не возникало. Для чего достаточно скопировать файл wp-config-sample.php под именем wp-config.php и отредактировать последний руками. То есть заполнить в нём поля DB_NAME, DB_USER, DB_PASSWORD и DB_HOST значениями из старого, притыренного конфига. Сам wp-config-sample.php содержит исчерпывающие комментарии, из которых ясно, что именно в нём надо редактировать.

После этого и в этом случае надо загрузить install.php. Вопросов о базе данных теперь не возникнет, последует несколько предложений, со всеми из которых надо просто соглашаться. В том числе и с последним — загрузить ли обновлённый сайт. Ответом на что будет пустой экран. Что естественно, ведь в базе была прописана старая тема, нынче удалённая за ненадобностью.

Так что ничего страшного — достаточно зайти в админку WP по адресу http://URL-site/wp-admin/ и временно определить для сайта любую из трёх входящих в комплект тем. После чего заняться подбором темы идеальной. Но это уже сюжет одной из следующих историй. А пока остаётся только восстановить из архивов подкаталоги с картинками и прочими закачанными ранее файлами, и приступать к обустройству обновлённого сайта.

Применительно к Блогосайту обустройство я начал отнюдь не с подбора тем, а с установки жизненно важных плагинов, о чём расскажу на следующей странице.