Как перекинуть сайт с сервера на сервер по SSH

Задача: Перенести сайт (весом под 40Gb) с хостинга 1 на хостинг 2.

Хостинг 2, в моем случае, это «подкроватный» (домашний) сервер на линуксе. Т.е. это не виртуальный хостинг с удобной панелью управления, а почти то же самое, что выделенный сервер или VPS.

Решений достаточно.

1. Самое очевидное

  1. Сделать резервную копию сайта средствами хостинга или командой в консоли,
  2. Скачать получившийся архив с хостинга 1 к себе на комп,
  3. Залить с компа на хостинг 2,
  4. Распаковать там командой из консоли.
  5. Ну еще базу данных сдампить на первом и раздампить на втором.

Но, сайт большой, а места для архива резервной копии на хостинге не хватает.

2. Можно скачать с хостинга 1 всё не упаковывая (по FTP), а потом залить на хостинг 2.

Не самое интересное занятие, зато простое. Выделил, выкачал, выделил, закачал.

Однако внезапно выяснилось, что места не осталось не только на хостинге 1, но и на моей локальной машине. Нда… А сайт переносить надо.

Хоть по кускам перетаскивай, но это уже совсем извращение какое-то.

Есть еще варианты?

Конечно есть!

Если будете повторять то, что описано ниже, помните: всё что вы делаете — вы делаете на СВОЙ страх и риск.

У меня (и еще у кучи народу) это работает. Может получиться и у вас. А может не получиться!

Всякое случается: звезды не так сложатся, магнитные бури, луна в козероге, собака соседа вас проклянет, злые хакеры будут под руку толкать, или инопланетяне подшутят.

В общем, если что пошло не так, я тут ни при чем и даже рядом не стоял.

Запомнили!? Тогда идем дальше, ну или мимо.

Перекидываем сайт с одного хостинга на другой по SSH с помощью консольной команды

3. Делаем так, чтобы хостинг 2 сам скачал сайт с хостинга 1 (по SSH).

Для этого заходим на хостинг 2 по SSH и вводим в консоли ПРИМЕРНО вот такую строчку.

scp -r логин_хостинга_1@хост_хостинга_1:~/папка_сайта/public_html/ /home/www/папка_сайта

Давайте разберем строчку на составляющие, чтобы модифицировать ее под себя.

  • «логин_хостинга_1» заменяем на действующий логин для входа по SSH на хостинг 1 ,
  • «хост_хостинга_1» меняем на его IP,
  • «~/папка_сайта/public_html/» заменяется на путь к папке сайта на хостинге 1 (из которой выкачиваем). Путь пишется от корня, ну или как у меня в примере, от папки текущего пользователя «~». Чтобы уточнить путь, может понадобиться зайти на хостинг 1 с помощью PUTTY (не путать с ВВП) и посмотреть.
  • Через пробел указываем полный путь к папке на хостинге 2 (той, в которую заливаем сайт). В моем примере это «/home/www/папка_сайта». Тоже от корня или, от папки пользователя.

Со строкой разобрались.

  1. Строку вставили в консоль.
  2. Клацнули Enter.
  3. На вопрос в консоли отвечаем ‘yes’ (без кавычек!).
  4. На запрос пароля — вводим пароль от хостинга 1.

Теперь ждём, когда сайт будет закачан в указанную папку.

Я ждал несколько часов. За это время вполне можно выпить 4 кружки чая, пообедать, прогуляться и посмотреть пару роликов на ютюбе. Правда перекачиваемый сайт весил под 40Gb. В вашем случае все может оказаться до безобразия быстро.

Докачалось!

Теперь нужно вспомнить про права доступа к файлам и папкам. Дело в том, что при перекачке файлы могут сохраниться под текущим пользователем и с не совсем корректными правами. Рекомендую проверить права и пользователя у других сайтов на хостинге 2, чтобы сравнить.

Для нормализации перечисленного я использовал три команды.

find /home/www/папка_сайта -type f -exec chmod 644 {} \;

find /home/www/папка_сайта -type d -exec chmod 755 {} \;

chown -R пользователь:группа /home/www/папка_сайта
  • Первая — задаст права для файлов перекачанного сайта.
  • Вторая — для папок.
Само-собой «/home/www/папка_сайта» нужно заменить на путь к закачанному сайту на хостинге 2.
  • Третья — присвоит файлам и папкам пользователя и группу.
Все что писалось выше для «/home/www/папка_сайта» — тут тоже актуально. «пользователь» и  «группа» замените на те, которые используются на вашем хостинге для других ваших сайтов. Если других сайтов нет, создайте, чтобы сравнить.

В общем, работы тут на пару кликов, а писать-переписывать пришлось почти час. Даже успел проголодаться. Чаю захотелось.)))

Помогло? Зашли Админу на чай.

Метод удобный. Включил себе и занимаешься другими делами.

PS На некоторых хостингах есть инструменты для переноса сайтов с других хостингов (прямо в панели управления). Включил, указал что требуется и все сделают за тебя (если ничего не помешает). Это еще один метод. Иногда он годится, иногда нет (например, если переносим на VPS).

PPS Не забываем про базу данных! Сделайте дамп базы на первом хостинге и залейте на второй.

PPPS Yи в коем случае не удаляйте сайт с хостинга 1 (до тех пор, пока не протестируете его на хостинге 2 и не убедитесь, что всё работает так как надо).

А с вами был Доктор Лексиум.
Ставьте лайк, подписывайтесь на канал, жмите «колокольчик» и оставляйте свои комментарии под видео.
Сохраните ссылку чтобы не потерять, а если написанное тут показалась вам полезной — делитесь с друзьями и подписчиками.
До новых постов)))

Напишите комментарий