Алексей Федорчук
Давеча, при реконструкции Блогосайта, возникла насущная необходимость обновить версию 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/
и временно определить для сайта любую из трёх входящих в комплект тем. После чего заняться подбором темы идеальной. Но это уже сюжет одной из следующих историй. А пока остаётся только восстановить из архивов подкаталоги с картинками и прочими закачанными ранее файлами, и приступать к обустройству обновлённого сайта.
Применительно к Блогосайту обустройство я начал отнюдь не с подбора тем, а с установки жизненно важных плагинов, о чём расскажу на следующей странице.