Миграция с shared-хостинга на VDS: пошаговое руководство

Миграция · 19.04.2026
Миграция с shared-хостинга на VDS: пошаговое руководство

Переход с общего хостинга (shared) на виртуальный выделенный сервер (VDS/VPS) — это закономерный шаг, когда сайт вырастает из ресурсных ограничений. VDS даёт полный root-доступ, независимые ресурсы CPU/RAM и возможность тонкой настройки под ваши нужды.

Когда пора переезжать с shared на VDS

СимптомПричинаРешение
Сайт тормозит в часы пикКонкуренция за ресурсы с соседямиVDS с выделенными ресурсами
Ошибки 503 / превышение лимитовCPU/RAM квоты sharedVDS без ограничений хостера
Нельзя установить нужный PHP/PythonShared контролирует окружениеПолный root на VDS
Нужен cron каждую минутуShared запрещает частые заданияЛюбой cron на VDS
Несколько проектовДополнительные сайты стоят дорогоНеограниченное кол-во сайтов на VDS

Подготовка VDS перед миграцией

# Обновить систему (Ubuntu/Debian)
apt update && apt upgrade -y

# Установить веб-стек
apt install nginx php8.3-fpm php8.3-mysql php8.3-mbstring   php8.3-xml php8.3-curl php8.3-zip mariadb-server -y

# Запустить сервисы
systemctl enable --now nginx php8.3-fpm mariadb

Шаг 1: Создание резервной копии на shared-хостинге

# Через cPanel: Backup Wizard → Full Backup
# Или вручную через SSH (если доступен)
tar -czf ~/backup-site.tar.gz ~/public_html/
mysqldump -u dbuser -p dbname > ~/backup-db.sql

Шаг 2: Перенос файлов на VDS

# Скачать архив с shared на локальный ПК, затем загрузить на VDS
scp backup-site.tar.gz root@YOUR-VDS-IP:/var/www/

# Или напрямую с shared на VDS через rsync
rsync -avz --progress user@shared-host:~/public_html/   root@YOUR-VDS-IP:/var/www/example.com/

# Распаковать
cd /var/www/
tar -xzf backup-site.tar.gz

Шаг 3: Восстановление базы данных

# Создать БД и пользователя
mysql -u root -p <<'SQL'
CREATE DATABASE mysite CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'StrongPass123';
GRANT ALL ON mysite.* TO 'myuser'@'localhost';
FLUSH PRIVILEGES;
SQL

# Импортировать дамп
mysql -u myuser -p mysite < backup-db.sql

Шаг 4: Настройка Nginx

# /etc/nginx/sites-available/example.com
server {
    listen 80;
    server_name example.com www.example.com;
    root /var/www/example.com;
    index index.php index.html;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx

Шаг 5: Тестирование до смены DNS

# Добавить в /etc/hosts на вашем ПК для теста
YOUR-VDS-IP example.com www.example.com

# Проверить сайт в браузере без смены DNS
# После успешного теста — вернуть hosts и сменить DNS

Шаг 6: Смена DNS без простоя

Смените DNS-записи только после успешного тестирования сайта на VDS:

  1. Снизьте TTL A-записи до 300 секунд за 24 часа до миграции
  2. Убедитесь что сайт работает на VDS (через /etc/hosts)
  3. Обновите A-запись на IP вашего VDS
  4. Дождитесь распространения DNS (5–30 минут при TTL 300)
  5. Держите старый хостинг активным ещё 48 часов как запасной вариант
Нулевой простой: При правильном снижении TTL и тестировании через /etc/hosts переключение DNS происходит незаметно для пользователей — сайт доступен всё время.
Обновите конфиг приложения! После переноса обновите wp-config.php (WordPress), .env или другие конфиги с новыми данными БД. Старые credentials от shared-хостинга работать не будут.
← Назад в базу знаний Задать вопрос поддержке