На днях произвели перенос сайта на новый домен.
Делюсь инструкцией по переносу сайта на WordPres для вас и для себя, что бы рабочая инструкция была всегда под рукой.

Есть два классических варианта управления сайтом:
1.Первый вариант управления сайтом. Через какую-нибудь панель управления веб-серверами: ISPmanager, cPanel ,Plesk. Через данный вариант управлять сайтом максимально просто и удобно, имеется интуитивная панель управления, все необходимые инструменты для управления доменами, dns, базами данных, ftp и т.д..

2. Второй вариант управления сайтом — через SSH, когда вы отдельно приобретаете только сервер с предустановленной Linux-системой и на нем уже устанавливаете, настраиваете все необходимые для работы сайта компоненты (PHP, веб-севре, база данных и …).

На сайте используется второй вариант, но это не значит, что инструкция будет полезна только для второго варианта.
Первый вариант управления сайтом также по инструкции все повторяет, но через ISPmanager, cPanel ,Ples.

Перенос сайта на WordPress с одного домена на другой.

Покупка нового домена для сайта, настройка.

1. Первым делом необходимо решить вопрос с выбором нового домена для сайта.
Мы рекомендуем и используем REGRU , при использовании промокода 3B2B-3B7C-0EC7-ADE4 на покупку домена, хостинга вы получите дополнительно скидку 5%.

2. Приобрели домен. Нужно привязать новый домен к хостингу, сайту.
Переходим к правке ресурсных записей нового домена, с помощью которых мы подтверждаем привязку нашего домена и сайта.
В ЛК управления доменом добавим «А-запись» для привязки домена и адреса сервера сайта. Узнать ip-адрес сайта можно узнать через команду nslookup adminwin.ru в командной строке (в имени сайта укажите старый домен, который является пока еще действующим на сайте).
Добавьте две А-записи, с указанием Subdomain:@ — IP Address: «адрес сайта» и вторую запись Subdomain:www — IP Address: «адрес сайта»
regru1
Обновление DNS-серверов может занимать до суток, но у нас все привязалось примерно за 10-15 минут. Проверить привязку можно через команду nslookup adminwin.ru в командной строке (в имени сайта укажите НОВЫЙ домен).
Переходим к следующему шагу.

Backup базы данных сайта и редактирование.

Перед началом работ на самом сайте\сервере, необходимо сделать резервные копии файлов и директорий сайта и базы данных.

1. Как сделать резервную копию базы данных рассказывалось в статье Backup и восстановление базы данных MySQL.

Узнать какую базу данных использует сайт на wordpress можно через подключение к самой базе данных и просмотра созданных БД  , либо через файл wp-config.php в корне сайта, где есть раздел DB_NAME:

/** The name of the database for WordPress */
define('DB_NAME', 'database_name');

/** MySQL database username */
define('DB_USER', 'dbuser');
/** MySQL database password */
define('DB_PASSWORD', 'dbpassword');

Напомни команду для бэкапа базы данных:

mysqldump -u root -p database_name > /tmp/adminwin.sql

2. Скачайте созданный backup базы данных к себе на компьютер, откройте в Notepad++.
Через комбинацию клавиш Ctrl+H сделайте замену всех записей с именем текущего домена на новый, т.е. в стройке «Найти» пишем текущий домен, а строке «Заменить на» пишем новый домен. Сохраняем как newsite.sql.

3. Создадим базу данных под новый сайт/домен.
В новую, созданную БД загрузим  измененную базу данных newsite.sql, где мы меняли имя домена через Notepad++ . Как создать новую базу данных можно подсмотреть в статье. Напомним:

1. Подключаемся к БД:
[root@localhost]# mysql -u root -p
2. Создаем новую базу с именем “pc22_dbase”:
create database pc22_dbase;

Просмотреть список текущих баз данных:
SHOW DATABASES;
3. Создаем пользователя MySQL с именем db_user и паролем ‘pass’:
create user 'db_user'@'localhost' identified by 'pass';

Назначаем привилегии пользователю:
GRANT ALL PRIVILEGES ON dbase_name.* to 'db_user'@'localhost'
    -> IDENTIFIED BY 'pass' WITH GRANT OPTION;

Для применения изменения запустите команду обновления:
FLUSH PRIVILEGES;.

4. Пере заходим под только созданным пользователем для проверки:
exit
mysql -u db_user -p
Выбираем для работу нашу БД:
use dbase_name pc22_dbase;

Загружаем измененный бэкап БД newsite.sql в новую базу данных с именем pc22_dbase, предварительно загрузив на сервер сайта в директорию tmp:

mysql -u root -p pc22_dbase < newsite.sql
Backup корневых файлов сайта и редактирование.

После копирования Базы данных, необходимо тоже самое сделать с бэкапом файлов самого сайта, который включает в себя движок и все его конфигурационные файлы.
Чаще всего это директория www/имя_сайта/ftp/public_html, копируем к себе на ПК.
Находим файл wp-config.php, в котором меняем имя БД, пользователя и пароль к нему, которые мы создали чуть ранее:

/** The name of the database for WordPress */
define('DB_NAME', 'pc22_dbase');

/** MySQL database username */
define('DB_USER', 'db_user');
/** MySQL database pass */
define('DB_PASSWORD', 'dbpassword');

После завершения редактирования, копируем всю директорию public_html в новую созданную директорию www/adminwin.ru/ftp/public_html.

Настройка веб-сервера NGINX при переезде сайта на новый домен.

На этом шаге во-первых необходимо создать новый конфиг хост под новый домен.
Переходим в директорию /etc/nginx/sites-available/ и делаем копию уже существующего файла c именем старого домена на файл с названием домена нового, например adminwin.conf c изменением адреса сайта внутри раздела server {} строки server_name adminwin.ru;.

server {
        server_name adminwin.ru;
		...
                ...
}

Далее в директории /etc/nginx/sites-enabled/ необходимо создать symlink на новый конфиг adminwin.conf из /etc/nginx/sites-available/, командой:

ln -s /etc/nginx/sites-available/adminwin.conf /etc/nginx/sites-enabled/adminwin.conf

После этого перезапустим Nginx, чтобы обновить настройки сервера и сайт станет доступен по новому адресу adminwin.ru:

sudo systemctl restart nginx
Настройка  301-редиректа на NGINX со старого домена на новый.

Осталось всего лишь в конфигурационном файле старого домена /etc/nginx/sites-available/stariy_domen.comf поправить конфиг на Redirect к новому домену и удалить настройки location.
Откроем файл stariy_domen.conf для редактирования.
В конфигурационном файл удаляем все настройки location и в разделе server {}, добавляем строку return 301 $scheme://adminwin.ru$request_uri;. У меня файл конфигурации старого домена после всех изменений выглядит следующим образом:

server {
        server_name stariy_domen.ru;
#	access_log /var/log/nginx/ithelp21.access.log;
#	error_log  /var/log/nginx/ithelp21.error.log;
        return 301 $scheme://adminwin.ru$request_uri;
        }

После этого перезапустим Nginx, чтобы обновить настройки сервера.

sudo systemctl restart nginx

Теперь, при попытке открыть сайт по старому доменному имени, посетители будут перенаправляться на указанный новый домен.

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

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.