WordPress: переносим сайт на другой хост

wordpress logo

Рассмотрим перенос сайта на WordPress на другой хост

Какие бывают причины переноса WordPress:

  1. Планируется ремонтные работы в сети провайдера
  2. Переезд на другой хостинг
  3. Отключение электричества

Меня на это вынудил 3-й пункт:)

Планируются дома работы с отключением электричества.
Чтобы сайт не простаивал, я решил его временно переместить на VPS.

Вводная

Что имеем:

  1. Сервер с адресом 1.1.1.1
  2. Сайт с именем site.ru
  3. Сервер на который будем переносить с адресом 2.2.2.2  

Оба сервера нам доступны по ssh.
На втором сервере уже установлены и настроены MySQL (MariaDB), NGINX, Certbot и PHP.
Если нет, то можно узнать как это сделать из этого материала.

В данном материале мы не будем рассматривать перенос сайта с помощью каких-либо плагинов.

Что будем переносить:

  1. Директорию сайта /var/www/site.ru
  2. Базу MySQL ‘wordpress’
  3. Сертификаты /etc/letsencrypt/live/site.ru
  4. Конфигурационный файл NGINX /etc/nginx/sites-available/site.ru

Поехали

Устанавливаем все обновления на сайт.
Заходим на текущий хост 1.1.1.1 по ssh.
Создаем временные директории на сервере куда мы будем переносить сайт:

ssh vladimir@2.2.2.2 'mkdir -p site/sql site/lets site/nginx'

Создаем дамп базы wordpress:

mysqldump wordpress -p > site.sql

Копируем все на новый хостинг:

scp -r /var/www/site.ru/ vladimir@2.2.2.2:site
scp /etc/nginx/sites-available/site.ru vladimir@2.2.2.2:site/conf
scp site.sql vladimir@2.2.2.2:site/sql
scp -r /etc/letsencrypt/live/site.ru/  vladimir@2.2.2.2:site/lets

Заходим на сервер 2.2.2.2 с помощью ssh
Если помним пароль базы данных — это хорошо.
Если нет, то смотрим его в конфигурационном файле WordPress:

less site/site.ru/wp-config.php
define('DB_NAME', 'wordpress');
/** Имя пользователя MySQL */
define('DB_USER', 'wordpress');
/** Пароль к базе данных MySQL */
define('DB_PASSWORD', 'mypassword');

Видим, что:

  • Пользователь базы: wordpress
  • С паролем: mypassword

Создаем базу данных WordPress

mysql -p
CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO "wordpress"@"localhost" IDENTIFIED BY "mypassword";
FLUSH PRIVILEGES;
EXIT

Импортируем дамп базы данных

mysql -p wordpress < site/sql/site.sql

Копируем остальное на нужные места

cp -r site/lets/site.ru/ /etc/letsencrypt/live/
cp -r site/site.ru /var/www/
chown -R www-data:www-data /var/www/site.ru/

cp site/site.ru /etc/nginx/sites-available/
ln -s /etc/nginx/sites-available/site.ru /etc/nginx/sites-enabled/

Проверим корректность конфигурации NGINX:

nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

В моем случае все хорошо, перезапускаем NGINX:

nginx -s reload

Для теста в host файл вашего компьютера добавляем запись:

2.2.2.2 site.ru

Заходим на сайт, проверяем все ли нормально работает.
Если результат устраивает, то меняем в DNS  А запись на новый IP.

P.S. Необходимо обратить внимание на то что:
Во-первых сертификаты обновляться не будут (необходимо получить новый).
Во-вторых после изменения DNS записи нужно время для обновления зоны.

Рейтинг
( Пока оценок нет )
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

:) :D :( :o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen:
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.