Plesk — распространённая хостинг-панель, и многие сайты годами работали именно на ней. Но при смене сервера или провайдера сайт приходится переносить на другую панель, например на ISPmanager. Собственный формат резервных копий Plesk полноценно восстанавливается только в Plesk, поэтому при переходе на другую панель сайт разбирают на части и собирают заново на новом месте. Это несложно, но если не знать нескольких тонкостей, легко потерять почту или DNS-записи.
Где Plesk хранит данные сайта
В Plesk на Linux каждый домен находится в папке /var/www/vhosts/misol.uz/, а файлы сайта — во вложенной папке httpdocs. Поддомены и дополнительные домены обычно лежат в отдельных каталогах рядом. Базы хранятся на сервере MySQL или MariaDB, почтовые ящики — в почтовой службе сервера. Пользователь виртуального хостинга, как правило, имеет доступ только к папке своего домена и к phpMyAdmin, но не к серверным каталогам почты.
Важно помнить, что Plesk бывает и на Windows. Если сайт написан на ASP.NET и использует MS SQL, перенести его на PHP-хостинг под Linux простым копированием нельзя — это уже переработка сайта. Поэтому до начала переезда уточните, на какой платформе он работает.
Пример: сайт частной школы в Бухаре
Допустим, сайт частной школы в Бухаре на Joomla размещён на Plesk. На нём есть новости, страницы преподавателей и форма заявки на поступление. DNS домена misol.uz обслуживает сам сервер Plesk, то есть NS-записи указывают на него, а директор и приёмная комиссия пользуются почтой на @misol.uz. Именно здесь чаще всего ошибаются: сайт переносят, меняют NS, и почта внезапно перестаёт работать, потому что MX и другие записи остались на старом сервере.
Забираем файлы
Файлы можно заархивировать в файловом менеджере Plesk: выделите папку httpdocs и создайте архив. При доступе по SSH быстрее сделать это в терминале:
cd /var/www/vhosts/misol.uz
tar -czf ~/maktab-fayllar.tar.gz -C httpdocs .
Если доступен только FTP, скачайте всю папку httpdocs программой вроде FileZilla. Тысячи мелких файлов по FTP идут медленно, так что по возможности сначала создайте архив в панели, а потом скачайте один файл.
Правильный экспорт базы
В Plesk phpMyAdmin открывается для каждой базы из раздела баз данных. Если баз несколько, экспортируйте каждую из её собственного окна phpMyAdmin, иначе другая база может выглядеть пустой или выгрузится не та. При экспорте выберите режим «Custom» и включите заключение имён таблиц и столбцов в обратные кавычки (backquotes). Без этого столбцы с именами-зарезервированными словами вроде order или key вызовут синтаксическую ошибку при импорте.
С доступом по SSH экспорт надёжнее сделать командой:
mysqldump --single-transaction --default-character-set=utf8mb4 \
-u maktab_user -p maktab_db | gzip > ~/maktab_db.sql.gz
После экспорта убедитесь, что в конце файла есть строка -- Dump completed. Если её нет, выгрузка могла оборваться на середине.
Заранее переносим DNS-записи
Если DNS домена обслуживает Plesk, перед сменой NS выпишите все записи из раздела DNS-настроек домена. Самые важные:
- A и AAAA, включая
www,mailи поддомены. - MX — определяют, куда доставляется почта.
- TXT: SPF, DKIM, DMARC и записи подтверждения для Google, Yandex и других сервисов.
- CNAME и SRV, если подключены внешние сервисы.
Полезно проверить записи и снаружи, чтобы не упустить то, чего не видно в панели:
dig misol.uz MX +short
dig misol.uz TXT +short
dig www.misol.uz A +short
Меняйте NS только после того, как все записи полностью созданы в новом DNS. В кабинете sayt.uz это делается на странице DNS домена, там же меняются и NS-серверы.
Переносим почту
Удобнее всего копировать письма по IMAP. Утилита imapsync одновременно подключается к ящику на старом и новом сервере и переносит письма вместе с папками. Для этого нужен пароль каждого ящика; если он неизвестен, его можно сбросить в Plesk и выдать сотруднику новый.
imapsync --host1 eski-server.example.uz --user1 direktor@misol.uz --password1 'ESKI_PAROL' \
--host2 mail.example.uz --user2 direktor@misol.uz --password2 'YANGI_PAROL' \
--ssl1 --ssl2
Запустите синхронизацию один раз до смены NS и ещё раз через день-два после. При повторном запуске imapsync перенесёт только новые письма, и то, что успело прийти на старый сервер, не потеряется.
Адаптируем конфигурацию
В Joomla файл configuration.php, помимо данных базы, содержит полные пути к временной папке и папке логов. После переезда с Plesk они указывают на старый /var/www/vhosts/..., и при входе в админку или загрузке файлов появляются ошибки:
public $host = 'localhost';
public $db = 'maktab_db';
public $user = 'maktab_user';
public $password = 'yangi-parol';
public $log_path = '/var/www/foydalanuvchi/data/www/misol.uz/administrator/logs';
public $tmp_path = '/var/www/foydalanuvchi/data/www/misol.uz/tmp';
В WordPress обычно достаточно обновить данные базы в wp-config.php. Если в Plesk были вручную прописаны дополнительные директивы nginx или Apache, перепишите и их: они хранятся в настройках панели, а не в файлах сайта, и в архив не попадают. Именно там часто прячутся редиректы, правила кэширования и защиты.
Финальная проверка и закрытие старого сервера
Проверьте сайт на новом сервере через файл hosts, а в случае школы обязательно отправьте тестовую заявку: письма формы зависят от настроек почты. Когда всё работает, смените NS или A-записи и после того, как DNS начнёт указывать на новый IP, выпустите SSL-сертификат. Старый хостинг на Plesk держите ещё хотя бы одну-две недели и за это время ещё раз заберите пришедшие туда письма через imapsync.