Colobridge WIKI

Миграция сайта с сервера на сервер


Сайт можно перенести используя средства панели управления сервера или вручную. Перенос сайта средствами панели возможно только при условии, что оба сервера используют одинаковые панели управления сервером. К примеру, перенос сайта с сервера с панелью ISP manager на сервер с панелью ISP manager возможен средствами панели. Детальную информацию можно найти в документации разработчиков панелей управления сервером.

В данной статье рассмотрен вариант переноса сайта в ручную. На примере сайта secret.sisadmin.by рассмотрим перенос сайта с сервера server.sisadmin.by на server2.sisadmin.by. На старом сервере установлена панель управления Plesk, а на новом — ISP manager, поэтому перенос средствами не желателен (либо не возможен).

Конфигурация нового сервера (версия MySQL, PHP) должна максимально соответствовать конфигурации старого сервера.

Перенос сводится к следующим шагам:

  1. Подготовка нового сервера.
  2. Создание архива сайта и базы данных на старом сервере.
  3. Копирование архива сайта и базы на новый сервер.
  4. Распаковка архива и подключение базы данных к сайту.
  5. Проверка работы сайта и смена А-записи домена (что бы сайт начал открываться с нового сервера)
  • Используя панель ISP manager, необходимо создать пользователя sisadmin и домен secret.sisadmin.by:

Файлы сайта будут расположены в каталоге «/var/www/sisadmin/data».

  • Далее необходимо создать базу данных database и пользователя database_user. Для этого используем ссылку «Базы данных» в меню «Инструменты» и нажимаем кнопку «Создать»:

Сохраните имя пользователя и пароль. Эти данные понадобятся при подключении сайта к базе данных.

Необходимо выполнить подключение на старый сервер, где лежит сайт, по ssh-протоколу. Для Windows есть программа Putty ( http://putty.org.ru/download.html ). Для Linux, есть возможность использовать программу «Терминал»:

 root@gerty:/# ssh root@server.sisadmin.by 

Если на сервере используется нестандартный протокол, то его следует указать, используя ключ «-p».

Например:

root@gerty:/# ssh -p42222 root@server.sisadmin.by 

Перед тем, как запаковать сайт в архив, надо выяснить, где он находится. Данная информация содержится в файле конфигурации web-сервера:

root@server:~# apache2ctl -S | grep secret.sisadmin.by
         port 7080 namevhost secret.sisadmin.by (/etc/apache2/plesk.conf.d/vhosts/secret.sisadmin.by.conf:136) 

Со строки 136 файла начинается описание сайта:

 /etc/apache2/plesk.conf.d/vhosts/secret.sisadmin.by.conf 

Для определения, в каком каталоге находятся файлы сайта:

 root@server:~# cat -n /etc/apache2/plesk.conf.d/vhosts/secret.sisadmin.by.conf | grep DocumentRoot
    17	        DocumentRoot "/var/www/vhosts/server.sisadmin.by/secret.sisadmin.by"
   143	    DocumentRoot "/var/www/vhosts/server.sisadmin.by/secret.sisadmin.by" 

Создание архива archive.tar каталога secret.sisadmin.by:

 root@server:~# tar -cvf archive.tar /var/www/vhosts/server.sisadmin.by/secret.sisadmin.by/ 

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

В панели Plesk пароль пользователя root сервера баз данных находится в файле:

 /etc/psa/.psa.shadow 

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

 root@server:~# mysql -uadmin -p`cat /etc/psa/.psa.shadow`
mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+       
| secretsisadminby        |
+-------------------------+ 

База данных сайта - secretsisadminby. Выходим из консоли MySQL и создаем копию базы данных secretsisadminby в файл secretsisadminby.sql:

 mysql> quit
root@server:~# mysqldump -uadmin -p`cat /etc/psa/.psa.shadow` secretsisadminby > secretsisadminby.sql 
В итоге, архив сайта находится в файле archive.tar, а копия базы данных в файле secretsisadminby.sql.

Необходимо скопировать эти файлы на новый сервер. Для этого используется утилита scp:

 root@server:~# scp secretsisadminby.sql archive.tar root@server2.sisadmin.by:/ 

После того как файлы будут скопированы на новый сервер, необходимо подключиться к новому серверу по ssh-протоколу и перейти в каталог с новым сайтом:

 root@server:~# ssh root@server2.sisadmin.by
root@server2:~# cd /var/www/sisadmin/data/www/secret.sisadmin.by/ 

Следующей командой производится распаковка сайта:

 root@server2:/var/www/sisadmin/data/www/secret.sisadmin.by# tar -xf /archive.tar 

Для просмотра распакованных файлов можно использовать следующую команду:

 root@server2:/var/www/sisadmin/data/www/secret.sisadmin.by# ls -la 

Для копирования содержимого каталога secret.sisadmin.by в текущую директорию используем команду:

 root@server2:/var/www/sisadmin/data/www/secret.sisadmin.by# cp -r secret.sisadmin.by/* 

Далее необходимо назначить файлы пользователю sisadmin:

 root@server2:/# chown -R sisadmin:sisadmin /var/www/sisadmin/data/www/secret.sisadmin.by/ 

Теперь следует добавить secretsisadminby.sql в базу данных database, используя данные ранее созданного пользователя:

 root@server2:/# mysql -u database_user -p database < secretsisadminby.sql <code>

Осталось подключить сайт к базе данных. В примере сайт использует CMS Made Simple   и подключение описывается в файле config.php.
Открыть файл на редактирование можно следующей командой:
<code>root@server2:~# nano /var/www/sisadmin/data/www/secret.sisadmin.by/config.php 

Редактируем необходимые строки:

$config['db_username'] = 'user'; (указываем пользователя sisadmin)
$config['db_password'] = 'password'; (указываем пароль пользователя)
$config['db_name'] = 'database'; (указываем имя базы данных)

Сохраняем файл и выходим из редактора.

Проверить работу сайта с нового сервера можно, добавив у себя на компьютере запись вида: xxx.xxx.xxx.xxx mysite.loc (где xxx.xxx.xxx.xxx — ip-адрес нового сервера, mysite.loc — домен) в файле /etc/hosts, если Linux, в файле C:\Windows\Systes32\drivers\etc\hosts если Windows.

Работоспособность сайта можно проверить в браузере. Если сайт работает корректно, можно переключить А-запись домена, что бы она вела на новый сервер. Это можно сделать в панели регистратора домена.


Актуальность: 2015/01/26 14:58