웹사이트 검색

다운타임 없이 WordPress를 공유 호스팅에서 클라우드 서버로 마이그레이션하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

클라우드 서버로 이동

많은 블로거가 공유 호스팅으로 시작합니다. 이것은 시작하기에 좋을 수 있지만 트래픽이 증가하면(예: 하루에 수백 명의 방문자 이상) 블로그를 개인 클라우드 서버로 이동하는 것을 고려해야 합니다. 하나로 이동하는 것은 그리 복잡하지 않습니다. 단계를 올바르게 따르기만 하면 다운타임 없이 몇 시간 내에 WordPress 블로그/웹사이트를 마이그레이션할 수 있습니다.

1단계. 백업 생성

현재 공유 호스팅 서버에서 MySQL 데이터베이스와 함께 모든 파일을 백업해야 합니다. 대부분의 공유 호스팅 공급자는 cPanel과 같은 서버 관리를 위한 간단한 GUI를 가지고 있습니다.

백업 파일(이미지, 테마, 플러그인)

핵심 WordPress 파일을 백업할 필요는 없지만 이미지(게시물을 위해 이미 업로드했을 수 있음), 테마 및 플러그인을 백업해야 합니다. 이렇게 하려면 먼저 wp-contents 디렉토리의 아카이브를 만든 다음(오른쪽 클릭 => zip으로 압축) 다운로드합니다.

데이터베이스 백업

cPanel에서 "백업 마법사 => MySQL 데이터베이스"로 이동합니다.

*.sql.gz 형식의 MySQL 데이터베이스를 다운로드할 수 있습니다. 데스크톱에 backup_db.sql.gz로 저장합니다.

2단계. LAMP 스택으로 클라우드 서버 설정

Ubuntu 12.04로 드롭릿(클라우드 서버)을 시작하고 기본 설정 프로세스에 대한 이 가이드를 따르십시오: Ubuntu 서버 설정.

3단계. 워드프레스 설치

LAMP 스택이 설정되면 최신 버전의 WordPress를 설치합니다. 이렇게 하려면 Ubuntu에 Wordpress 설치 가이드를 따르십시오.

4단계. 가상 호스트 생성

Wordpress 블로그를 처리하기 위한 Apache 가상 호스트를 만듭니다. site-available 디렉토리에 새 파일을 만듭니다.

sudo nano /etc/apache2/sites-available/yourdomain.com

블로그에 대한 가상 호스트를 추가합니다(yourdomain.comusername 대체). 각 VirtualHost 블록은 별도의 클라우드 서버를 정의하고 숫자 80은 Apache가 청취할 포트를 나타냅니다. ServerName은 도메인 이름을 나타내고 DocumentRootWordPress 디렉토리의 루트를 가리켜야 합니다.

<VirtualHost *:80>
     ServerName yourdomain.com
     DocumentRoot /var/www/
</VirtualHost>
<VirtualHost *:80>
     ServerName www.yourdomain.com
     Redirect permanent / http://yourdomain.com/
</VirtualHost>

그런 다음 Apache 유틸리티 a2ensite를 사용하여 이 가상 호스트를 활성화합니다. 위의 구성을 사용하여 Apache에게 yourdomain.com을 수신하도록 지시합니다.

sudo a2ensite yourdomain.com

이제 Apache 서버를 다시 로드하십시오. 서버 구성을 변경할 때마다 해당 변경 사항을 적용하려면 서버를 다시 로드해야 합니다.

sudo service apache2 reload

5단계. 데이터베이스 및 파일 복원

이제 WordPress 설치가 설정되었지만 이전 기사, 이미지, 테마 등을 가져오지 않았습니다. 먼저 파일을 업로드하겠습니다.

백업 파일 업로드 - MySQL 데이터베이스 및 파일 콘텐츠를 VPS에 업로드

scp는 파일 업로드에 매우 편리합니다. FTP와 마찬가지로 파일을 전송할 수 있지만 SCP는 SSH를 통해 안전하게 전송합니다. 파일을 업로드하려면 명령에 두 개의 인수를 전달해야 합니다. 첫 번째는 업로드하려는 파일의 위치이고 두 번째는 대상 서버(username@server_ip_address 형식)입니다.

scp ~/Downloads/backup_db.sql.gz username@server_ip_address:
scp ~/Downloads/wp-content.zip username@server_ip_address:

데이터베이스 복원

데이터베이스를 복원하려면 서버에 로그인하고 아래 명령을 입력합니다(database_name, database_user 대체).

mysql -h localhost -u database_user -p database_name < backup_db.sql.gz 

이 명령에는 몇 가지 인수가 필요합니다. 호스트 주소를 지정하기 위한 -h 옵션(이 경우 데이터베이스가 동일한 서버에서 실행되기 때문에 localhost), 두 번째 인수인 -u는 데이터베이스 사용자 이름을 제공하고 세 번째 옵션은 -p는 암호가 프롬프트에 제공됨을 의미하고 네 번째 옵션은 WordPress 데이터베이스의 이름을 지정하며 마지막 인수는 입력인 백업 데이터베이스입니다.

데이터베이스 사용자의 암호를 입력하라는 메시지가 표시됩니다. 몇 초 내에 데이터베이스 내용을 지정된 데이터베이스로 가져옵니다.

wp-content 파일 복원

테마, 업로드된 미디어(이미지, 비디오 등) 및 플러그인을 복원하려면 zip 아카이브를 추출하기만 하면 됩니다(unzip 명령 사용). 기존 wp-contents 디렉토리에 내용을 추출하고 병합합니다.

sudo unzip wp-content.zip -d /var/www/

6단계. 블로그 테스트

다운타임 제로를 달성하려면 이 단계가 중요합니다. 블로그가 새 위치에 제대로 설정되었는지 확인해야 합니다. 이렇게 하려면 먼저 호스트 파일을 업데이트합니다.

sudo nano /etc/hosts

호스트 파일에 이 줄을 추가합니다(이제 yourdomain.com을 방문하면 새 서버를 가리키지만 컴퓨터에만 있음 - 이렇게 하면 테스트가 더 쉬워집니다).

server_ip_address  yourdomain.com 

다음으로 DNS 캐시를 지웁니다(호스트 파일을 업데이트했으므로 변경 사항을 적용하려면 DNS 캐시를 지워야 합니다. nscd는 DNS 캐시 결과를 플러시하기 위한 유용한 작은 도구입니다).

sudo service nscd restart

이제 yourdomain.com을 방문하면 새 서버에서 페이지가 로드됩니다. 예상대로 표시되면(모든 기사, 이미지, 페이지, 플러그인, 사용자 지정 디자인 등) 모든 설정이 완료되었으며 다음 단계로 이동해야 함을 의미합니다. 그렇지 않으면 무엇이 잘못되었는지 알아내십시오. (성공적으로 테스트한 후 호스트 파일에서 위 줄을 제거합니다.)

7단계. DNS 설정 업데이트

이제 도메인 등록 기관에서 DNS 설정을 업데이트해야 합니다. A 레코드의 경우 IP 주소를 새 값(VPS의 IP 주소)으로 업데이트하거나 DNS를 VPS 공급자로 이동하고 거기에 A 레코드를 추가할 수도 있습니다. DigitalOcean의 경우 다음 이름 서버를 입력해야 합니다.

ns1.linux-console.net
ns2.linux-console.net
ns3.linux-console.net

참고: DNS 서버가 새 값을 전파하기 시작하지만 다소 시간이 걸리므로 전환 직후(가급적 하루 후) 이전 공유 호스팅을 종료하지 마십시오.