기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
2단계: Amazon Linux 또는 Red Hat Enterprise Linux Amazon EC2 인스턴스에 배포할 소스 콘텐츠 구성
이제 인스턴스에 배포할 항목이 있도록 애플리케이션의 원본 콘텐츠를 구성해야 합니다.
소스 코드 가져오기
이 자습서에서는 개발 머신에서 대상 Amazon EC2 인스턴스로 WordPress 콘텐츠 게시 플랫폼을 배포합니다. WordPress 소스 코드를 가져오려면 내장 명령줄 호출을 사용할 수 있습니다. 또는 Git이 개발 컴퓨터에 설치되어있는 경우 대신 사용할 수 있습니다.
이 단계에서는 WordPress 소스 코드 사본을 개발 시스템의 /tmp
디렉터리에 다운로드했다고 가정합니다. (원하는 디렉터리를 선택할 수 있지만 이 단계에서 지정되는 모든 곳에서 위치를 /tmp
로 바꿔야 합니다.)
다음 두 옵션 중 하나를 선택하여 WordPress 소스 파일을 개발 머신에 복사합니다. 첫 번째 옵션은 기본 제공 명령줄 호출을 사용합니다. 두 번째 옵션은 Git를 사용합니다.
WordPress 소스 코드의 복사본을 가져오려면(내장된 명령줄 호출)
-
wget 명령을 호출하여 WordPress 소스 코드의 사본을 .zip 파일로 현재 디렉터리에 다운로드합니다.
wget https://github.com/WordPress/WordPress/archive/master.zip
-
unzip, mkdir, cp, 및 rm 명령으르 호출하여 다음을 수행합니다.
-
master
.zip 파일을/tmp/WordPress_Temp
디렉터리(폴더)에서 압축을 풉니다. -
압축이 풀린 내용을
/tmp/WordPress
대상 폴더에 복사합니다. -
임시
/tmp/WordPress_Temp
폴더 및master
파일을 삭제합니다.
명령을 한 번에 하나씩 실행합니다.
unzip master -d /tmp/WordPress_Temp
mkdir -p /tmp/WordPress
cp -paf /tmp/WordPress_Temp/WordPress-master/* /tmp/WordPress
rm -rf /tmp/WordPress_Temp
rm -f master
이렇게 하면
/tmp/WordPress
폴더에 깨끗한 WordPress 소스 코드 파일 세트가 표시됩니다. -
WordPress 소스 코드(Git)의 사본을 가져오려면
-
개발 머신에 Git
를 다운로드하고 설치합니다. -
/tmp/WordPress
폴더에서 git init 명령을 호출합니다. -
git clone 명령을 호출하여 퍼블릭 WordPress 리포지토리를 복제하고
/tmp/WordPress
대상 폴더에 자체 복사본을 만듭니다.git clone https://github.com/WordPress/WordPress.git /tmp/WordPress
이렇게 하면
/tmp/WordPress
폴더에 깨끗한 WordPress 소스 코드 파일 세트가 표시됩니다.
애플리케이션을 실행하기 위한 스크립트 만들기
다음으로 디렉터리에 폴더와 스크립트를 생성합니다. 는 이러한 스크립트를 CodeDeploy 사용하여 대상 Amazon EC2 인스턴스에 애플리케이션 개정을 설정하고 배포합니다. 어떤 텍스트 편집기든 사용하여 스크립트를 생성할 수 있습니다.
-
WordPress 소스 코드 사본에 스크립트 디렉터리를 생성합니다.
mkdir -p /tmp/WordPress/scripts
-
/tmp/WordPress/scripts
에install_dependencies.sh
파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이install_dependencies.sh
스크립트는 Apache, My SQL및 를 설치합니다PHP. 또한 내SQL 지원을 에 추가합니다PHP.#!/bin/bash sudo amazon-linux-extras install php7.4 sudo yum install -y httpd mariadb-server php
-
/tmp/WordPress/scripts
에start_server.sh
파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이start_server.sh
스크립트는 Apache와 My 를 시작합니다SQL.#!/bin/bash systemctl start mariadb.service systemctl start httpd.service systemctl start php-fpm.service
-
/tmp/WordPress/scripts
에stop_server.sh
파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이 스크립트stop_server.sh
는 Apache 및 My 를 중지합니다SQL.#!/bin/bash isExistApp="pgrep httpd" if [[ -n $isExistApp ]]; then systemctl stop httpd.service fi isExistApp=pgrep mysqld if [[ -n $isExistApp ]]; then systemctl stop mariadb.service fi isExistApp=pgrep php-fpm if [[ -n $isExistApp ]]; then systemctl stop php-fpm.service fi
-
/tmp/WordPress/scripts
에create_test_db.sh
파일을 생성합니다. 파일에 다음 줄을 추가합니다. 이 스크립트는 MySQL를 사용하여test
WordPress 사용할create_test_db.sh
데이터베이스를 생성합니다.#!/bin/bash mysql -uroot <<CREATE_TEST_DB CREATE DATABASE IF NOT EXISTS test; CREATE_TEST_DB
-
마지막으로,
/tmp/WordPress/scripts
에서change_permissions.sh
스크립트를 만듭니다. 이것은 Apache에서 폴더 권한을 변경하는 데 사용됩니다.중요
이 스크립트는
/tmp/WordPress
폴더에서 사용 권한을 업데이트하여 누구나 쓸 수 있습니다. 에서 를 에 WordPress 쓰려면 이 필요합니다5단계: WordPress 애플리케이션 업데이트 및 재배포. WordPress 애플리케이션을 설정한 후 다음 명령을 실행하여 권한을 더 안전한 설정으로 업데이트합니다.chmod -R 755 /var/www/html/WordPress
#!/bin/bash chmod -R 777 /var/www/html/WordPress
-
모든 스크립트에 실행 권한을 부여합니다. 명령줄에 다음을 입력합니다.
chmod +x /tmp/WordPress/scripts/*
애플리케이션 사양 파일 추가
그런 다음 애플리케이션 사양 파일(AppSpec 파일)을 추가합니다. 이 사용하는 YAML
-
애플리케이션 개정판의 소스 파일을 대상 Amazon EC2 인스턴스의 대상에 매핑합니다.
-
배포된 파일에 대한 사용자 지정 권한을 지정합니다.
-
배포 중에 대상 Amazon EC2 인스턴스에서 실행할 스크립트를 지정합니다.
AppSpec 파일의 이름은 여야 합니다appspec.yml
. 애플리케이션 소스 코드의 루트 폴더에 있어야 합니다. 이 튜토리얼에서 루트 디렉토리는 /tmp/WordPress
입니다.
텍스트 편집기에서 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/change_permissions.sh timeout: 300 runas: root ApplicationStart: - location: scripts/start_server.sh - location: scripts/create_test_db.sh timeout: 300 runas: root ApplicationStop: - location: scripts/stop_server.sh timeout: 300 runas: root
CodeDeploy 는 이 AppSpec 파일을 사용하여 개발 시스템의 /tmp/WordPress
폴더에 있는 모든 파일을 대상 Amazon EC2 인스턴스의 /var/www/html/WordPress
폴더에 복사합니다. 배포 중에 는 BeforeInstall
및 와 같은 배포 수명 주기 동안 지정된 이벤트에서 대상 Amazon EC2 인스턴스의 /var/www/html/WordPress/scripts
폴더에 root
있는 지정된 스크립트를 CodeDeploy 실행합니다AfterInstall
. 이러한 스크립트를 실행하는 데 300초(5분) 이상 걸리는 경우 는 배포를 CodeDeploy 중지하고 배포를 실패로 표시합니다.
이러한 설정에 대한 자세한 정보는 CodeDeploy AppSpec 파일 참조 단원을 참조하세요.
중요
이 파일에 있는 각 항목 사이의 공백 위치와 개수는 중요합니다. 간격이 올바르지 않으면 디버깅하기 어려울 수 있는 오류가 CodeDeploy 발생합니다. 자세한 내용은 AppSpec 파일 간격 단원을 참조하십시오.