

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# WordPress CodeDeploy 번들 생성
<a name="gui-ex-create-wp-package"></a>

이 섹션에서는 애플리케이션 배포 번들을 생성하는 예를 제공합니다.

1. WordPress를 다운로드하고 파일을 추출한 다음 ./scripts 디렉터리를 생성합니다.

   Linux 명령:

   ```
   wget https://github.com/WordPress/WordPress/archive/master.zip
   ```

   Windows: 브라우저 창에 붙여`https://github.com/WordPress/WordPress/archive/master.zip`넣고 zip 파일을 다운로드합니다.

   패키지를 어셈블할 임시 디렉터리를 생성합니다.

   Linux:

   ```
   mkdir /tmp/WordPress
   ```

   Windows: "WordPress" 디렉터리를 생성합니다. 나중에 디렉터리 경로를 사용합니다.

1. WordPress 소스를 "WordPress" 디렉터리로 추출하고 ./scripts 디렉터리를 생성합니다.

   Linux:

   ```
   unzip master.zip -d /tmp/WordPress_Temp
   cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
   rm -rf /tmp/WordPress_Temp
   rm -f master
   cd /tmp/WordPress
   mkdir scripts
   ```

   Windows: 생성한 "WordPress" 디렉터리로 이동하여 여기에 "scripts" 디렉터리를 생성합니다.

   Windows 환경에 있는 경우 스크립트 파일의 브레이크 유형을 Unix(LF)로 설정해야 합니다. 메모장 \+\+에서 창 오른쪽 하단에 있는 옵션입니다.

1. WordPress 디렉터리에서 CodeDeploy **appspec.yml** 파일을 생성합니다(예제를 복사하는 경우 들여쓰기를 확인하고 각 공간을 계산합니다). 중요: WordPress 파일(이 경우 WordPress 디렉터리)을 예상 대상(/var/www/html/WordPress)으로 복사하기 위해 "소WordPress" 경로가 올바른지 확인합니다. 예제에서 appspec.yml 파일은 WordPress 파일이 있는 디렉터리에 있으므로 "/"만 있으면 됩니다. 또한 Auto Scaling 그룹에 RHEL AMI를 사용했더라도 "os: linux" 줄을 그대로 둡니다. appspec.yml 파일의 예:

   ```
   version: 0.0
   os: linux
   files:
     - source: /
       destination: /var/www/html/WordPress
   hooks:
     BeforeInstall:
       - location: scripts/install_dependencies.sh
         timeout: 300
         runas: root
     AfterInstall:
       - location: scripts/config_wordpress.sh
         timeout: 300
         runas: root
     ApplicationStart:
       - location: scripts/start_server.sh
         timeout: 300
         runas: root
     ApplicationStop:
       - location: scripts/stop_server.sh
         timeout: 300
         runas: root
   ```

1. WordPress ./scripts 디렉터리에서 bash 파일 스크립트를 생성합니다.

   먼저 다음 콘텐츠`config_wordpress.sh`로를 생성합니다(원하는 경우 wp-config.php 파일을 직접 편집할 수 있음).
**참고**  
{{DBName}}을 HA 스택 RFC에 지정된 값으로 바꿉니다(예: `wordpress`).  
{{DB\_MasterUsername}}을 HA 스택 RFC에 지정된 `MasterUsername` 값으로 바꿉니다(예: `admin`).  
{{DB\_MasterUserPassword}}를 HA 스택 RFC에 지정된 `MasterUserPassword` 값으로 바꿉니다(예: `p4ssw0rd`).  
{{DB\_ENDPOINT}}를 HA 스택 RFC의 실행 출력에서 엔드포인트 DNS 이름으로 바꿉니다(예: `srt1cz23n45sfg.clgvd67uvydk.us-east-1.rds.amazonaws.com`). [GetRfc](https://docs.aws.amazon.com/managedservices/latest/ApiReference-cm/API_GetRfc.html) 작업(CLI: get-rfc --rfc-id RFC\_ID) 또는 이전에 제출한 HA 스택 RFC의 AMS 콘솔 RFC 세부 정보 페이지에서 이를 찾을 수 있습니다.

   ```
   #!/bin/bash
   chmod -R 755 /var/www/html/WordPress
   cp /var/www/html/WordPress/wp-config-sample.php /var/www/html/WordPress/wp-config.php
   cd /var/www/html/WordPress
   sed -i "s/database_name_here/{{DBName}}/g" wp-config.php
   sed -i "s/username_here/{{DB_MasterUsername}}/g" wp-config.php
   sed -i "s/password_here/{{DB_MasterUserPassword}}/g" wp-config.php
   sed -i "s/localhost/{{DB_ENDPOINT}}/g" wp-config.php
   ```

1. 동일한 디렉터리에서 다음 콘텐츠`install_dependencies.sh`로를 생성합니다.

   ```
   #!/bin/bash
   yum install -y php
   yum install -y php-mysql
   yum install -y mysql
   service httpd restart
   ```
**참고**  
HTTPS는 상태 확인이 처음부터 작동하도록 시작 시 사용자 데이터의 일부로 설치됩니다.

1. 동일한 디렉터리에서 다음 콘텐츠`start_server.sh`로를 생성합니다.
   + Amazon Linux 인스턴스의 경우 다음을 사용합니다.

     ```
     #!/bin/bash
     service httpd start
     ```
   + RHEL 인스턴스의 경우 다음을 사용합니다(추가 명령은 SELINUX가 WordPress를 수락하도록 허용하는 정책임).

     ```
     #!/bin/bash
     setsebool -P  httpd_can_network_connect_db 1
     setsebool -P  httpd_can_network_connect 1
     chcon -t httpd_sys_rw_content_t /var/www/html/WordPress/wp-content -R
     restorecon -Rv /var/www/html
     service httpd start
     ```

1. 동일한 디렉터리에서 다음 콘텐츠`stop_server.sh`로를 생성합니다.

   ```
   #!/bin/bash
   service httpd stop
   ```

1. zip 번들을 생성합니다.

   Linux:

   ```
   $ cd /tmp/WordPress
   $ zip -r wordpress.zip .
   ```

   Windows: "WordPress" 디렉터리로 이동하여 모든 파일을 선택하고 zip 파일을 생성합니다. 이름을 wordpress.zip으로 지정해야 합니다.