Как перенести 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 нажмите Добавить сайт и выберите Создать сайт на PHP. Пункт «Create a WordPress Site» не подходит: он устанавливает новую пустую версию WordPress, а нам нужен пустой сайт для ваших файлов. Укажите:

  • Применение: WordPress. Это шаблон настроек веб-сервера, специально предназначенный для WordPress.
  • Доменное имя: ваш домен, например www.example.com.ua.
  • Версия PHP: та же самая или более новая, чем на старом хостинге. Версию можно увидеть в панели управления старого хостинга или в разделе WordPress «Инструменты → Состояние сайта → Информация».
  • Пользователь сайта и пароль. Под этим именем пользователя вы затем будете подключаться по 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. Создайте базу данных

В настройках сайта откройте вкладку Базы данных → Добавить базу данных и запишите название базы, имя пользователя и пароль. Или с помощью команды:

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 → Действия → Новый сертификат Let’s Encrypt. Или командой:

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

Подробнее о сертификатах — в статье Бесплатные SSL-сертификаты на VPS через CloudPanel.

Шаг 9. Что нужно проверить после переезда

  • Почта. Если почта на домене работала на старом хостинге, не изменяйте MX-записи, пока не решите, где она будет размещена в дальнейшем. Изменяйте только A-записи сайта.
  • Задания по расписанию. Если на старом хостинге были cron-задания, перенесите их во вкладку Задания Cron сайта в CloudPanel.
  • Кэш. Очистите кэш плагинов кэширования и Cloudflare, если таковой имеется.
  • Старый хостинг Не отключайте ещё неделю. Если что-то забыли, файлы и база будут под рукой.

Если что-то пошло не так

«Ошибка при установке соединения с базой данных». Неверные данные в wp-config.php. Сверьте название базы данных, имя пользователя и пароль с вкладкой «Databases».

Белый экран или ошибка 500. Чаще всего это связано с несоответствующей версией PHP или плагином, несовместимым с более новой версией PHP. Просмотрите журнал ошибок на вкладке Журналы сайта и, при необходимости, измените версию PHP на вкладке Настройки.

Бесконечная переадресация или «смешанное содержимое» после 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 уже установлена, а перенос сайта мы осуществляем бесплатно: файлы, базу данных и проверку перед переключением. Старый хостинг до проверки не трогаем. Серверы работают в Германии и Финляндии, поэтому сайт не зависит от отключений электричества в Украине, об этом отдельно в статье Где физически размещен ваш сайт и что делать, если дата-центр исчезнет.