Когда и зачем нужно переносить сайт на VPS
- Если ваш проект растёт и обычный хостинг не справляется с нагрузкой, VPS даёт отдельные ресурсы CPU и RAM.
- Для сайтов, требующих кастомных настроек сервера, например, специфических модулей Apache или Nginx.
- При необходимости разместить данные в России в соответствии с 152‑ФЗ, что защищает персональные данные граждан.
Подготовка: создание резервной копии файлов и базы данных
- Подключитесь к текущему хостингу через FTP/SFTP и скачайте все файлы сайта в отдельную папку.
- В панели управления хостингом откройте phpMyAdmin, выберите нужную базу и нажмите «Экспорт». Сохраните .sql файл.
- Проверьте, что архивы находятся в надёжном месте, например, на внешнем диске.
- Если используете WordPress, дополнительно сделайте экспорт медиа‑файлов через WP‑CLI:
wp media export.
Выбор VPS: российские дата‑центры и соответствие 152‑ФЗ
При выборе VPS обратите внимание на расположение дата‑центра и возможность оплаты российскими картами. По закону 152‑ФЗ (ч. 5 ст. 18) персональные данные граждан РФ должны храниться на серверах в России.
| Провайдер | Дата‑центр в РФ | Соответствие 152‑ФЗ | Способ оплаты |
|---|---|---|---|
| Timeweb Cloud | Санкт‑Петербург, Москва, Новосибирск | Да (данные хранятся в РФ) | Карты РФ |
| Aeza | Европа + РФ (в зависимости от тарифа) | Не указано в источнике | Карты РФ |
Timeweb Cloud — российский провайдер, Aeza предлагает гибридные варианты. Оба провайдера принимают карты РФ.
Подробнее о требованиях 152‑ФЗ читайте в статье Хостинг в России 152‑ФЗ.
Настройка сервера (LAMP/LEMP)
- Подключитесь к новому VPS по SSH (
ssh root@IP). - Установите нужный стек. Для LAMP выполните:
`bash apt update && apt install apache2 mysql-server php php-mysql ` Для LEMP (Nginx) используйте: `bash apt update && apt install nginx mysql-server php-fpm php-mysql `
- Проверьте версии:
php -v,mysql --version. Если сайт требует конкретную версию, установите её из репозитория.
- Настройте брандмауэр:
ufw allow 80,443/tcp && ufw enable.
Перенос файлов сайта на VPS
- На сервере создайте каталог для сайта, например
/var/www/example.com. - Установите права:
chown -R www-data:www-data /var/www/example.com. - С помощью
scpилиrsyncзагрузите архив файлов:
`bash rsync -avz /local/path/ root@IP:/var/www/example.com/ `
- Распакуйте архив, если он был заархивирован (
tar -xzf archive.tar.gz).
Для примера переноса с другого хостинга смотрите перенос сайта на другой хостинг.
Перенос и импорт базы данных
- На VPS создайте новую базу и пользователя:
`bash mysql -u root -p CREATE DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'db_user'@'localhost' IDENTIFIED BY 'strong_password'; GRANT ALL PRIVILEGES ON db_name.* TO 'db_user'@'localhost'; FLUSH PRIVILEGES; EXIT; `
- Импортируйте .sql файл:
`bash mysql -u db_user -p db_name < /path/to/dump.sql `
- Проверьте, что таблицы созданы и данные доступны.
Настройка веб‑сервера и виртуального хоста
- В Apache создайте файл
/etc/apache2/sites-available/example.com.conf:
`apache <VirtualHost *:80> ServerName example.com DocumentRoot /var/www/example.com <Directory /var/www/example.com> AllowOverride All Require all granted </Directory> </VirtualHost> ` Затем включите сайт: a2ensite example.com && systemctl reload apache2.
- В Nginx создайте
/etc/nginx/sites-available/example.com:
`nginx server { listen 80; server_name example.com; root /var/www/example.com; index index.php index.html; location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; } } ` Активируйте: ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/ && systemctl reload nginx.
Изменение DNS (A‑запись) и делегирование домена
- В панели управления доменом найдите раздел «DNS‑записи».
- Замените текущую A‑запись на IP‑адрес вашего VPS.
- При необходимости добавьте запись CNAME для www, указывающую на основной домен.
- Сохраните изменения; распространение DNS обычно занимает несколько минут.
- После обновления проверьте, что домен открывается по новому IP, используя
dig example.com.
Проверка работоспособности после переноса
- Откройте сайт в браузере по IP‑адресу, чтобы убедиться, что страница загружается без ошибок.
- Проверьте формы, авторизацию и загрузку медиа‑файлов.
- Включите режим отладки в CMS (например,
WP_DEBUG=trueв WordPress) и просмотрите журнал ошибок. - При появлении ошибки «страница не найдена» проверьте
.htaccessили правила переадресации в Nginx.
Возможные ошибки и их решение
- Ошибка подключения к базе: проверьте
DB_HOST,DB_USER,DB_PASSWORDв конфигурационном файле. - Права файлов: Apache/Nginx требует
www-data(илиnginx) как владельца; исправьтеchown. - Версия PHP: если сайт требует PHP 8.0, а на сервере установлена 7.4, выполните
apt install php8.0и переключитеphp-fpm. - Кеширование: после миграции очистите кеш браузера и любой серверный кеш (например,
php artisan cache:clear). - DNS‑пропаганда: если сайт не открывается сразу, подождите несколько минут или проверьте запись через
nslookup.
Выбор провайдера: Timeweb Cloud и Aeza
Timeweb Cloud имеет дата‑центры в России (СПб, Москва, Новосибирск) и принимает карты РФ. Aeza предлагает серверы в России и за рубежом, возможность выбора тарифов с локацией в России. Оба провайдера принимают карты РФ.
Отзывы о Timeweb Cloud можно посмотреть в статье Timeweb Cloud отзывы.
Разница между виртуальным хостингом и VPS
- Виртуальный хостинг – общий сервер, ресурсы делятся между клиентами, настройки ограничены панелью.
- VPS – отдельный виртуальный сервер с собственным ядром, памятью и диском, доступ к root‑доступу и полной конфигурации.
- При росте трафика и необходимости кастомных модулей лучше использовать VPS.
Читайте также: