Перенесення 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 перед повторним перемиканням.
Коли цей спосіб не підходить
Якщо немає досвіду адміністрування сервера, самостійне налаштування LEMP-стека і подальша підтримка (оновлення PHP, безпека, резервні копії) потребують більше часу, ніж економія від переходу з хостингу. У такому разі розумніше замовити безкоштовну міграцію силами ZevsHost на керований VDS з готовою панеллю.
Перевірка результату
- Порівняйте кількість записів у таблиці
wp_postsна старому і новому сайті. - Перевірте, що всі плагіни активні і не потребують повторної активації ліцензії.
- Прожене сайт через PageSpeed Insights — на VDS швидкість зазвичай вища, ніж на спільному хостингу.
- Налаштуйте автоматичне резервне копіювання на новому сервері ще до перемикання DNS — див. статтю про синхронізацію і резервне копіювання через rsync.