마이그레이션 · 11 min read · Sep 12, 2025
ISPConfig 2, ISPConfig 3, Confixx, CPanel 또는 Plesk를 ISPConfig 3.2 또는 ISPConfig 3.3(단일 서버)로 마이그레이션하는 방법

이 방법에서는 ISPConfig Migration Tool 2.0을 사용하여 단일 서버를 새로운 ISPConfig 3.x 서버로 마이그레이션하는 방법을 보여줍니다. Migration Tool은 여기에서 사용할 수 있는 ISPConfig Migration 툴킷의 일부입니다.
ISPConfig Migration Tool은 다음 호스팅 제어판을 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을 실행하는 새로운 시스템으로 마이그레이션합니다. 다른 지원되는 호스팅 제어판에서의 마이그레이션도 유사하게 수행됩니다. Migration Tool은 마이그레이션 프로세스를 단계별로 안내합니다.
전제 조건 및 주의 사항
- 소스 서버에 ISPConfig 3.x가 설치되어 있어야 합니다.
- 대상 서버에 ISPConfig 3.1.7 이상이 설치되어 있어야 합니다.
- 소스 서버에 PHP 5.3+와 JSON, mcrypt, OpenSSL 및 mbstring 지원이 필요합니다.
- 구 서버와 새 서버는 동일한 마스터 서버에 연결되어 있지 않아야 합니다. 동일한 마스터에 연결되어 있다면 대신 ISPCopy를 사용하십시오(이것도 Migration Toolkit의 일부입니다).
- Migration Toolkit 라이센스.
- Let’s Encrypt 인증서: 구 서버와 새 서버는 동일한 Let’s Encrypt 클라이언트를 사용해야 합니다. 구 서버가 Certbot을 사용하는 경우, 새 시스템도 Certbot을 사용해야 하며 Acme.sh를 사용해서는 안 됩니다. ISPConfig 자동 설치 프로그램을 사용하여 새 서버를 설치하고 구 서버가 certbot을 사용하는 경우, 자동 설치 프로그램에서 –use-certbot 명령줄 스위치를 사용하여 새 서버에 acme.sh 대신 certbot을 설치하십시오.
- 다중 서버 설정: MigrationTool은 ISPConfig 다중 서버 설정을 마이그레이션할 수 있습니다. 이러한 마이그레이션의 대상은 다른 다중 서버 설정이거나 다중 서버 설정을 새로운 단일 서버 설정으로 병합할 수 있습니다. MigrationTool은 다중 서버 설정의 각 (구) 노드에서 차례로 실행되어야 하며, 대상 ISPConfig 시스템은 새로운 다중 서버 설정의 마스터 노드이거나 새로운 단일 서버입니다.
ISPConfig에서 원격 사용자 생성
대상 ISPConfig 서버에 원격 사용자가 필요합니다.
시스템 -> 원격 사용자로 이동합니다.

새 사용자 추가 버튼을 클릭합니다.
원격 사용자에 대한 사용자 이름과 비밀번호를 입력합니다. 예: “remoter”를 입력하고 모든 체크박스를 선택했는지 확인합니다. 그런 다음 “저장”을 클릭합니다.

대상 서버에서 ISPConfig 버전 3.1.11을 사용하는 경우, 루트 사용자로서 파일 / usr /local/ ispconfig /security/security_settings.ini를 편집합니다:
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
ginx_directives_scan_enabled=yes
....마이그레이션이 완료되면 IDS를 다시 활성화할 수 있습니다. ISPConfig 3.1.12 이상을 사용하는 경우 이 변경은 필요하지 않습니다.
다음으로, 대상 서버에 php-soap 모듈이 설치되어 있는지 확인하십시오. 설치되어 있지 않다면 지금 설치하십시오. Debian 및 Ubuntu에서는 apt를 사용하여 PHP Soap 모듈을 설치할 수 있습니다:
apt-get install php-soap또 다른 전제 조건은 대상 서버와 소스 서버 모두에 rsync가 설치되어 있어야 한다는 것입니다. 다음과 같이 확인하십시오:
rsync --version두 노드 모두에서 rsync가 설치되어 있는지 확인하십시오. 설치되어 있지 않다면 운영 체제의 rsync 패키지를 설치하십시오. 예를 들어:
apt-get install rsyncDebian 및 Ubuntu에서 또는:
yum install rsyncCentOS에서.
대상 서버에는 ISPConfig 자동 설치 프로그램에 의해 생성된 /etc/ssh/sshd_config.d/custom.conf 파일이 있을 수 있으며, 이 파일은 Migration Tool의 작동을 방해할 수 있습니다. 이 파일이 존재하는 경우 삭제해야 합니다. 다음 명령을 루트 사용자로서 대상 서버에서 실행하여 파일을 삭제하십시오:
rm /etc/ssh/sshd_config.d/custom.conf모든 다음 단계는 소스 서버에서 수행되며, 달리 지시하지 않는 한 그렇습니다.
Migration Tool 다운로드 및 추출
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 파일에 추가).
- 또는 비밀번호를 통해 대상에 대한 루트 액세스를 허용합니다(일시적으로). 그런 다음 Migration Tool이 ssh-keygen 및 ssh-copy-id를 호출합니다. 이는 직접 시스템 호출이므로 이 단계에서 대상의 ssh 루트 비밀번호를 입력하라는 메시지가 표시되면 입력은 Migration Tool에 의해 읽히지 않으며, ssh-copy-id 시스템 명령에 의한 직접 프롬프트입니다.
마이그레이션 실행(드라이 런)
./migrate특정 PHP 버전에서 도구를 실행하려면(예: Ubuntu 22.04에서 PHP 7.4), 대신 다음 명령을 사용하십시오:
PHP=/usr/bin/php7.4 ./migrate위 명령 중 하나의 결과는 다음과 같습니다:
Welcome to the ISPConfig3 Migration Tool V2 Version 2.0.0
이 도구는 소스 서버에서 아무것도 변경하지 않지만, 새 서버로 마이그레이션하기 전에 항상 모든 데이터의 백업을 만들어야 합니다!
이 도구를 사용하려면 몇 가지 전제 조건이 설정되어 있어야 합니다:
* TARGET ISPConfig3 시스템에서 원격 사용자(시스템 -> 원격 사용자)를 생성하고 모든 권한을 부여하십시오.
* 이 (소스 시스템)가 TARGET 시스템의 원격 API에 도달할 수 있는지 확인하십시오.
* 보증의 면책 조항 *
ISPConfig는 법이 허용하는 최대한의 범위에서 모든 다른 보증을 부인하며, 명시적이든 묵시적이든 관계없이, 소유권, 비침해, 통합, 상업성 또는 특정 목적에 대한 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않습니다.
이 소프트웨어를 계속 사용함으로써 귀하는 이에 동의합니다.
가장 중요한 질문:
실제 마이그레이션을 하시겠습니까, 아니면 드라이 런을 하시겠습니까? (드라이, 마이그레이트): 드라이먼저 드라이 런 모드에서 실행하고 싶으므로 여기서 드라이를 입력합니다.
다음 모듈을 사용할 수 있습니다:
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): ispconfig3Migration Tool은 소스 서버에서 사용하는 제어판을 알아야 합니다. 소스 서버에서 필요한 모듈을 인식하려고 하므로 일반적으로 ENTER 키를 눌러 진행할 수 있습니다.
이 (소스) 서버의 IP를 입력하십시오. 외부 연결에 사용되는 IP [192.168.10.10]: 123.123.123.123Migration Tool은 소스 서버에서 외부 연결에 사용되는 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대상에서 생성한 원격 사용자 정보를 Migration Tool에 제공하고 “y”로 입력하여 확인합니다. Migration Tool은 대상 시스템의 원격 API에 연결을 시도합니다.
이제 ISPConfig3 대상 시스템 구성에서 몇 가지 변경을 해야 합니다.
1.) 필요시 도메인 모듈 활성화
2.) 클라이언트 접두사 제거(마지막에 자동으로 되돌려집니다)
3.) 필요시 메일 계정 로그인 활성화
MySQL 연결 테스트 중 ... OK
대상 서버의 주요 공용(!) IP는 www.example.com입니까? [123.123.123.123]: [ENTER]Migration Tool은 대상에서 ISPConfig 설정을 변경하고(이러한 변경은 드라이 런 모드에서 수행되지 않음) MySQL 서버에 대한 연결을 테스트합니다. 도구는 일부 시스템 파일을 확인하여 MySQL 자격 증명을 추측하려고 하지만, 결국 MySQL 루트 비밀번호를 입력하라는 메시지가 표시됩니다.
다음으로 대상 서버의 공용 IP를 제공해야 합니다. DNS에서 미리 가져오지만, 소스와 대상에서 동일한 호스트 이름을 사용하는 경우 조정해야 할 수 있습니다.
동일한 이름의 기존 항목을 덮어쓰거나 업데이트하시겠습니까? (y, n): y
이제 덮어쓰지 않을 항목 이름을 설정할 수 있습니다.
여러 서버의 데이터를 다중 서버 설치로 가져올 계획이라면 이를 사용해야 합니다.
이 도구가 이미 존재하는 이름을 찾으면 소스 데이터로 데이터를 업데이트합니다!
이 도구가 덮어쓰지 않도록 표시한 이름을 찾으면,
- 이 이름에 _2, _3 등을 추가하여 새 항목을 생성하거나,
- --server-prefix 인수로 지정된 경우 서버 접두사를 추가합니다.Migration Tool은 여러 서버를 하나의 대상으로 병합할 수 있습니다. 이 경우 소스 서버에서 사용자 이름이 충돌할 수 있습니다. 예를 들어 “testdatabase”라는 이름의 두 데이터베이스가 있는 경우, 이 질문에 “y”로 응답하면 두 번째 데이터베이스가 첫 번째 데이터베이스를 대체합니다. “n”으로 응답하면 두 번째 데이터베이스의 이름이 “testdatabase_2”로 변경됩니다.
단일 서버 마이그레이션을 수행할 때는 “y”로 응답해야 합니다. 그렇지 않으면 동일한 소스에서 마이그레이션 도구를 여러 번 실행할 경우 중복이 생성됩니다.
현재 0개의 FTP 사용자 이름이 표시됩니다:
이 목록에 추가할 추가 이름을 입력할 수 있습니다. 하나씩 입력하거나 쉼표로 구분된 목록을 제공하십시오.
하나 이상의 이름을 목록에서 삭제하려면 입력 앞에 /DELETE를 추가하십시오.
모든 이름을 목록에서 지우려면 /CLEAR을 입력하십시오.
빈 입력은 다음 단계로 진행합니다.
귀하의 선택 : [ENTER]Migration Tool은 FTP, 데이터베이스, 클라이언트 등에서 일부 사용자 이름을 “예약”으로 표시할 수 있는 옵션을 제공합니다. 이는 위에서 언급한 대로 덮어쓰이지 않도록 하는 것입니다. 일반적으로는 빈칸으로 두지만, 경우에 따라 “admin” 또는 “administrator”와 같은 사용자 이름이 가져오는 것을 방지할 수 있습니다. 따라서 여기에서 입력하면 가져온 이름이 “admin_2” 등으로 변경됩니다.
질문은 다양한 서비스 유형(FTP, 데이터베이스, 클라이언트, 메일 사용자)에 대해 반복됩니다.
귀하의 소스 ISPConfig 3 설치의 데이터베이스 이름은 무엇입니까? [dbispconfig]: [ENTER]도구는 소스 서버에서 제어판 데이터를 보유하는 데이터베이스 이름을 요청합니다. 인식된 데이터베이스가 정확한지 확인하고 필요에 따라 변경하십시오.
일부 서비스만 마이그레이션하시겠습니까, 아니면 모든 서비스를 마이그레이션하시겠습니까?
유효한 서비스는: 클라이언트, 웹, 메일, FTP, 데이터베이스, 크론잡, DNS, 청구
하나 이상의 서비스를 입력하십시오(쉼표로 구분) 또는 모든 서비스를 위해 비워 두십시오: [ENTER]새 Migration Tool은 서비스의 하위 집합만 마이그레이션할 수 있습니다. 예를 들어 메일 계정만 마이그레이션하고 웹은 건너뛸 수 있습니다.
모든 서비스를 마이그레이션하려고 하므로 입력을 비워 두고 ENTER를 누릅니다.
웹 데이터를 복사하려면 대상 웹 서버에 대한 SSH 액세스가 필요합니다.
대상에서 /etc/ssh/sshd_config를 열고 PermitRootLogin을 yes 또는 without-password로 설정하십시오.
마이그레이션이 완료되면 이를 되돌릴 수 있습니다.
SSH를 통해 연결할 대상 웹 서버의 IP는 무엇입니까? [123.123.123.123]: [ENTER]
SSH 포트는 무엇입니까? [22]: [ENTER]웹, 메일 및 데이터베이스 데이터를 복사하기 위해 Migration Tool은 대상 서버에 대한 비밀번호 없는 SSH 액세스가 필요합니다. 소스가 연결할 IP와 포트를 제공해야 합니다. 비밀번호 없는 액세스를 아직 설정하지 않았다면 대상 서버의 루트 SSH 비밀번호를 입력하라는 메시지가 표시됩니다.
MySQL 연결 테스트 중 ... OK
API 호출 시작 중입니다.
[50/74] <도메인> 처리 중 mydomain.com도구는 이제 대상 ISPConfig에서 모든 항목을 생성/업데이트하기 시작합니다. 드라이 런에서는 물론 아무것도 변경하거나 복사하지 않습니다. API 호출이 완료될 때까지 기다리십시오.
항목 처리 완료.
=============
마이그레이션 도구 실행이 완료되었습니다.Migration Tool이 오류 없이 드라이 런을 완료하면 실제 마이그레이션을 계속할 수 있습니다.
마이그레이션 실행
./migrate특정 PHP 버전에서 도구를 실행하려면(예: Ubuntu 22.04에서 PHP 7.4), 대신 다음 명령을 사용하십시오:
PHP=/usr/bin/php7.4 ./migrate위 명령 중 하나의 결과는 다음과 같습니다:
Welcome to the ISPConfig3 Migration Tool V2 Version 2.0.0rc2
이 도구는 소스 서버에서 아무것도 변경하지 않지만, 새 서버로 마이그레이션하기 전에 항상 모든 데이터의 백업을 만들어야 합니다!
이 도구를 사용하려면 몇 가지 전제 조건이 설정되어 있어야 합니다:
* TARGET ISPConfig3 시스템에서 원격 사용자(시스템 -> 원격 사용자)를 생성하고 모든 권한을 부여하십시오.
* 이 (소스 시스템)가 TARGET 시스템의 원격 API에 도달할 수 있는지 확인하십시오.
* 보증의 면책 조항 *
ISPConfig는 법이 허용하는 최대한의 범위에서 모든 다른 보증을 부인하며, 명시적이든 묵시적이든 관계없이, 소유권, 비침해, 통합, 상업성 또는 특정 목적에 대한 적합성에 대한 묵시적 보증을 포함하되 이에 국한되지 않습니다.
이 소프트웨어를 계속 사용함으로써 귀하는 이에 동의합니다.
가장 중요한 질문:
실제 마이그레이션을 하시겠습니까, 아니면 드라이 런을 하시겠습니까? (드라이, 마이그레이트): migrate이번에는 프롬프트에 “migrate”로 응답하고 드라이 런 중에 했던 질문에 대해 이전과 같이 응답합니다. 도구는 드라이 런에서 입력한 내용을 미리 채워줄 것이므로 대부분 ENTER를 누를 수 있습니다.
MySQL 연결 테스트 중 ... OK
Let'sEncrypt 파일을 대상에 복사 중 ... OK
API 호출 시작 중입니다.
[9/11] 처리 중 [email protected] (web213p41)이번에는 실제 API 호출이 수행되므로 프로세스가 조금 더 오래 걸립니다. 프로세스가 완료될 때까지 기다리십시오.
항목 처리 완료.
=============
대상 ISPConfig 작업 대기열에 35개의 항목이 남아 있습니다. 기다리는 중 .. 모든 경로가 대상에서 생성되도록 Migration Tool은 ISPConfig가 모든 요청을 처리할 때까지 기다립니다.
[INFO] 대상 ISPConfig 작업 대기열이 완료되었습니다. 계속 진행합니다.
[19/935] /var/www/clients/client26/web21/web를 /var/www/clients/client1424/web21/로 동기화 중입니다.이제 도구는 모든 경로(웹, 메일)를 동기화하고 데이터베이스 내용을 대상 서버로 복사합니다. 이 프로세스는 데이터 양에 따라 시간이 걸릴 수 있습니다.
실제 데이터 동기화를 별도의 단계로 수행하려면 ./migrate –no-syncjobs를 실행하여 ./migrate 대신 건너뛸 수 있습니다.
최종 단계
Migration Tool은 시작할 때 변경한 값을 재설정합니다(예: 클라이언트 접두사).
소스 제어판에 따라 Migration Tool은 대상 ISPConfig에서 도메인 모듈을 활성화했습니다. 이는 도메인이 웹사이트, 이메일 도메인 등으로 사용되기 위해서는 먼저 관리자가 할당해야 함을 의미합니다(클라이언트 -> 도메인 사용). 도메인 모듈을 사용하지 않으려면 시스템 -> 인터페이스 설정 -> 도메인 탭에서 비활성화할 수 있습니다.
마지막으로, 생성된 migrate.log를 확인하여 [ERROR] 또는 [WARNING] 마커가 있는 항목을 확인하십시오. 이는 마이그레이션 프로세스 중 문제를 나타냅니다.
대상 재동기화
계정 및 설정 재동기화
마이그레이션 후 소스 제어판에서 변경된 사항이 있는 경우, 다시 실행하면 됩니다. Migration Tool은 소스 서버의 새로운 설정으로 모든 항목을 업데이트합니다. 그리고 그 사이에 생성된 새로운 항목을 추가합니다. 소스에서 삭제된 항목은 대상에서 삭제되지 않습니다!
데이터 재동기화
웹, 메일 및 데이터베이스에 대한 데이터만 재동기화하려면 ./migrate –syncjobs를 실행할 수 있습니다. 이는 모든 마이그레이션 단계를 건너뛰고 웹사이트, 데이터베이스 및 이메일의 동기화만 수행합니다.
하나의 서비스만 재동기화하려면 예를 들어 ./migrate –syncjobs –only=database를 실행할 수 있습니다. 이는 웹사이트 데이터 및 이메일의 재동기화를 건너뜁니다.
고급 옵션
단일 웹사이트, 메일 도메인 또는 클라이언트를 마이그레이션할 수 있는 고급 옵션 목록을 보려면 –help 옵션을 사용하십시오.
./migrate --help현재 옵션은 다음과 같습니다:
Usage: migrate
List of options:
--help
Show this screen
--server-prefix=
Use given prefix for conflicting usernames, if further
conflicts occur,
add _2 _3 _4 ... to username
--source-temp-dir=
Set a different temp directory for actions on the source
server than /tmp
--target-temp-dir=
Set a different temp directory for actions on the target
server than /tmp
--syncjobs
Don't run the migration process, just re-sync all data
(web files, database contents)
--no-syncjobs
Only do the migration, don't copy any data files or
database contents to target
--ignore-sync-errors
Don't abort syncjobs processing if an error occurs. This
can be helpful for example
if a command like chattr does not work correctly on the
target server.
--confixx-no-domain
On a confixx migration (source server) do not create a
dummy website that contains
all other domains of that client as alias domains.
Confixx uses a different approach for storing and
managing domains, so there is no
"main" domain, but a hosting instead, that has all
domains assigned.
On confixx servers where clients only have a single
domain it can be better to not
create a dummy website with a single alias, but use the
domain as website instead.
--only=client|web|mail|ftp|database|cronjob|dns|billing
Only migrate the given service(s) and skip the others.
Can be provided multiple times.
--exclude=client|web|mail|ftp|database|cronjob|dns|billing
Migrate all services but the given one(s). Can be
provided multiple times.
--only=/--exclude= on --syncjobs run
When limiting the resync to single services, only web,
mail, database, system are valid.
--only-client=
Only migrate a single client and it's data (web, mail
etc.). This can be used together
with --only= / --exclude= to limit the migrated data
even further.
--only-web=
Only migrate the given domain and it's assigned
databases, ftp accounts etc.
This can be used together with the other
--only-x/--exclude-x and --only=/--exclude= options
to specify the data to be migrated.
--only-mail=
Only migrate the given mail domain and it's assigned
mail accounts, spam filter etc.
This can be used together with the other
--only-x/--exclude-x and --only=/--exclude= options
to specify the data to be migrated.
--only-database=
Only migrate the given database and it's parent website.
This can be used together with the other
--only-x/--exclude-x and --only=/--exclude= options
to specify the data to be migrated.
--only-dns=
Only migrate the given DNS zone and it's assigned DNS
records.
The above options can also be used in the opposite way,
using --exclude-client, --exclude-web,
--exclude-mail, --exclude-database, --exclude-dns
WARNING! Clients ALWAYS have to be migrated otherwise
you will have all migrated data assigned
to the admin user instead of the client! 새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.