Як перенести WordPress на VPS з CloudPanel: покрокова інструкція

Перенос WordPress-сайту зі звичайного хостингу на VPS з CloudPanel за годину: експорт, створення сайту і бази, імпорт, перевірка через hosts, SSL і типові помилки.

Ця інструкція для тих, хто переносить WordPress-сайт зі звичайного хостингу на VPS з панеллю CloudPanel і хоче зробити це сам. Звичайний сайт-візитка чи невеликий магазин переїжджає приблизно за годину, і весь цей час старий сайт продовжує працювати. Команди перевірені на CloudPanel 6.

Що підготувати

  • Доступ до старого хостингу: панель керування або FTP і phpMyAdmin.
  • Доступ до DNS домену: у реєстратора або в Cloudflare.
  • VPS із встановленою CloudPanel і доступ адміністратора до панелі.
  • За добу до переїзду зменште TTL A-запису домену до 300 секунд. Тоді після зміни адреси сайт відкриється з нового сервера вже за кілька хвилин, а не за кілька годин.

Крок 1. Заберіть файли і базу зі старого хостингу

Файли. У файловому менеджері хостингу заархівуйте папку сайту (зазвичай public_html або www) і скачайте архів. Якщо на хостингу є SSH, швидше так:

tar -czf site.tar.gz -C ~/public_html .

База даних. Назву бази, користувача і пароль видно у файлі wp-config.php. Експортуйте базу в phpMyAdmin (вкладка «Експорт», формат SQL) або через SSH:

mysqldump -u ІМ'Я_КОРИСТУВАЧА -p НАЗВА_БАЗИ | gzip > db.sql.gz

Крок 2. Створіть сайт у CloudPanel

У CloudPanel натисніть Add Site і оберіть Create a PHP Site. Пункт «Create a WordPress Site» не підходить: він ставить новий порожній WordPress, а нам потрібен порожній сайт під ваші файли. Вкажіть:

  • Application: WordPress. Це шаблон налаштувань веб-сервера саме під WordPress.
  • Domain Name: ваш домен, наприклад www.example.com.ua.
  • PHP Version: та сама або новіша, ніж на старому хостингу. Версію видно в панелі старого хостингу або в розділі WordPress «Інструменти → Здоров’я сайту → Інформація».
  • Site User і пароль. Під цим користувачем ви потім заходитимете по SFTP.

Те саме однією командою від root:

clpctl site:add:php --domainName=www.example.com.ua --phpVersion=8.3 --vhostTemplate='WordPress' --siteUser=example --siteUserPassword='НадійнийПароль'

Файли сайту житимуть у папці /home/example/htdocs/www.example.com.ua.

Крок 3. Створіть базу даних

У налаштуваннях сайту відкрийте вкладку Databases → Add Database і запишіть назву бази, користувача і пароль. Або командою:

clpctl db:add --domainName=www.example.com.ua --databaseName=example_wp --databaseUserName=example_wp --databaseUserPassword='ІншийНадійнийПароль'

Крок 4. Завантажте файли

Підключіться по SFTP (наприклад, через FileZilla) до IP-адреси сервера під користувачем сайту і завантажте архів у папку сайту. Потім розпакуйте його через SSH:

cd /home/example/htdocs/www.example.com.ua
tar -xzf site.tar.gz && rm site.tar.gz

Якщо розпаковували від root, поверніть файлам власника, інакше WordPress не зможе оновлюватися і завантажувати картинки:

chown -R example:example /home/example/htdocs/www.example.com.ua

Крок 5. Імпортуйте базу

Завантажте db.sql.gz на сервер і виконайте в папці з файлом:

clpctl db:import --databaseName=example_wp --file=db.sql.gz

Якщо працювати в консолі незручно, базу можна імпортувати через phpMyAdmin, він відкривається з вкладки Databases у CloudPanel.

Крок 6. Вкажіть нову базу у wp-config.php

Відкрийте wp-config.php у папці сайту і замініть чотири рядки на дані з кроку 3:

define( 'DB_NAME', 'example_wp' );
define( 'DB_USER', 'example_wp' );
define( 'DB_PASSWORD', 'ІншийНадійнийПароль' );
define( 'DB_HOST', 'localhost' );

Крок 7. Перевірте сайт до перемикання домену

Відвідувачі поки що бачать старий сервер. Щоб побачити новий тільки на своєму комп’ютері, додайте рядок у файл hosts (на Windows він лежить у C:\Windows\System32\drivers\etc\hosts, відкривати блокнотом від імені адміністратора; на macOS і Linux це /etc/hosts):

IP_НОВОГО_СЕРВЕРА  example.com.ua www.example.com.ua

Відкрийте сайт, пройдіться сторінками, увійдіть в адмінку, оформіть тестове замовлення, якщо це магазин. Браузер може лаятися на сертифікат, бо SSL ще не встановлено, на цьому етапі це нормально. Після перевірки видаліть рядок із hosts.

Крок 8. Перемкніть домен і встановіть SSL

У DNS домену замініть IP в A-записах (для домену і для www) на адресу нового сервера. Коли домен почне відкриватися з нового сервера, встановіть безкоштовний сертифікат: у CloudPanel вкладка SSL/TLS → Actions → New Let’s Encrypt Certificate. Або командою:

clpctl lets-encrypt:install:certificate --domainName=www.example.com.ua --subjectAlternativeName=example.com.ua

Детальніше про сертифікати в статті Безкоштовні SSL-сертифікати на VPS через CloudPanel.

Крок 9. Що перевірити після переїзду

  • Пошта. Якщо пошта на домені працювала на старому хостингу, не змінюйте MX-записи, поки не вирішите, де вона житиме далі. Змінюйте лише A-записи сайту.
  • Завдання за розкладом. Якщо на старому хостингу були cron-завдання, перенесіть їх у вкладку Cron Jobs сайту в CloudPanel.
  • Кеш. Очистіть кеш плагінів кешування і Cloudflare, якщо він є.
  • Старий хостинг не відключайте ще тиждень. Якщо щось забули, файли і база будуть під рукою.

Якщо щось пішло не так

«Error establishing a database connection». Неправильні дані у wp-config.php. Звірте назву бази, користувача і пароль з вкладкою Databases.

Білий екран або помилка 500. Найчастіше не та версія PHP або плагін, несумісний з новішою PHP. Подивіться журнал помилок у вкладці Logs сайту і за потреби змініть версію PHP у вкладці Settings.

Нескінченне переадресування або «змішаний вміст» після SSL. У базі записана адреса з http://. На CloudPanel вже встановлено WP-CLI, тож це виправляється однією командою з папки сайту від користувача сайту:

wp search-replace 'http://www.example.com.ua' 'https://www.example.com.ua' --skip-columns=guid

Помилка 403 або WordPress не може завантажити файли. Неправильний власник файлів. Поверніть його командою chown із кроку 4.

Не хочете робити це самі

На серверах VPSio.cloud CloudPanel вже встановлена, а перенос сайту ми робимо безкоштовно: файли, базу і перевірку перед перемиканням. Старий хостинг до перевірки не чіпаємо. Сервери працюють у Німеччині та Фінляндії, тож сайт не залежить від відключень світла в Україні, про це окремо в статті Де фізично працює ваш сайт і що робити, якщо дата-центр зникне.