Переезд с виртуального хостинга на VPS без потери данных
Сайт перерос shared-хостинг: тормозит под нагрузкой, не хватает прав, нельзя поставить нужный софт. Пора на VPS. Главный страх переезда — простой и потеря данных, но при правильном порядке действий сайт не ляжет ни на минуту. Разберём перенос файлов, базы и переключение домена без спешки.
Содержание
Стратегия «без простоя»
['Секрет плавного переезда — не выключать старый сайт, пока новый не заработал. Порядок такой: поднимаем копию на VPS, проверяем её по IP или временному домену, и только когда всё работает, переключаем DNS. Пока DNS обновляется по миру, оба сайта живут параллельно.', 'Заранее снизьте TTL DNS-записей до 300 секунд за сутки до переезда — тогда после переключения посетители перейдут на новый сервер за минуты, а не за часы. Это делается в панели, где управляется домен. Тот же приём убирает главный страх новичков: если на новом сервере вдруг что-то отвалится, можно мгновенно вернуть A-запись обратно на старый хостинг, и сайт продолжит работать как ни в чём не бывало.', 'Для типичного сайта на WordPress/Битрикс/самописном PHP на VPS нужен LEMP-стек и 2–4 ГБ RAM. NVMe-диск на MAATRIX здесь особенно заметен: сайт, который «задыхался» на переполненной shared-ноде, на своём сервере с быстрым диском отвечает ощутимо резвее.']Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для переезда сайтаГотовим VPS: стек под сайт
['На чистом сервере ставим веб-сервер, PHP и базу:', 'sudo apt update\nsudo apt install -y nginx mysql-server php-fpm php-mysql \\\n php-curl php-gd php-mbstring php-xml php-zip', 'Создаём базу и пользователя, куда потом зальём дамп:', "sudo mysql\nCREATE DATABASE mysite CHARACTER SET utf8mb4;\nCREATE USER 'siteuser'@'localhost' IDENTIFIED BY 'СильныйПароль';\nGRANT ALL ON mysite.* TO 'siteuser'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;"]
Переносим файлы: rsync или архив
['Если на старом хостинге есть SSH — самый чистый способ забрать файлы прямо на VPS через rsync (докачивает только изменённое):', 'rsync -avz -e ssh olduser@old-host.ru:~/public_html/ \\\n /var/www/mysite/', 'Если SSH нет, а только FTP/файловый менеджер — соберите архив в панели хостинга (или через File Manager), скачайте и распакуйте на VPS:', 'cd /var/www/mysite\nunzip site-backup.zip\nsudo chown -R www-data:www-data /var/www/mysite', 'Права на файлы — частая причина «белого экрана»: владельцем должен быть пользователь веб-сервера (www-data).']
Дамп и импорт базы MySQL
['На старом хостинге снимите дамп базы (через SSH либо экспортом в phpMyAdmin):', 'mysqldump -u olduser -p old_db_name > dump.sql', 'Перекиньте файл на VPS и импортируйте в созданную базу:', 'scp dump.sql root@ваш-vps-ip:/root/\nmysql -u siteuser -p mysite < /root/dump.sql', 'Пропишите новые данные подключения в конфиге сайта: для WordPress это DB_NAME/DB_USER/DB_PASSWORD в wp-config.php, для самописного — свой config.php.']
Меняем URL и проверяем по IP
['Пока домен ещё смотрит на старый хостинг, проверьте сайт на VPS локально: добавьте в свой /etc/hosts строку с IP сервера и доменом — так только у вас сайт откроется с нового сервера.', '203.0.113.10 example.com www.example.com', 'Если в базе прописаны абсолютные ссылки (частый случай в WordPress при смене домена), замените их корректно, с учётом сериализованных данных, через WP-CLI:', "wp search-replace 'http://old-domain.ru' 'https://example.com' --all-tables", 'Простой SQL-запрос REPLACE тут опасен — он ломает сериализованные массивы. Используйте WP-CLI или проверенный скрипт.']
Переключаем DNS и добиваем хвосты
['Когда сайт по /etc/hosts открывается без ошибок, меняйте A-запись домена на IP VPS. Благодаря заниженному TTL переключение пройдёт за минуты. Выпустите SSL уже на новом сервере:', 'sudo certbot --nginx -d example.com -d www.example.com', '- Проверьте формы обратной связи и почту (SMTP на VPS настраивается отдельно).
- Настройте cron-задачи, которые были на старом хостинге.
- Не удаляйте старый хостинг сразу — подержите неделю как страховку.
Нужен сервер под эту задачу?
Разверните VPS MAATRIX за пару минут: NVMe, AMD EPYC, root-доступ, локации UK и США. Оплата картой РФ и по СБП.
Арендовать VPS для переезда сайтаЧастые вопросы
Будет ли простой во время переезда?
Нет, если сначала поднять и проверить копию на VPS, а DNS переключать в последнюю очередь. Старый сайт работает, пока новый не готов.
Как перенести базу, если нет SSH на старом хостинге?
Экспортируйте базу через phpMyAdmin в .sql, перенесите файл на VPS и импортируйте командой mysql < dump.sql.
Почему после переезда сломались ссылки и картинки?
Обычно в базе остались старые абсолютные URL. Для WordPress используйте wp search-replace, который корректно обрабатывает сериализованные данные.