Я думаю, для большинства не секрет, что в СУС 1С-Битрикс: Управление сайтом есть отличная система для переноса сайта, посредством скрипта restore.php, с помощью которого можно перенести как с помощью бекапа сайта, так и через облачный сервис. Все это крайне удобно, но когда объем сайта значительный, то возникают проблемы и в архивации и в переносе и в разархивации резервной копии. В этой небольшой статье приведу альтернативный инструмент, которым мне нравится пользоваться для переноса сайтов.
Не буду делать большой секрет — это инструмент известный. Программа scp помогает справиться со многими невзгодами. А теперь по порядку о том как я переношу сайт большого объема.
Сначала нужно сделать дамп базы данных. Он, конечно, присутствует в составе резервной копии от Битрикс, но мы сейчас говорим о тех случаях, когда стандартный инструмент не справился. Для того, чтобы сделать дамп базы данных нужно узнать доступ к БД, который применяет Битрикс для доступа к СУБД. Это можно подсмотреть в файлах /bitrix/.settings.php и /bitrix/php_interface/dbconn.php.
Затем используем такую команду через ssh:
mysqldump -uпользователь -pпароль база_данных > db.sql
Если предварительно зайти в корень сайта, то дамп базы данных окажется в корне сайта и он скопируется вместе с сайтом.
Далее используем scp. Для этого заходим по ssh на сервер, на который мы хотим перенести сайт, заходим в пустую папку для сайта и составляем такую команду
scp -r пользользователь_ssh@url_или_ip:/путь/до/папки/сайта/* .
Потребуется ввод пароля от второго сервера.
Здесь нужно будет набраться терпения и ждать пока пофайлово скопируется сайт. Однако, можно открепить команду от своего пользователя ssh и закрыть терминал. Для этого нужно нажать Ctrl-Z и выполнить этот ряд команд:
disown -h %1
bg 1
После этого можно спокойно закрыть терминал связи по ssh и время от времени проверять как идет процесс копирования с помощью команд top или htop. Когда scp более не будет появляться в списке процессов — значит копирование полностью завершено.
Когда копирование завершено можно на новом сервере залить дамп в базу данных на новом сервере командой:
mysql -uпользователь -pпароль база_данных < db.sql
помним, что файл db.sql был в корне скопированного сайта.
И меняет в файлах /bitrix/.settings.php и /bitrix/php_interface/dbconn.php доступ к БД на актуальный.
На этом перенос сайта благополучно завершен!