Миграция сайта с сервера на сервер
Способы переноса сайта:
Сайт можно перенести используя средства панели управления сервера или вручную. Перенос сайта средствами панели возможно только при условии, что оба сервера используют одинаковые панели управления сервером. К примеру, перенос сайта с сервера с панелью ISP manager на сервер с панелью ISP manager возможен средствами панели. Детальную информацию можно найти в документации разработчиков панелей управления сервером.
В данной статье рассмотрен вариант переноса сайта в ручную. На примере сайта secret.sisadmin.by рассмотрим перенос сайта с сервера server.sisadmin.by на server2.sisadmin.by. На старом сервере установлена панель управления Plesk, а на новом — ISP manager, поэтому перенос средствами не желателен (либо не возможен).
Конфигурация нового сервера (версия MySQL, PHP) должна максимально соответствовать конфигурации старого сервера.
Перенос сводится к следующим шагам:
- Подготовка нового сервера.
- Создание архива сайта и базы данных на старом сервере.
- Копирование архива сайта и базы на новый сервер.
- Распаковка архива и подключение базы данных к сайту.
- Проверка работы сайта и смена А-записи домена (что бы сайт начал открываться с нового сервера)
Подготовка нового сервера:
- Используя панель 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