Миграция · 14 min read · Sep 12, 2025

Как мигрировать ISPConfig 2, ISPConfig 3, Confixx, CPanel или Plesk на ISPConfig 3.2 или ISPConfig 3.3 (одиночный сервер)

В этом руководстве мы покажем, как использовать инструмент миграции ISPConfig 2.0 для миграции одиночного сервера на новый сервер ISPConfig 3.x. Инструмент миграции является частью набора инструментов миграции ISPConfig, который доступен здесь.

Инструмент миграции ISPConfig можно использовать для миграции следующих панелей управления хостингом на сервер ISPConfig 3.x:

  • ISPConfig 2
  • ISPConfig 3 до 3.3
  • Plesk 10 - 12.5
  • Plesk Onyx
  • Confixx
  • Cpanel

В этом учебном пособии мы мигрируем сервер ISPConfig 3.x на новую систему с ISPConfig 3.2 или 3.3. Миграция с других поддерживаемых панелей управления хостингом выполняется аналогично. Инструмент миграции проведет вас шаг за шагом через процесс миграции.

Предварительные условия и примечания

  • ISPConfig 3.x на исходном сервере.
  • ISPConfig 3.1.7 или выше на целевом сервере.
  • PHP 5.3+ с поддержкой JSON, mcrypt, OpenSSL и mbstring на исходном сервере.
  • Старый и новый серверы не должны быть подключены к одному и тому же мастер-серверу. Если они подключены к одному мастеру, используйте вместо этого ISPCopy (который также является частью набора инструментов миграции).
  • Лицензия на набор инструментов миграции.
  • Сертификаты Let’s Encrypt: Старый и новый серверы должны использовать одного и того же клиента Let’s Encrypt. Если ваш старый сервер использует Certbot, убедитесь, что новая система также использует Certbot, а не Acme.sh. Если вы устанавливаете новый сервер с помощью автоинсталлятора ISPConfig и ваш старый сервер использует certbot, то используйте командный переключатель –use-certbot в автоинсталляторе, чтобы установить certbot вместо acme.sh на новом сервере.
  • Мультисерверные настройки: Инструмент миграции способен мигрировать мультисерверные настройки ISPConfig. Целью такой миграции может быть либо другая мультисерверная настройка, либо вы можете объединить мультисерверную настройку в новую одиночную серверную настройку. Инструмент миграции должен быть запущен на каждом (старом) узле мультисерверной настройки один за другим, целевая система ISPConfig является либо мастер-узлом новой мультисерверной настройки (инструмент миграции затем покажет диалог, в котором вы можете выбрать, на какой новый узел мультисерверной настройки будут мигрированы данные), либо новым одиночным сервером.

Создание удаленного пользователя в ISPConfig

Вам нужен удаленный пользователь на целевом сервере ISPConfig.

Перейдите в Система -> Удаленный пользователь

Добавить удаленного пользователя в ISPConfig.

Нажмите кнопку Добавить нового пользователя.

Введите имя пользователя и пароль для удаленного пользователя, например, “remoter” и убедитесь, что вы отметили все флажки. Затем нажмите “сохранить”.

Права удаленного пользователя

Если вы используете версию ISPConfig 3.1.11 на целевом сервере, отредактируйте файл / usr /local/ ispconfig /security/security_settings.ini от имени пользователя root:

nano / usr /local/ ispconfig /security/security_settings.ini

и измените значения ids_anon_enabled и ids_user_enabled с ‘yes’ на ‘no’.

....  
[ids]  
ids_anon_enabled=no  
ids_anon_log_level=1  
ids_anon_warn_level=5  
ids_anon_block_level=20  
ids_user_enabled=no  
ids_user_log_level=1  
ids_user_warn_level=10  
ids_user_block_level=25  
ids_admin_enabled=no  
ids_admin_log_level=1  
ids_admin_warn_level=5  
ids_admin_block_level=100  
sql_scan_enabled=yes  
sql_scan_action=warn  
apache_directives_scan_enabled=yes  
nginx_directives_scan_enabled=yes  
....

IDS можно снова включить, когда миграция завершена. Если вы используете ISPConfig 3.1.12 или новее, то это изменение не требуется.

Далее, пожалуйста, проверьте, установлен ли модуль php-soap на целевом сервере. Если он не установлен, установите его сейчас. На Debian и Ubuntu вы можете установить модуль PHP Soap с помощью apt:

apt-get install php-soap

Еще одно предварительное условие заключается в том, что на целевом и исходном серверах должен быть установлен rsync. Пожалуйста, проверьте, например:

rsync --version

на обоих узлах, что rsync установлен. Если он не установлен, установите пакет rsync операционной системы. Например, с:

apt-get install rsync

на Debian и Ubuntu или с:

yum install rsync

на CentOS.

На целевом сервере может быть создан файл /etc/ssh/sshd_config.d/custom.conf, созданный автоинсталлятором ISPConfig, который предотвращает работу инструмента миграции. Этот файл необходимо удалить, если он существует. Выполните эту команду на целевом сервере от имени пользователя root, чтобы удалить файл:

rm /etc/ssh/sshd_config.d/custom.conf

Все последующие шаги выполняются на исходном сервере, если не указано иное.

Загрузите и извлеките инструмент миграции

cd /root  
mkdir migration  
cd migration  
wget https://www.ispconfig.org/downloads/ispconfig_migration_toolkit-latest.zip  
unzip ispconfig_migration_toolkit-latest.zip  
mv ispconfig_migration_toolkit/ispc3-migration-tool-*.tar.gz /root/migration/migtool.tar.gz  
tar xzf migtool.tar.gz  
rm -f migtool.tar.gz

Подготовьте безпарольный вход (необязательно)

Во время миграции будет установлено SSH-соединение для передачи настроек и данных с исходного на целевой сервер(ы). Для этого исходный сервер должен иметь возможность подключаться к целевым без пароля.

Вы можете либо:

  • Настроить безпарольный вход самостоятельно (добавить открытый ключ исходного сервера в файл authorized_keys целевого root).
  • Либо разрешить доступ root через ssh к целевому серверу по паролю (временно). Инструмент миграции затем вызовет ssh-keygen и ssh-copy-id за вас. Это прямые системные вызовы, поэтому, если вам будет предложено ввести пароль root для целевого сервера на этом этапе, ввод НЕ считывается инструментом миграции, это прямой запрос от системной команды ssh-copy-id.

Запустите миграцию (пробный запуск)

./migrate

Если вы хотите запустить инструмент на конкретной версии PHP (например, PHP 7.4 на Ubuntu 22.04), используйте эту команду вместо этого:

PHP=/usr/bin/php7.4 ./migrate

Результат любой из вышеуказанных команд будет выглядеть следующим образом:

Добро пожаловать в инструмент миграции ISPConfig3 V2 Версия 2.0.0

Хотя этот инструмент ничего не изменяет на исходном сервере, вы должны
ВСЕГДА делать РЕЗЕРВНУЮ КОПИЮ всех ваших данных перед миграцией на новый сервер!

Вам необходимо настроить некоторые предварительные условия для использования этого инструмента:
 * создайте удаленного пользователя (система -> удаленные пользователи) в вашей ЦЕЛЕВОЙ системе ISPConfig3 и предоставьте ему ВСЕ права
 * убедитесь, что эта (ИСХОДНАЯ система) может достичь удаленного API ЦЕЛЕВОЙ системы

* Отказ от гарантий *
ISPConfig отказывается от всех других гарантий в максимальной степени, разрешенной законом, будь то явные или подразумеваемые,
включая, помимо прочего, любые подразумеваемые гарантии права собственности, ненарушения, интеграции, товарности или
пригодности для конкретной цели.
Продолжая использовать это программное обеспечение, вы соглашаетесь с этим.

Прежде всего, самый важный вопрос:
Хотите ли вы сделать реальную миграцию или пробный запуск? (dry, migrate): dry

Мы хотим сначала запустить в режиме пробного запуска, поэтому вводим dry здесь.

Следующие модули доступны:
        1. Мигратор Confixx в ISPConfig 3 (confixx)
        2. Мигратор Plesk (10.5 - 17.5) в ISPConfig 3 (plesk)
        3. Мигратор ISPConfig 2 в 3 (ispconfig2)
        4. Мигратор ISPConfig 3 в ISPConfig 3 (ispconfig3)

Какой из них соответствует вашей ИСХОДНОЙ системе? (confixx, plesk, ispconfig2, ispconfig3): ispconfig3

Инструмент миграции должен знать, какую панель управления вы используете на своем исходном сервере. Он пытается распознать необходимый модуль на исходном сервере, поэтому вы обычно можете просто нажать ENTER.

Введите этот (ИСХОДНЫЙ) IP-адрес сервера, который используется для исходящих соединений [192.168.10.10]: 123.123.123.123

Инструмент миграции должен знать, какой IP-адрес на исходном сервере используется для исходящих соединений, т.е. какой IP-адрес другие серверы увидят, когда исходный сервер подключается к ним. Инструмент пытается угадать IP-адрес, но вам может понадобиться изменить значение, если вы используете частную сеть, например.

Имя удаленного пользователя системы ЦЕЛЕВОГО ISPConfig3 []: remoter
Пароль для этого удаленного пользователя []: yourremotepassword
URL удаленной системы (например, https://yourdomain.com:8080/remote/) []: https://www.example.com:8080/remote/
Вы предоставили мне удаленного пользователя 'remoter' с паролем 'yourremotepassword'
И я должен подключиться к 'https://www.example.com:8080/remote/'
Это правильно? (y, n): y

Предоставьте инструменту миграции данные удаленного пользователя, которого вы создали на целевом сервере, и подтвердите свой ввод “y”. Затем инструмент миграции попытается подключиться к удаленному API вашей целевой системы.

Теперь мне нужно внести некоторые изменения в конфигурацию вашей ЦЕЛЕВОЙ системы ISPConfig3.
        1.) Включить модуль домена, если это необходимо
        2.) Удалить префиксы клиентов (будет отменено автоматически в конце)
        3.) Включить вход для почтовых аккаунтов, если это необходимо

Тестирование соединения MySQL ... ОК

Какой основной публичный(!) IP целевого сервера www.example.com? [123.123.123.123]: [ENTER]

Инструмент миграции изменит некоторые настройки ISPConfig на целевом сервере (эти изменения не будут выполнены, когда выполняется в режиме пробного запуска) и протестирует соединение с сервером MySQL. Он пытается угадать учетные данные MySQL, просматривая некоторые системные файлы, но в конечном итоге вам будет предложено ввести пароль root для MySQL.

Далее вам нужно указать публичный IP целевого сервера. Он будет предварительно извлечен из DNS, но вам может понадобиться его скорректировать, особенно если вы используете одно и то же имя хоста на исходном и целевом серверах.

Хотите ли вы, чтобы я перезаписал/обновил существующие записи с тем же именем? (y, n): y
Теперь вы можете установить имена записей, которые не должны быть перезаписаны.
Вы должны использовать это, если планируете импортировать данные нескольких серверов в многосерверную установку.
Если этот инструмент находит имя, которое уже присутствует, он ОБНОВЛЯЕТ данные с ИСХОДНЫМИ данными!
Если этот инструмент находит имя, которое вы отметили как не подлежащее перезаписи, оно либо
         - добавляет _2, _3 и т.д. к этому имени и создает новую запись, либо
         - добавляет префикс сервера, если он указан с помощью аргумента --server-prefix

Инструмент миграции позволяет объединить несколько серверов в одну цель. При этом может возникнуть конфликт имен пользователей на исходных серверах, например, если у вас есть две базы данных с именем “testdatabase”. Если вы ответите “y” на этот вопрос, вторая база данных заменит первую. Если вы ответите “n”, то имя второй базы данных будет изменено на “testdatabase_2”.

Обязательно отвечайте “y” при выполнении миграции одиночного сервера, иначе вы создадите дубликаты, если запустите инструмент миграции несколько раз на одном и том же исходном сервере.

У вас в данный момент 0 имен FTP, отмеченных:

Теперь вы можете добавить дополнительные имена в этот список. Просто введите их по одному или предоставьте запятую-разделенный список.
Чтобы удалить одно или несколько имен из списка, добавьте /DELETE к вашему вводу.
Чтобы очистить все имена из списка, введите /CLEAR.
Пустой ввод перейдет к следующему шагу.
Ваш выбор : [ENTER]

Инструмент миграции предлагает вам отметить некоторые имена пользователей для FTP, баз данных, клиентов и т.д. как “зарезервированные”. Это означает, что они не будут перезаписаны, как упоминалось в предыдущем разделе. Обычно вы оставляете это пустым, но в некоторых случаях вы можете предотвратить импорт имен пользователей, таких как “admin” или “administrator”. Поэтому вы можете ввести их здесь, что приведет к переименованию импортированных имен в “admin_2” и т.д.

Вопрос повторяется для различных типов услуг (FTP, базы данных, клиенты, почтовые пользователи).

Какое имя базы данных вашей ИСХОДНОЙ установки ISPConfig 3? [dbispconfig]: [ENTER]

Теперь инструмент спрашивает имя базы данных на исходном сервере, которое содержит данные панели управления. Пожалуйста, проверьте, правильно ли распознано имя базы данных, и измените его, если это необходимо.

Хотите ли вы мигрировать только некоторые услуги или все?                                                                 
Доступные услуги: клиент, веб, почта, ftp, база данных, cronjob, dns, выставление счетов                                               
Пожалуйста, введите одну или несколько услуг (разделенных запятыми) или оставьте пустым для всех: [ENTER]

Новый инструмент миграции может мигрировать только подмножество услуг, например, только мигрировать почтовые аккаунты и пропустить веб-сайты и т.д.

Мы хотим мигрировать все услуги, поэтому просто оставляем ввод пустым и нажимаем ENTER.

Чтобы скопировать данные веб-сайта, мне нужен доступ по SSH к целевому веб-серверу.
Пожалуйста, убедитесь, что вход root через SSH разрешен. На целевом откройте /etc/ssh/sshd_config
и установите PermitRootLogin на yes или без пароля.
Вы можете отменить это, как только миграция будет завершена.

Какой IP для целевого веб-сервера для подключения по SSH? [123.123.123.123]: [ENTER]
Какой SSH порт? [22]: [ENTER]

Для копирования данных веб-сайтов, почты и баз данных инструменту миграции требуется доступ по SSH без пароля к целевому серверу. Вам нужно предоставить IP и порт, к которым исходный сервер должен подключиться. Если вы еще не настроили безпарольный доступ, вам будет предложено ввести пароль root SSH целевого сервера.

Тестирование соединения MySQL ... ОК

Начало вызовов API.
[50/74]  обрабатывается mydomain.com

Инструмент теперь начнет создавать/обновлять все записи на целевом ISPConfig. В режиме пробного запуска он, конечно, ничего не изменит или не скопирует. Ждите завершения вызовов API.

Обработка записей завершена.                                                                                               
============= 
Запуск инструмента миграции завершен.

Как только инструмент миграции завершит пробный запуск без ошибок, мы можем продолжить с реальной миграцией.

Запустите миграцию

./migrate

Если вы хотите запустить инструмент на конкретной версии PHP (например, PHP 7.4 на Ubuntu 22.04), используйте эту команду вместо этого:

PHP=/usr/bin/php7.4 ./migrate

Результат любой из вышеуказанных команд будет выглядеть следующим образом:

    Добро пожаловать в инструмент миграции ISPConfig3 V2 Версия 2.0.0rc2

Хотя этот инструмент ничего не изменяет на исходном сервере, вы должны
ВСЕГДА делать РЕЗЕРВНУЮ КОПИЮ всех ваших данных перед миграцией на новый сервер!

Вам необходимо настроить некоторые предварительные условия для использования этого инструмента:
 * создайте удаленного пользователя (система -> удаленные пользователи) в вашей ЦЕЛЕВОЙ системе ISPConfig3 и предоставьте ему ВСЕ права
 * убедитесь, что эта (ИСХОДНАЯ система) может достичь удаленного API ЦЕЛЕВОЙ системы

* Отказ от гарантий *
ISPConfig отказывается от всех других гарантий в максимальной степени, разрешенной законом, будь то явные или подразумеваемые,
включая, помимо прочего, любые подразумеваемые гарантии права собственности, ненарушения, интеграции, товарности или
пригодности для конкретной цели.
Продолжая использовать это программное обеспечение, вы соглашаетесь с этим.

Прежде всего, самый важный вопрос:
Хотите ли вы сделать реальную миграцию или пробный запуск? (dry, migrate): migrate

На этот раз мы отвечаем на запрос “migrate” и отвечаем на вопросы так же, как и во время пробного запуска. Инструмент будет иметь ваши вводы из пробного запуска заранее заполненными, поэтому вы в основном сможете нажимать ENTER.

Тестирование соединения MySQL ... ОК
Копирование файлов Let'sEncrypt на целевой ... ОК

Начало вызовов API.
[9/11]  обрабатывается [email protected] (web213p41)

На этот раз процесс займет немного больше времени, так как выполняются реальные вызовы API. Ждите завершения процесса.

Обработка записей завершена.                                                                                               
Очередь заданий целевого ISPConfig содержит 35 записей. Ожидание .. 

Чтобы убедиться, что все пути созданы на целевом, инструмент миграции ждет, пока ISPConfig обработает все запросы, прежде чем продолжить.

[INFO] Очередь заданий целевого ISPConfig завершена. Продолжение.

[19/935] Синхронизация /var/www/clients/client26/web21/web с /var/www/clients/client1424/web21/

Теперь инструмент синхронизирует все пути (веб, почта) и копирует содержимое базы данных на целевой сервер. Этот процесс может занять некоторое время в зависимости от объема данных, которые у вас есть.

Если вы хотите выполнить фактическую синхронизацию данных в отдельном шаге, вы можете пропустить это, запустив ./migrate –no-syncjobs вместо просто ./migrate

Финальные шаги

Инструмент миграции сбросит значения, которые он изменил в начале (например, префиксы клиентов).

В зависимости от вашей панели управления на исходном сервере инструмент миграции активировал модуль домена на вашем целевом ISPConfig. Это означает, что домены могут использоваться только для веб-сайтов, почтовых доменов и т.д., если они были назначены администратором сначала (с помощью Клиент -> Домены). Если вы не хотите использовать модуль домена, вы можете отключить его в разделе Система -> Настройки интерфейса -> Вкладка “Домены”.

Наконец, проверьте файл migrate.log, который был создан, на наличие записей с маркерами [ERROR] или [WARNING]. Эти записи указывают на проблемы в процессе миграции.

Повторная синхронизация вашей цели

Повторная синхронизация аккаунтов и настроек

Если что-то изменилось на исходной панели управления после того, как вы выполнили миграцию, вы можете просто повторно запустить ее. Инструмент миграции обновит все записи новыми настройками с вашего исходного сервера. И добавит новые записи, которые были созданы в это время. Удаленные записи на исходном сервере не будут удалены на целевом!

Повторная синхронизация данных

Если вы хотите повторно синхронизировать только данные для веб-сайтов, почты и баз данных, вы можете запустить ./migrate –syncjobs. Это пропустит все шаги миграции и выполнит только синхронизацию веб-сайтов, баз данных и электронной почты.

Вы также можете повторно синхронизировать только одну из услуг, например, ./migrate –syncjobs –only=database. Это пропустит повторную синхронизацию данных веб-сайта и электронной почты.

Расширенные параметры

Чтобы получить список расширенных параметров, которые позволяют, например, мигрировать отдельные веб-сайты, почтовые домены или клиентов, используйте параметр –help.

./migrate --help

Текущие параметры:

Использование:  migrate 
        Список параметров:
        --help
                        Показать этот экран
        --server-prefix=
                Использовать данный префикс для конфликтующих имен пользователей, если возникают дальнейшие
                конфликты, добавьте _2 _3 _4 ... к имени пользователя
        --source-temp-dir=
                Установить другой временный каталог для действий на исходном сервере, чем /tmp
        --target-temp-dir=
                Установить другой временный каталог для действий на целевом сервере, чем /tmp
        --syncjobs
                Не выполнять процесс миграции, просто повторно синхронизировать все данные
                (веб-файлы, содержимое базы данных)
        --no-syncjobs
                Выполнить только миграцию, не копировать файлы данных или
                содержимое базы данных на целевой
        --ignore-sync-errors
                Не прерывать обработку синхронизации, если возникает ошибка. Это
                может быть полезно, например, если команда, такая как chattr, не работает корректно на целевом сервере.
        --confixx-no-domain
                При миграции confixx (исходный сервер) не создавать
                фиктивный веб-сайт, который содержит
                все другие домены этого клиента в качестве доменов-алиасов.
                Confixx использует другой подход для хранения и
                управления доменами, поэтому нет
                "основного" домена, а вместо этого есть хостинг, который имеет все
                домены, назначенные.
                На серверах confixx, где у клиентов есть только один
                домен, может быть лучше не
                создавать фиктивный веб-сайт с единственным алиасом, а использовать
                домен в качестве веб-сайта.
        --only=client|web|mail|ftp|database|cronjob|dns|billing
                Мигрировать только указанные услуги и пропустить другие.
                Может быть указано несколько раз.
        --exclude=client|web|mail|ftp|database|cronjob|dns|billing
                Мигрировать все услуги, кроме указанных. Может быть указано несколько раз.
        --only=/--exclude= на --syncjobs
                При ограничении повторной синхронизации до отдельных услуг действительны только веб,
                почта, база данных, система.
        --only-client=
                Мигрировать только одного клиента и его данные (веб, почта и т.д.). Это можно использовать вместе
                с --only= / --exclude= для дальнейшего ограничения мигрируемых данных.
        --only-web=
                Мигрировать только указанный домен и его назначенные
                базы данных, учетные записи ftp и т.д.
                Это можно использовать вместе с другими
                --only-x/--exclude-x и --only=/--exclude= опциями
                для указания данных, которые нужно мигрировать.
        --only-mail=
                Мигрировать только указанный почтовый домен и его назначенные
                почтовые аккаунты, фильтры спама и т.д.
                Это можно использовать вместе с другими
                --only-x/--exclude-x и --only=/--exclude= опциями
                для указания данных, которые нужно мигрировать.
        --only-database=
                Мигрировать только указанную базу данных и ее родительский веб-сайт.
                Это можно использовать вместе с другими
                --only-x/--exclude-x и --only=/--exclude= опциями
                для указания данных, которые нужно мигрировать.
        --only-dns=
                Мигрировать только указанную DNS-зону и ее назначенные DNS
                записи.

                Вышеуказанные параметры также можно использовать противоположным образом,
используя --exclude-client, --exclude-web,
                --exclude-mail, --exclude-database, --exclude-dns
                ВНИМАНИЕ! Клиенты ВСЕГДА должны быть мигрированы, иначе
                вы получите все мигрированные данные, назначенные
                пользователю администратору вместо клиента!
Share: X/Twitter LinkedIn

Get new posts in your inbox

No spam. Unsubscribe anytime.