Смена доменного имени Переводим wordpress на другой домен

Доброго времени дня!
Решил перенести свой блог с домена третьего уровня не потеряв контент.
Поискав в яндексе и гугле решения по переносе, в большей массе народ решает с помощью плагинов миграции, либо  остановился на своем быстром решении.
Итак дано:

  1. Блог на wordpress на адресе blog.marvins.ru
  2. База MySQL с именем wordpress
  3. Веб-сервер Nginx
  4. Доступ к терминалу

Нам необходимо перенести блог на адрес marvins.ru, по старому адресу настроить редирект на новый сайт.

Наши действия:

  1. Дамп базы
  2. Корректировка дампа
  3. Создание новой базы и развертывание в ней дампа
  4. Копирование содержимого сайта
  5. Правка конфигурационного файла wordpress
  6. Настройка нового виртуального хоста в nginx
  7. Настройка редиректа со старого адреса на новый

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

Делаем дамп базы:

Т.к. wordpress хранит в базе полные пути, нам их необходимо скорректировать по имени нового домена.
Получившийся дамп открываем редактором vi и делаем замену старого имени на новое, в моем примере я менял все вхождение blog.marvins.ru на marvins.ru

:wq! — сохраняем файл и выходим.

Запускаем клиент MySql и создаем базу и пользователя с паролем которые мы будем использовать для подключения нашего wordpress:

Немного поясню:

  • Первая строка – запускает клиент mysql, ключ -p указывает использовать пароль, т.к. пользователь у нас не указан (ключ -u), то подключается от имени root (к системному суперпользователю это имя не относится)
  • Второй строкой мы создаем новую базу с именем wordpress_new с кодировкой utf-8
  • Третьей строкой мы разрешаем пользователю marvins с паролем  YOURPASSWORD любые операции с базой wordpress_new
  • Четвертой строкой пересчитываем привилегии
  • Пятой строкой отключаемся от MySQL

Копируем наш wordpress в новое место (можно и не копировать, а использовать его, но я решил скопировать, т.к. в случае каких-либо ошибок вы не потеряете хотябы сайт по старому адресу):

Открываем файл конфигурации wordpress:

И в нем прописываем параметры соединения с базой данных в строках:

/** Имя базы данных */
define(‘DB_NAME’, ‘wordpress_new’);

/** Имя пользователя MySQL */
define(‘DB_USER’, ‘marvins’);

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

/** Имя сервера MySQL */
define(‘DB_HOST’, ‘localhost’);

Далее настраиваем виртуальный хост в nginx для нового доменного имени, точнее проще скопировать старый, поправив пути до root директории.
В конфигурации «старого»виртуального хоста, в моем случае blog.marvins.ru устанавливаем редирект на новый сайт:

Проверяем корректность конфигурационных файлов nginx:

Если видим

То, говорим nginx перечитать конфигурацию:

Проверяем доступность нашего сайта по новому адресу, проверяем корректность редиректа со старого адреса и не забываем внести изменения в google webmasters и яндекс вебмастер.

Удачи, до встречи!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *