Переезд сайта всегда море гемора для вебмастера, особенно если он никогда этого не производил. Хотя на самом деле тут нет ничего сложного и все делается практически в лет. К тому же, приобретая новый хостинг- стандартная практика когда перенос осуществляется инженерами новоприобретенного хостинга.
Но периодически все же приходится переносить сайты самостоятельно, что почему то вызывает море вопросов, хотя процедура весьма триальная и больше всего времени в ней занимает выгрузка-загрузка содержимого сайта.
По итогам последних дней образовалась легкая памятка о том, как все проделать максимально быстро.
Перенастройку DNS-серверов или настройку сайта в панеле управления хостингом я оставлю за бортом, т.ч. ниже только манипуляции по переносу данных с одного хостинга на другой, причем в случае VPS, т.е. с доступом к ssh-консоли.
Надо заметить, что все архивы можно делать через панельку управления хостингом, но к примеру cpanel архивирует еще 100500 не нужных папок, так к тому же и бьет файлы в архивал, если длина пути до файла не вписывается в прокрустово ложе лимитов cpanel.
Переносим сайт на другой хостинг:
Теоретически содержимое сайта можно выкачать по ftp, но практически это занимает гораздо больше времени, чем тащить все в архиве, т.ч. создаем архив с содержимым сайта (я исходу из того, что он лежит в папке public_html):
# cd /путь-до-папки-домена/
# tar czf public-html-arch.tar.gz public_html
надо помнить что архив создается с рутом в той паке, откуда запускалось архивирование, т.е если мы создадим архим от рута
# tar czf /ARCH-NAME.tar.gz /home/USER/domains/SITE.COM/public_html
то на конечном пункте от раскроется ровно этой же иерархиваей в той папке, где мы будет разархивировать документ, т.е. если путь размещения сайтов будет такой же (/home/USER/domains/SITE.COM/), то конечный архив сайта окажется по адресу
/home/USER/domains/SITE.COM/home/USER/domains/SITE.COM/public_html
Выкачиваем архив по ftp и заливаем его на новый хостинг, кладем в какую нить не нужную папку, после чего распаковываем:
#tar -xzvf ARCH-NAME.tar.gz
и копируем папку public-html по нужному пути
# cp -R public_html/* /путь-до-местоположения-сайта/
практически все, кроме сапы и специфических скриптов, все заработает и так, но чтобы все было кошерно, надо раздать соответствующие права на папки в случае работы в архивом, т.к. распакован он будет от имени root. Если же вы грузили содержимое сайта без архива, а напрямую, то права уже будут заданы на правильного пользователя.
Меняем права доступа на папку и владельца на нового пользователя от которого заведены сайты
# chown -R user:group /путь-до-местоположения-сайта/
# chmod -R 755 /путь-до-местоположения-сайта/
Переносим базу данных mySQL на другой хостинг:
В идеале перед выгрузкой базы данных лучше зайти в phpMyAdmin и если у вас установлена какая то статистика вроде StatPress то обнулить таблицы с логами, т.к. база весящая 100 метров, с нулевой табличкой статистики вполне будет весить метров 5-10.
Оттуда можно и выгрузить базу в любом из доступных форматов (раздел Export), либо же это можно сделать из командной строки VPS:
# mysqldump -uUSER-NAME -p DATABASE-NAME > databasesnap.sql
если она здоровая, то жимкаем архивов
# mysqldump -uUSER-NAME -p DATABASE-NAME | gzip > databasesnap.sql.gz
Опять же базу данных можно скачать и напрямую из панели управления хостингом, в разделе управления базами даных – естественно у каждой из панелек это будет свой путь.
Базу на новом хостинге заводим через панель управления, после чего архив можно подтянуть либо из phpMyAdmin (но могут возникнуть проблемы, если она больше разрешенного размера в php.ini); либо при создании базы прямо в панельке, как у DirectAdmin где ниже списка баз имеется функционал импорта; либо же тоже из командной строки:
# mysqldump -uUSER-NAME -p DATABASE-NAME < databasesnap.sql
но у меня этот способ иногда дуркует, т.ч. я предпочитаю делать это прямо из базы данных:
# mysql -u USER-NAME -p
mysql> use DATABASE-NAME;
mysql> source /путь-до-базы-от-рута/database.sql
после этого меняем старые настройки доступа CMS к базе данных (у WordPress это файл wp-config.php, у Joomla – configuration.php) и радуемся жизни. Надо заметить, что у ISP есть хорошее преимущество, что базу данных можно создать с любым именем, т.е. задать их такими, чтобы даже не менять никакие доступы.