Перенос сайта с одного Linux сервера на другой через консоль по SCP

Как перенести сайт с одного Linux сервера на другой через консоль по SCP

Перенос сайта с одного Linux сервера на другой через SCP выполняется копированием файлов и базы данных на удалённый сервер с использованием защищённого протокола передачи данных. Это самый быстрый и безопасный способ миграции при наличии доступа по SSH к обоим серверам.

Причины необходимости переноса сайта

  • Смена хостинг-провайдера или сервера с лучшими характеристиками
  • Увеличение нагрузки на текущий сервер
  • Переезд на выделенный или облачный сервер
  • Необходимость резервного копирования на отдельный сервер
  • Обновление операционной системы или конфигурации серверного окружения

Пошаговая инструкция по переносу сайта через SCP

  1. Подключитесь к исходному серверу по SSH, используя команду ssh user@source_server_ip.
  2. Создайте резервную копию базы данных командой mysqldump -u username -p database_name > backup.sql (введите пароль по запросу).
  3. Спакуйте директорию сайта в архив командой tar -czf site_backup.tar.gz /var/www/html.
  4. Переходите на локальный компьютер, откройте терминал и выполните команду scp -r user@source_server_ip:/home/user/site_backup.tar.gz ~/Downloads/.
  5. Загрузите архив на целевой сервер командой scp ~/Downloads/site_backup.tar.gz user@destination_server_ip:/home/user/.
  6. Загрузите файл базы данных на целевой сервер командой scp user@source_server_ip:/home/user/backup.sql user@destination_server_ip:/home/user/.
  7. Подключитесь к целевому серверу командой ssh user@destination_server_ip.
  8. Распакуйте архив сайта командой tar -xzf /home/user/site_backup.tar.gz -C /var/www/.
  9. Импортируйте базу данных командой mysql -u username -p database_name < /home/user/backup.sql.
  10. Проверьте права доступа к файлам командой chmod -R 755 /var/www/html.
  11. Назначьте владельца файлов веб-серверу командой chown -R www-data:www-data /var/www/html.
  12. Перезагрузите веб-сервер командой systemctl restart nginx (или systemctl restart apache2 для Apache).
  13. Проверьте работу сайта, открыв его в браузере по IP-адресу или доменному имени целевого сервера.

Часто задаваемые вопросы

Как передать только определённые директории сайта, а не весь контент? Используйте команду scp -r user@source_server_ip:/var/www/html/uploads/ user@destination_server_ip:/var/www/html/ для копирования конкретной папки вместо полного архива.

Почему при копировании выдаёт ошибку "Permission denied"? Убедитесь, что у вас есть права доступа к файлам на исходном сервере и права на запись в целевую директорию; используйте sudo scp если необходимо повышение привилегий.

Как ускорить передачу больших файлов через SCP? Используйте опцию -C для включения сжатия (scp -C -r user@server_ip:/path/to/files /local/path) или рассмотрите использование rsync вместо SCP для частичной синхронизации.

Похожие материалы

Почтовый сервер Postfix на Linux сервере начальная конфигурация
Ошибка сбоя авторизации при подключении по RDP к Windows Server
DHCP сервер на базе Windows Server 2022