Как перенести сайт с хостинга на VPS

Сам перенос занимает пару часов, а ошибки обычно случаются вокруг него: забытое задание cron, правила .htaccess, которые nginx не читает, запись AAAA со старым адресом или почта, которая пропала вместе со сменой IP. Ниже — порядок действий с командами и проверками для сайта на PHP и MySQL.

Обновлено 31.10.2026 · Подобрать VPS по своим условиям →

Эта статья — о том, как переехать. Стоит ли переезжать вообще и какой сервер брать, разобрано в статье Когда переезжать с хостинга на VPS. Здесь считаем, что VPS уже куплен, а сайт сделан на WordPress, Битриксе, Laravel или другом движке на PHP с базой MySQL. Для других стеков порядок тот же, меняются только команды.

Сроки: переезд в четыре этапа

  1. За два дня: выписать всё, что работает на хостинге, и уменьшить TTL записей DNS.
  2. За день: подготовить сервер, скопировать файлы и базу, проверить сайт на новом адресе.
  3. День переезда: закрыть сайт на запись, перенести свежие данные, сменить DNS.
  4. Неделя-две после: держать хостинг включённым как запасной вариант.

Что выписать на хостинге

Почти все проблемы после переезда — это то, что работало на хостинге само и о чём забыли. Пройдитесь по панели хостинга и запишите:

  • Версию PHP и расширения. Их видно в панели или через SSH командами php -v и php -m. На VPS поставьте ту же версию, а обновление PHP сделайте отдельно, позже.
  • Версию и размер базы данных, кодировку таблиц.
  • Задания cron: что и как часто запускается. Пути к файлам на VPS будут другими.
  • Правила в .htaccess: редиректы, ЧПУ, ограничения доступа к папкам.
  • Почту: ящики, пересылки, где стоят записи MX.
  • Поддомены и все записи DNS, в том числе TXT для подтверждения сервисов.
  • Внешние сервисы, которые знают IP сайта. Платёжные системы, обмен с 1С, API партнёров и почтовые сервисы часто пускают запросы только с разрешённых адресов. Новый IP нужно добавить у них заранее.

За сутки-двое до переезда уменьшите TTL записей A и AAAA домена до 300 секунд. Тогда в день переключения новый адрес разойдётся за минуты, а не за сутки.

Подготовьте сервер

Начните с базовой защиты: обновления, вход по ключу, файрвол. Всё это собрано в статье Первые 10 шагов после покупки VPS. Дальше два пути.

С панелью управления. ISPmanager, FASTPANEL или aaPanel ставят веб-сервер, PHP нужной версии и базу за несколько кликов и дают привычный по хостингу интерфейс. Тарифы с ними: VPS с ISPmanager, VPS с FASTPANEL, VPS с aaPanel.

Без панели. Для Ubuntu и Debian минимальный набор ставится одной командой, пакеты без номера версии тянут PHP, который идёт с системой:

apt install nginx mariadb-server php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip php-intl

Если на хостинге была более старая или новая версия PHP, чем в системе, её ставят из сторонних репозиториев с пакетами PHP для Ubuntu и Debian.

Учтите главное отличие от хостинга: nginx не читает .htaccess. Редиректы и ЧПУ нужно перенести в конфигурацию сайта. Для WordPress основное правило выглядит так: try_files $uri $uri/ /index.php?$args;. Если правил много, проще поставить Apache за nginx: так работает большинство панелей, и .htaccess продолжает действовать.

Перенесите файлы

Если на хостинге есть доступ по SSH, быстрее всего забрать файлы прямо с VPS через rsync:

rsync -avz user@old-host.example:~/public_html/ /var/www/example.com/

Повторный запуск той же команды докачает только изменившееся, это пригодится в день переезда. Если SSH нет, есть два варианта: собрать архив в файловом менеджере панели и скачать его на сервер через wget или забрать файлы по FTP утилитой lftp:

lftp -u user old-host.example -e "mirror --parallel=4 public_html /var/www/example.com; quit"

Обычный FTP передаёт пароль открытым текстом, поэтому если хостинг поддерживает SFTP или FTPS, используйте их. После копирования отдайте файлы пользователю веб-сервера и выставьте обычные права:

chown -R www-data:www-data /var/www/example.com
find /var/www/example.com -type d -exec chmod 755 {} +
find /var/www/example.com -type f -exec chmod 644 {} +

Перенесите базу данных

Сделайте дамп на хостинге. Через SSH:

mysqldump --single-transaction --default-character-set=utf8mb4 -u user -p dbname | gzip > db.sql.gz

Без SSH дамп выгружают через phpMyAdmin, но большие базы он может не осилить из-за ограничения времени на хостинге; тогда спросите дамп у поддержки или сделайте его по частям. На VPS создайте базу и пользователя и загрузите дамп:

mysql -e "CREATE DATABASE site CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'site'@'localhost' IDENTIFIED BY 'надёжный_пароль';
GRANT ALL PRIVILEGES ON site.* TO 'site'@'localhost';"
zcat db.sql.gz | mysql site

Частая ошибка при загрузке — Unknown collation: 'utf8mb4_0900_ai_ci'. Она значит, что дамп сделан в MySQL 8, а на VPS стоит MariaDB, которая такой сортировки не знает. Либо ставьте на VPS ту же СУБД, что на хостинге, либо замените в дампе сортировку на utf8mb4_unicode_ci.

Затем пропишите новые данные доступа к базе в настройках сайта: для WordPress — wp-config.php, для Битрикса — /bitrix/.settings.php и /bitrix/php_interface/dbconn.php, для Laravel — файл .env. Сервер базы теперь localhost.

Перенесите задания cron

Задания запускайте от пользователя сайта, а не от root: crontab -u www-data -e. Проверьте пути: на хостинге сайт лежал в чём-то вроде /home/user/public_html, на VPS — в /var/www/example.com, и путь к PHP тоже может отличаться (which php). Отдельно проверьте задачи, которые хостер выполнял сам: агенты Битрикса на cron, обмен с 1С, отправку писем из очереди.

Проверьте сайт до смены DNS

Посетители пока ходят на хостинг, а вы можете открыть новый сервер у себя. Пропишите домен с IP сервера в файл hosts своего компьютера (/etc/hosts в Linux и macOS, C:\Windows\System32\drivers\etc\hosts в Windows):

203.0.113.10  example.com www.example.com

Пройдитесь по главной, каталогу, карточке товара, поиску, формам, корзине и входу в админку, загрузите картинку. Параллельно смотрите журнал ошибок: tail -f /var/log/nginx/error.log. Быстро проверить ответ сервера без браузера можно так: curl -I --resolve example.com:80:203.0.113.10 http://example.com/.

Типичные проблемы на этом шаге:

  • 502 Bad Gateway — nginx не видит PHP-FPM: путь к сокету в конфигурации сайта не совпадает с тем, что в настройках пула PHP.
  • Белый экран или ошибка 500 — не хватает расширения PHP. Точное название будет в журнале ошибок.
  • Не загружаются большие файлы — в nginx по умолчанию тело запроса ограничено 1 МБ (client_max_body_size), в PHP — параметрами upload_max_filesize и post_max_size.
  • Ссылки ведут на 404 — не перенесены правила из .htaccess.

Сертификат TLS

Обычная проверка домена для бесплатного сертификата идёт по HTTP на тот адрес, куда сейчас указывает DNS, то есть на хостинг. Поэтому до переключения есть три пути:

  • Получить сертификат проверкой через DNS: certbot certonly --manual --preferred-challenges dns -d example.com -d www.example.com. certbot попросит добавить запись TXT. Такой сертификат сам не продлевается, поэтому после переезда выпустите обычный.
  • Временно перенести текущий сертификат и ключ с хостинга, если панель позволяет их выгрузить.
  • Сменить DNS и сразу выпустить сертификат командой certbot --nginx -d example.com -d www.example.com. Несколько минут сайт по HTTPS будет выдавать ошибку, для небольшого сайта это приемлемо.

После выпуска проверьте автоматическое продление: certbot renew --dry-run.

День переезда

  1. Закройте сайт на запись: включите режим обслуживания или хотя бы остановите приём заказов и комментариев. Для магазина это несколько минут.
  2. Ещё раз запустите ту же команду rsync — она перенесёт только изменения.
  3. Сделайте свежий дамп базы и загрузите его на VPS поверх старого.
  4. Смените запись A домена и www на IP сервера. Если у домена есть запись AAAA с IPv6-адресом хостинга, замените её на IPv6 сервера или удалите, иначе часть посетителей продолжит попадать на старый сервер.
  5. Проверьте, что новые записи видны: dig +short example.com A @8.8.8.8 и dig +short example.com AAAA @8.8.8.8.
  6. Откройте сайт для записи уже на VPS.

Не потеряйте почту

Самая частая неприятность переезда. Посмотрите, куда указывает MX: dig +short example.com MX. Если там example.com или mail.example.com, который ведёт на тот же IP, что и сайт, то смена записи A отправит почту на VPS, где почтового сервера нет. Перед переключением заведите для почты отдельную запись со старым IP хостинга и укажите её в MX, а лучше заранее перенесите почту домена в отдельный почтовый сервис.

Если сайт отправляет письма (заказы, восстановление пароля), проверьте их после переезда. Письма с нового IP без записи SPF попадут в спам: либо добавьте IP сервера в SPF, либо отправляйте письма через SMTP почтового сервиса. Свой почтовый сервер на VPS — отдельная задача, тарифы для неё в подборке VPS для почтового сервера.

После переезда и откат

Не отключайте хостинг одну-две недели. В первые часы проверьте старую базу: если между финальным дампом и сменой DNS кто-то успел оформить заказ на старом сервере, перенесите его вручную. Через пару дней загляните в журнал посещений хостинга: если туда всё ещё ходят люди, где-то остался старый адрес, чаще всего в записи AAAA или www.

Откат простой, пока хостинг работает: верните в DNS старый IP, и благодаря короткому TTL посетители вернутся на хостинг за минуты. Когда всё стабильно, верните TTL к обычным значениям, настройте резервные копии по статье Резервные копии VPS и внешний мониторинг. Тарифы под сайты: VPS для сайта, VPS для WordPress, VPS для интернет-магазина, VPS для Битрикса. Для первой пробной сборки удобна почасовая оплата.

Частые вопросы

Сколько времени занимает перенос сайта на VPS?

Для обычного сайта на CMS подготовка сервера, копирование и проверка занимают от пары часов до дня. Сам день переезда с финальной синхронизацией и сменой DNS — около часа, сайт закрыт на запись несколько минут.

Можно ли перенести сайт без простоя?

Да, если заранее уменьшить TTL записей DNS, собрать и проверить сайт на VPS через файл hosts, а в день переезда закрыть его на запись только на время финальной синхронизации. Читать сайт посетители могут всё это время.

Как перенести сайт, если на хостинге нет SSH?

Файлы — архивом из файлового менеджера панели или по FTP утилитой lftp, базу — экспортом через phpMyAdmin. Если база большая и экспорт обрывается, попросите дамп у поддержки хостинга.

Что будет с почтой домена после смены IP?

Если MX указывает на сам домен или на поддомен с тем же IP, что и сайт, почта уйдёт на VPS и потеряется. Перед переключением укажите в MX отдельную запись со старым IP или перенесите почту в почтовый сервис.

Нужно ли переносить SSL-сертификат?

Не обязательно. Бесплатный сертификат можно выпустить заново: до смены DNS — проверкой через запись TXT, после — обычной проверкой по HTTP. Платный сертификат переносят вместе с закрытым ключом.

Как откатиться, если на VPS что-то пошло не так?

Верните в DNS старый IP хостинга. При коротком TTL посетители вернутся за минуты, поэтому хостинг стоит держать включённым одну-две недели после переезда.

Тарифы по теме

VPS для LaravelРейтинг VPS-хостингов 2026

Ещё в справочнике

  • Когда переезжать с хостинга на VPSVPS не делает сайт быстрее сам по себе: он даёт ресурсы и свободу, но вместе с ними — администрирование. Разбираем, по каким признакам видно, что хостинг стал тесным, когда проблема решается без переезда и как перенести сайт так, чтобы посетители ничего не заметили.
  • Резервные копии VPS: стратегии и инструментыНа VPS резервные копии — ваша забота, даже если в тарифе написано «бэкапы включены». Разбираем, что именно копировать, почему снимка у хостера мало, как настроить restic или BorgBackup за полчаса и как убедиться, что из копии действительно можно восстановиться.
  • Первые 10 шагов после покупки VPS: безопасностьПароли к новому серверу начинают подбирать через несколько минут после того, как у него появился публичный IP. Ниже — десять шагов, которые за час закрывают самые частые дыры: команды для Ubuntu и Debian, отличия для AlmaLinux и Rocky Linux и проверки, без которых легко потерять доступ к собственному серверу.
  • Как выбрать страну для сервераСтавьте сервер туда, где ваши посетители. Если сайт собирает данные россиян, база должна быть в России, этого требует закон. Для аудитории по всей Европе удобны Нидерланды, Германия и Финляндия. Цена почти не решает: у одного хостера сервер в Москве, Амстердаме и Франкфурте обычно стоит одинаково, а заметно дороже только Азия и Австралия.
  • Почасовая оплата: когда она выгоднаПочасовая оплата выгодна, если сервер нужен меньше трёх недель в месяц: на тест, на сборку, на разовую тяжёлую задачу. У большинства хостеров час стоит ровно месячную цену, делённую на 730 часов, так что за полный месяц вы почти не переплачиваете. Переплата прячется в другом: тарифы с почасовой оплатой в среднем дороже, а у сервера, который работает круглый год, помесячная оплата за год вперёд обычно выходит дешевле.
  • Сколько памяти и ядер нужно сайтуБольшинству сайтов хватает 2 ГБ памяти и одного-двух ядер, магазину с тысячами товаров нужно 4 ГБ и два ядра. Память важнее ядер: когда её не хватает, сайт тормозит или падает, а лишнее ядро без памяти почти ничего не даёт. Ниже покажу, как посчитать память под свой сайт и как узнать, сколько он тратит на самом деле.
  • KVM или OpenVZ: что выбратьВ 2026 году почти всегда стоит брать KVM: он дороже OpenVZ на десятки рублей в месяц, зато на нём работает всё, от Docker до Windows. OpenVZ оправдан в узком случае, и ниже видно, в каком, а в конце — команды, которыми можно проверить свой сервер за минуту.
  • NVMe или SSD: есть ли разница для сайтаДля небольшого сайта разница между NVMe и SSD почти незаметна: страницы отдаются из памяти, а не с диска. Она появляется у магазинов и сайтов с большой базой данных. При этом NVMe у того же хостера стоит всего на 45–80 ₽ в месяц дороже, а иногда и дешевле, так что решает обычно не тип диска, а объём и то, как хостер его ограничил.
  • Что такое VPS простыми словамиVPS — это часть мощного физического сервера, которую вам сдают в аренду и которая ведёт себя как отдельный компьютер: со своей системой, своим IP-адресом и полным доступом. Ниже — чем он отличается от хостинга, кому нужен, сколько стоит и что проверить сразу после покупки.
  • VPS для Telegram-бота: что нужно боту и как выбрать тарифБоту с меню и парой команд хватает самого дешёвого сервера, а бот с рассылками, файлами и базой упирается совсем в другие ресурсы. Разбираем, что на самом деле потребляет бот, какие ограничения Telegram влияют на выбор сервера и как не переплатить.
  • Windows VPS: лицензия, RDP и безопасность входаСервер с Windows дороже Linux не только из-за памяти: в цену входит лицензия, и от того, как она оформлена, зависит, законно ли вы работаете и сколько человек может подключиться. А открытый RDP — самая частая причина взлома таких серверов. Разбираем обе темы.
  • Как проверить пинг и скорость VPS до оплатыЦифры в тарифе не говорят, какой будет задержка до ваших пользователей и как быстро работает диск. Большую часть этого можно измерить до оплаты, остальное — в первый час работы сервера. Разбираем инструменты и то, как читать результаты.
  • Корпоративная сеть на VPS: удалённый доступ к офисуАрендованный сервер может стать центром частной сети компании: через него сотрудники из дома и филиалы подключаются к 1С, файловому хранилищу, CRM и Git. Разбираем схемы, протоколы, требования к серверу и базовую защиту.
  • Как выбрать VPS: 7 параметров, которые решаютДва тарифа с одинаковыми «2 ядра, 4 ГБ, 50 ГБ» могут отличаться по скорости в разы и по цене через год — вдвое. Разбираем, что стоит за каждой строкой тарифа и на что смотреть до оплаты.
  • VPS или VDS: есть ли разница и что на самом деле важноНа российском рынке VPS и VDS чаще всего означают одно и то же — виртуальный сервер. Разница, которая действительно влияет на работу, прячется не в названии, а в типе виртуализации и в том, гарантированы ли ресурсы.