Перенос WordPress на VDS: порядок, при котором сайт не ляжет
Переход с виртуального хостинга на VDS отличается от переезда между двумя хостингами тем, что на VDS ничего не настроено заранее: нет ни веб-сервера, ни PHP, ни базы данных. Их придётся поднять до того, как копировать файлы. Ниже — оба рабочих способа и порядок, который не оставляет сайт без доступа даже на пару минут.
- Разверните на VDS LEMP или LAMP стек (Nginx/Apache + PHP-FPM + MySQL) той же или более новой версии PHP, что и на старом хостинге.
- Скопируйте файлы сайта и снимите дамп базы, не останавливая старый сайт.
- Импортируйте базу и файлы на VDS, настройте виртуальный хост под тестовый домен или IP.
- Проверьте сайт на VDS через файл
hosts, не трогая DNS реального домена. - Переключите DNS только после того, как убедились, что сайт работает корректно.
Способ 1: плагин All-in-One WP Migration
Подходит для сайтов до 512 МБ на бесплатной версии плагина — это лимит на размер экспортируемого архива, установленный самим плагином.
- Установите плагин All-in-One WP Migration на старом сайте через админку WordPress.
- Экспортируйте сайт: WP Migration → Export → File, дождитесь скачивания файла
.wpress. - Установите чистый WordPress на VDS той же версии, что и на старом сайте.
- Установите тот же плагин на новом сайте и импортируйте файл через Import.
- Плагин сам обновит URL сайта в базе данных — вручную ничего менять не нужно.
Способ 2: ручной перенос через mysqldump и rsync
Подходит для сайтов любого размера и даёт больше контроля над процессом.
Файлы
rsync -avz --progress -e ssh /var/www/old-site/ root@vds-ip:/var/www/new-site/
База данных
mysqldump -u user -p --single-transaction wordpress_db > wp_dump.sql
scp wp_dump.sql root@vds-ip:/root/
mysql -u user -p wordpress_db < wp_dump.sql
Замена адреса домена в базе
Если тестируете сайт под временным адресом, а не под боевым доменом, ссылки в базе нужно заменить WP-CLI, а не вручную через SQL — WordPress хранит сериализованные массивы, и обычный UPDATE их ломает.
wp search-replace 'https://old-domain.com' 'https://new-domain.com' --all-tables
Настройка wp-config.php на новом сервере
define('DB_NAME', 'wordpress_db');
define('DB_USER', 'wp_user');
define('DB_PASSWORD', 'новый_пароль');
define('DB_HOST', 'localhost');
Сравнение способов переноса
| Способ | Лимит по размеру | Нужен SSH | Контроль над процессом |
|---|---|---|---|
| All-in-One WP Migration (бесплатно) | до 512 МБ | нет | минимальный |
| All-in-One WP Migration (Unlimited Extension) | без ограничения | нет | минимальный |
| Ручной перенос (rsync + mysqldump) | без ограничения | да | полный |
Проверка на VDS до переключения DNS
echo "IP_ВАШЕГО_VDS example.com www.example.com" | sudo tee -a /etc/hosts
Откройте сайт в браузере — он подключится к VDS по домену, при этом реальные посетители продолжат видеть старый хостинг. Проверьте вход в админку, оформление заказа (если это интернет-магазин на WooCommerce) и корректность загрузки изображений из wp-content/uploads.
Типичные ошибки после переноса
| Симптом | Причина и решение |
|---|---|
| Белый экран без ошибок | Не хватает PHP-расширения (обычно gd или mysqli) — установите на VDS то же окружение, что было на старом хостинге |
| Ошибка «Error establishing a database connection» | Неверные данные в wp-config.php или MySQL слушает не localhost, а сокет — проверьте DB_HOST |
| Изображения и стили не загружаются | В базе остались старые ссылки на домен — выполните wp search-replace ещё раз |
| 404 на всех страницах, кроме главной | Не настроены правила ЧПУ в Nginx/Apache — добавьте try_files для Nginx или включите mod_rewrite для Apache |
Откат при неудачном переносе
- Не удаляйте сайт на старом хостинге, пока VDS не отработает минимум сутки.
- Если после переключения DNS сайт работает нестабильно, верните старые A-записи домена.
- Исправьте проблему на VDS без спешки и повторите проверку через hosts перед повторным переключением.
Когда этот способ не подходит
Если на VDS нет опыта администрирования сервера, самостоятельная настройка LEMP-стека и последующая поддержка (обновления PHP, безопасность, бэкапы) потребуют больше времени, чем экономия от перехода с хостинга. В таком случае разумнее заказать бесплатную миграцию силами ZevsHost на управляемый VDS с готовой панелью.
Проверка результата
- Сравните число записей в таблице
wp_postsна старом и новом сайте. - Проверьте, что все плагины активны и не требуют повторной активации лицензии.
- Прогоните сайт через PageSpeed Insights — на VDS скорость обычно выше, чем на общем хостинге.
- Настройте автоматический бэкап на новом сервере ещё до переключения DNS — см. статью о синхронизации и резервном копировании через rsync.