Наконец-то закончил перенос сайтов и прочих данных с двух старых VPS на новый мощный VDS. Вроде бы ничего сложного, но времени убивает много. Даже с применением хитростей, перенос нескольких десятков сайтов убил 2 вечера и 2 ночи. В этой заметке я собрал 4 основных совета по переносу сайтов с сервера на сервер. Так же выложил полезные скрипты.
#1 Несомненно удобнее переносить файлы сразу с сервера на сервер по HTTP или FTP протоколу, нежели промежуточно скачивать их к себе. Но, иногда полезно иметь локальные бекапы. Так же никто не мешает заливать сразу на сервер и паралельно скачать копии себе. Некоторые панельки имеют встроенные функции для этого, например ISPmanager отлично справляется с загрузкой файлов с удалённых сайтов. Ежели панель управления хостингом ущербна, но есть доступ по SSH (shell доступ), то отличным решением для копирования файлов будет утилита wget. Она обладает поддержкой HTTP и FTP протоколов, а так же содержит множество полезных функций и опций. Например, для копирования файлов с FTP сервера нужно в SSH консоли выполнить команду

wget ftp://логин:пароль@ftp.oldhost.ru/www/oldsite.ru/backup.zip

#2 Можно банально переносить каждый файл по отдельности, но гораздо удобнее архивировать сайт целиком или же сразу пачку сайтов. Выше упомянутый ISPmanager умеет архивировать файлы и папки нажатием одной кнопки. Обладатели других панелей могут скачать или написать PHP скрипт для архивации файлов. Специально к теме данного поста написал простой скрипт архивации файлов и папок, на основе другого старого скрипта с использованием библиотеки PclZip. В самом скрипте надо указать имена файлов или папок и запустить скрипт get.php. Так же можно выполнять архивацию по SSH с помощью команд архивирования, но, надеюсь, до такого изврата редко кто доходит.

#3 Для переноса MySQL баз данных с одного хостинга на другой можно пользоваться привычным клиентом phpMyAdmin, и экспортировать дампы в архив. Но есть как минимум ещё 2 способа сделать это быстрее и проще.
Первый способ – использовать php утилиту Sypex Dumper. Это удобный и очень быстрый скрипт для экспорта, импорта и создания резервных копий баз данных MySQL. В отличии от phpMyAdmin он может работать с базами данных любых размеров, за счёт продуманного алгоритма работы. Sypex Dumper не загружает бекап-файл целиком в память, благодаря чему он одинаково быстро работает, как с маленькими, так и с большими объемами данных. Не требует настройки. Достаточно закачать скрипт на старый и новый сервера.
Второй способ применим в случае если вы имеете полный доступ к файлам на сервере. А конкретно нужен доступ к «/var/db/mysql» во FreeBSD или к аналогичной директории, в зависимости от операционной системы и настроек MySQL сервера. В этой папке находятся файлы баз данных. Их то и надо перенести в новое место. Не стоит беспокоиться о совместимости версий файлов для разных версий MySQL. По моим наблюдениям, Хоть от 3ей версии, хоть от 5ой, файлы совместимы и работают без ошибок.
Так же можно попробовать извратиться и сделать перенос данных средствами репликации данных.

#4 Наверное, самым сложным моментом при переносе сайтов является синхронизация прав доступа к файлам. Если забыть выставить нужные права доступа (chmod) к папке или файлу то в один прекрасный момент сайт станет показывать посетителям ошибки, а не содержание. Но самое интересное начинается когда права доступа надо расставить для нескольких десятков сайтов на различных движках. Тут лучше запомнить или выписать на листочек имена файлов и папок с нужными правами доступа. Возможно существует скрипт, который делает подобные дампы, но, к сожалению, не встречал ничего подобного. Если кто знает – пишите в комменты. По сути ничего сложного и необычного скрипт не делает, так что если будет нужда и свободное время – то сделаю нечто подобное.

Опубликовано 20.01.2009в 21:37. В рубриках: Администрирование. Вы можете следить за ответами к этой записи через RSS 2.0. Вы можете оставить свой отзыв или трекбек со своего сайта.

Отзывов (3) на «Перенос сайтов на новый хостинг»

  1. левитр on 27.05.2009 в 16:06

    >Специально к теме данного поста написал простой скрипт архивации файлов и папок, на основе другого старого скрипта с использованием библиотеки PclZip.

    При попытке заархивировать сайт вылетает ошибка

    Fatal error: Maximum execution time of 30 seconds exceeded in /home/data/www/pclzip.lib.php on line 1997

    И что делать? Лимит никак не обойти?

  2. admin on 28.05.2009 в 12:33

    левитр, меняй хостинг или архивируй меньшее количество файлов за один раз.

  3. Alex on 20.08.2009 в 23:08

    Блин, у меня то ли хостинг тупит, то ли что… Ну допустим на блоге плагины конфликтуют или у меня руки кривые, и сайт периодически падает — но почему в это же время ложится форум на поддомене, хотя у него своя Mysql-база? Чувствую, и мне переносится придется…
    Спасибо за инфу)

Оставьте отзыв

Это не спам.
сделано dimoning.ru