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

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

Перенос WordPress на другой хостинг

Именно эта процедура переноса WP была проделана мною первой из всех возможных вариантов переноса, потому начну с неё. К тому же, этот вариант, на мой взгляд, самый простой. Подразумевается, что доменное имя сохраняется, меняется только физическое положение файлов сайта на серверах. Для начала убедитесь, что у вас есть:

  • доступ к контрольным панелям обоих хостингов;
  • доступ к phpMyAdmin (оболочке управления базами данных MySQL) на обоих серверах;
  • Текстовый редактор Notepad++ или аналогичный, способный работать с кодировкой UTF-8 без BOM (не путать с блокнотом Windows — он не умеет);
  • FTP-доступ к обоим серверам (не обязательно, но может пригодиться как вариант);
  • SSH-доступ (не обязательно, может пригодится, если в панели хостинга нет кнопки «архивировать», но и в этом случае можно обойтись без него).

Если каких-то доступов не хватает, их можно узнать у хостера. Кстати, при переезде на хостинг LLHost (может и какие-то другие — не знаю) админ может выполнить перенос за вас, если вы предоставите нужные доступы.

Предположим, что ваш сайт сейчас нормально функционирует (другой случай будет рассмотрен ниже). В первую очередь следует создать архивные копии файлов и базы данных. Зайдите на хостинг в файловый менеджер, выберите папку WordPress, в ней выделите все файлы и нажмите кнопку «создать архив» (по клику увеличивается):

Перенос WordPress - архивация файлов

Если такой кнопки нет (в некоторых панелях хостингов почему-то кнопка «распаковать» есть, а «создать архив» — извините), то можно запаковать файлы по SSH. Для тех, кто хоть раз работал по этому протоколу, приведу лишь шпаргалку, как запаковать:

tar cjf archive.tbz *

(Предполагается, что текущая директория — это директория нашего блога). archive.tbz — это имя архива, к которому мы обратимся в дальнейшем.

Или можно скачать все файлы по FTP на свой компьютер, но рекомендую перед этим попросить хостера упаковать файлы, причём именно внутри папки сайта (чтобы не было такого: в архиве папка site.ru, а в папке файлы — во избежание лишних сложностей).

Затем создаём дамп, т.е. образ базы данных. Проще говоря, экспортируем БД блога. Для этого необходимо посетит phpMyAdmin, где выбрать нужную БД. Затем нажать «Экспорт» и выбрать все таблицы:

Перенос WordPress - создание дампа базы данных

Затем отметить опцию «архивировать в gzip» (или zip) и нажать «OK» (на той же странице несколько ниже):

Перенос WordPress - дамп базы данных

После браузер вам предложит сохранить базу данных на вашем компьютере.

Сайт упакован — полдела сделано. Теперь поработаем с доменом. В некоторых случаях в панели управления доменом требуется переписать DNS-сервера (они имеют вид вроде: ns1.yandex.ru, ns2.yandex.ru), а иногда нужно в A-записи домена изменить IP-адрес на адрес нового хостинга. Всю информацию можно узнать у хостеров. Когда это сделано, мгновенных изменений вы не обнаружите: смена маршрутов на каналах связи занимает от получаса до суток (по России). А мы пока займёмся разворачиванием сайта на новом хостинге.

Закачиваем архив с файлами WordPress на новый хостинг (через файловый менеджер, FTP или просим хостера перенести и распаковать архив) в папку сайта. Кстати, если файловый менеджер поддерживает удалённую загрузку, то можно даже себе архив не закачивать (панель LLHost поддерживает). Затем архив распаковываем на хостинге (обычно контрольная панель хостинга позволяет это сделать, либо просим хостера).

Вносим коррективы в файл wp-config.php, открыв его в Notepad++ (рекомендую убедиться после открытия, что «Кодировка» — «UTF-8 без BOM»). В файле меняем значение следующих констант (что требуется изменить, выделено жирным):

/** Имя базы данных для WordPress */
define ('DB_NAME', 'database');
/** MySQL имя пользователя */
define ('DB_USER', 'root');
/** MySQL пароль базы данных */
define ('DB_PASSWORD', 'password');
/** MySQL сервер — иногда требуется изменять это значение. например на Мастерхосте */
define ('DB_HOST', 'localhost');

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

Ещё нам нужно загрузить саму базу данных в phpMyAdmin нового хостинга. Для этого выбираем пустую БД в phpMyAdmin, куда планируется загрузить наши таблицы, и пункт меню «SQL» или «Импорт». Там есть поле с кнопкой «Обзор...», позволяющее выбрать ранее созданный архив БД на компьютере и загрузить. Если в результате загрузки получаем сообщение: «Выполнено ххх запросов» — операция прошла успешно. Если сообщение об ошибке, попробуйте один из следующих пунктов:

  • распаковать дамп БД и попробовать загрузить в распакованном виде;
  • открыть файл дампа в Notepad++ и, если кодировка ANSI, преобразовать в UTF-8 без BOM;
  • скопировать содержимое дампа и вставить его в поле «Выполнить SQL запрос(ы)» в оболочке phpMyAdmin на вкладке SQL или Экспорт;
  • обратиться за помощью к хостеру.

После чего останется только дождаться, когда запросы к сайту будут адресованы на новый хостинг (в течении суток). В блог до этого времени лучше ничего не писать, т.к. посты могут сохраниться в БД на старом хостинге. Определить, что перенос WordPress завершён, можно командой «tracert ваш-домен» в консоли Windows. Будет показан маршрут пакетов к вашему сайту, по которому можно догадаться, ссылается ли уже домен на новый хостинг.

Иногда на новом хостинге потребуется установка прав (chmod) 777 на папку wp-content\uploads, включая вложенные папки (на LLHost не требуется). Если эта фраза повергла вас в шок, попросите хостера это сделать.

Возможные проблемы и их решения:

  • вместо сайта на экране «Error establishing a database connection» — неверно указаны данные для соединения с БД в файле wp-config.php;
  • на экране предложение установить WordPress — повторите импорт дампа БД в phpMyAdmin;
  • на экране сообщение хостера «Сайт в разработке» — удалите файл index.html в папке сайта;
  • пустой экран вместо сайта — повторите процедуру ещё раз (с удалением файлов и таблиц в БД), если не поможет, то обратитесь к хостеру за помощью.

Сделаем паузу и посмотрим, что нового сегодня на WebPreview. Ух-ты: новая серия комиксов о Нэми [1]. 🙂 Ох уж эта наивная, остроумная и неунывающая шведская девушка Нэми... Пользуясь случаем, передаю привет Косте Орленко.

Перенос WordPress с Денвера на хостинг

Этот пункт включает в себя также перенос WordPress на другой домен, а может быть и в папку домена вы захотите перенести. Потому что порядок действий во всех этих случаях будет аналогичен. Ведь вы, возможно, на Денвере задали домену не то имя, которое будет использоваться на хостинге. Например, я для предварительного создания сайта имя.ru на Денвере использую домен имя.job — так уж у меня заведено.

Не буду переписывать всё вышеописанная. Инструкция тут идентична за одним исключением. Дамп базы данных (если что-то непонятно, прочтите сначала инструкцию выше) необходимо открыть в Notepad++ (не забываем удостовериться, что кодировка UTF-8 без BOM) и заменить все вхождения (комбинация клавиш Ctrl+H) cтарого доменного имени на новое (кликабельно):

Перенос WordPress на новый домен

Если вы переносите блог в папку, то делаете то же самое, только заменяется, например, имя.ru на имя.ru/blog.

После этой процедуры сохраняем дамп и заливаем его в phpMyAdmin на хостинг, как описано выше. Если используются ЧПУ, после переноса WordPress в папку необходимо их выключить и снова включить. Либо внести коррективы в файл .htaccess в текстовом редакторе (жирным выделено то, что надо добавить, предполагается, что переносим в папку blog):

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ — [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
# END WordPress

Собственно, и всё — больше боялись. 🙂

Немного полезной информации напоследок. Как бы мы могли быть уверены в качестве товара или услуг, если бы не существовала сертификация систем качества [2]? Да никак, потому необходима сложная и запутанная процедура сертификации. Сначала разрабатывается система качества, которая содержит определённые стандарты, по соответствию которым определяется качество продукции. Затем разработанную систему надо сертифицировать, чтобы благополучно внедрять в производство.

Если вы когда-либо занимались продвижением Кишинёвских сайтов, то наверняка вам известно, что оптимизация и продвижение сайта в Молдове [3] — дело тонкое и многотрудное. Без опыта лучше и не браться за такую работу. Лучше доверить её профессионалам группы optimization.md, чем испортить отношения с заказчиком.

Запись опубликована 30 сентября 2010 года. Понравился пост? Читайте предыдущие посты рубрики «Создание сайтов»:

Подписка на RSS канал блога RSS подписка (как это?) поможет вам не пропустить ничего интересного на этом блоге.