27 окт. 2011 г.

Перенос сайта на новый хостинг

Многие обладатели интернет сайтов, от малых - до великих, сталкивались с проблемой переноса своего детища с одного хостинга на другой по различным причинам. В данной статье я опишу пару способов переноса всего сайта с одного хостинга на другой.
Дано:
домен:
test.сom
старый сервер:
ip: OLD_IP
document_root:OLD_DR
user:OLD_USER
pass:OLD_PASS
БД user:OLD_DB_USER
БД pass:OLD_DB_PASS
БД имя:OLD_DB_NAME
новый сервер:
ip: NEW_IP
user:NEW_USER
pass:NEW_PASS
document_root:NEW_DR
БД user:NEW_DB_USER
БД pass:NEW_DB_PASS
БД имя:NEW_DB_NAME
Суть переноса сайта с одного хостинга на другой - копирование всей информации(файлов и БД) со старого сервера на новый.

1-ый способ - самый простой.
В большинстве случаев, на каждом хостинге присутствует доступ к серверу по протоколу FTP и доступ к БД с помощью PhpMyAdmin. Первым делом - необходимо скачать все содержимое домашнего каталога со старого хостинга на рабочий компьютер, поправить конфигурационные файлы под нужды нового хостинга, такие как учетная запись для доступа к БД, имя БД, полный путь к домашнему каталогу на новом хостинге и др., и перенести все файлы на новый сервер. Перенос БД заключается в экспорте данных при помощи PMA на старом сервере и импорту оных на новом сервере( для успешной операции желательно использовать сжатие данных при экспорте, потому как на многих хостингах максимальный размер файла для импорта в PMA ограничивается размером в 8 Мб, если же все данные все равно не влазят в ограниченный объем - можно переносить таблицы БД по частям).

2-ый способ.
При наличии удлаенного доступа к старому серверу и новому по протоколу ssh можно поступить следующим образом:
подключится к старому серверу;
сделать дамп базы данных на старом сервере при помощи утилиты mysqldump:
>mysqldump OLD_DB_NAME –uOLD_DB_USER -p > dump.sql
и положить дамп в корень сайта;
создать архив корня сайта со всеми файлами и положить данный архив в корень сайта
>tar -cvzf site.tar.gz *
;
подключится к новому серверу;
при помощи утилиты wget скачать архив сайта минуя рабочий компьютер;
>wget http://test.com/site.tar.gz
;
распаковать архив в корень сайта
>tar xvzf site.tar.gz
;
восстановить БД при помощи команды:
>mysql NEW_DB_NAME –uNEW_DB_USER -p < dump.sql
3-ий способ - самый оптимальный
При наличии удаленного доступа к старому и новому серверам по протоколу ssh и наличия на обоих серверах утилиты rsync:
создаем дамп БД:
>mysqldump OLD_DB_NAME –uOLD_DB_USER -p > dump.sql
выполняем копирование файлов на новый сервер при помощи rsync:
>rsync --progress -zvarle ssh OLD_DR NEW_USER@NEW_IP:NEW_DR && touch OLD_DOCUMENT_ROOT/.done
восстанавливаем БД
>mysql NEW_DB_NAME –uNEW_DB_USER -p < dump.sql

PS:
при работе с серверами по протоколу ssh хорошим тоном является использование утилиты screen(особенно при копировании больших объймов данных), которая позволяет продолжитьь выполнение команды на удаленном сервере при обрыве ssh соединения.
для тестирования успешного переноса сайта на новый сервер необходимо прописать в файле hosts строку вида
NEW_IP test.com
и попробовать зайти на сайт test.com, при полной уверенности, что сайт перенесен нормально - необходимо изменить DNS записи, с перенаправлением трайика test.com на новый сервер.




Комментариев нет: