Зачем переходить с shared на VDS
Shared хостинг ограничивает ресурсы CPU/RAM, запрещает запуск фоновых процессов и не позволяет тонкую настройку PHP/MySQL. VDS даёт полный контроль.
💡 Признаки что пора на VDS: сайт падает в часы пик, нужны cron-задачи каждую минуту, требуется PHP 8.2+ или Redis.
Шаг 1: Бэкап с cPanel
cPanel → Backup Wizard → Full Backup. Скачайте архив (.tar.gz) с сервера.
Шаг 2: Установка стека на VDS
apt update && apt install -y nginx mysql-server php8.2-fpm php8.2-mysql php8.2-gd php8.2-xml php8.2-mbstring php8.2-curl php8.2-zip
systemctl enable --now nginx mysql php8.2-fpm
Шаг 3: Импорт базы данных
mysql -u root -p -e "CREATE DATABASE mydb CHARACTER SET utf8mb4;"
mysql -u root -p -e "CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'pass';"
mysql -u root -p -e "GRANT ALL ON mydb.* TO 'myuser'@'localhost';"
mysql -u root -p mydb < backup.sql
Шаг 4: Настройка Nginx + PHP-FPM
server {
listen 80;
server_name mysite.com www.mysite.com;
root /var/www/mysite;
index index.php index.html;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
Чеклист перед переключением DNS
| Проверка | Команда |
|---|---|
| Сайт открывается по IP | curl http://NEW_IP |
| PHP работает | php -r "echo phpinfo();" | head |
| MySQL доступна | mysql -u myuser -p mydb -e "SHOW TABLES;" |
| SSL настроен | certbot --nginx -d mysite.com |
⚠️ Снизьте TTL DNS-записи до 300 секунд за 24 часа до переноса — это ускорит распространение после смены A-записи.