AWS Cloud9용 PHP 자습서 - AWS Cloud9

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

AWS Cloud9용 PHP 자습서

이 자습서를 사용하면 AWS Cloud9 개발 환경에서 PHP 스크립트를 실행할 수 있습니다.

이 자습서를 따르고 이 샘플을 생성하면 AWS 계정에 요금이 발생할 수 있습니다. 여기에는 Amazon EC2 및 Amazon S3 같은 서비스에 대한 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 Amazon EC2 요금Amazon S3 요금을 참조하세요.

필수 조건

이 샘플을 사용하기 전에 설정이 다음 요구 사항을 충족하는지 확인하세요.

  • 기존 AWS Cloud9 EC2 개발 환경이 있어야 합니다. 이 샘플에서는 Amazon Linux 또는 Ubuntu 서버를 실행 중인 Amazon EC2 인스턴스에 연결된 EC2 환경이 이미 있다고 가정합니다. 다른 환경 또는 운영 시스템이라면 이 샘플 지침을 관련 도구를 설치하는 데에 적용해야 합니다. 자세한 설명은 AWS Cloud9에서 환경 생성 섹션을 참조하세요.

  • 기존 환경에 대한 AWS Cloud9 IDE가 이미 열려 있습니다. 환경을 열 때 AWS Cloud9은 웹 브라우저에서 환경을 위한 IDE를 엽니다. 자세한 설명은 AWS Cloud9에서 환경 열기 섹션을 참조하세요.

1단계: 필수 도구 설치

이 단계에서는 이 샘플을 실행할 때 필요한 PHP를 설치합니다.

참고

다음 절차에서는 PHP만 설치합니다. Apache 웹 서버 및 MySQL 데이터베이스와 같은 관련 도구를 설치하려면 Linux 인스턴스용 Amazon EC2 사용 설명서에서 자습서: Amazon Linux에 LAMP 웹 서버 설치를 참조하세요.

  1. AWS Cloud9 IDE의 터미널 세션에서 php --version 명령을 실행하여 PHP가 이미 설치되었는지 여부를 확인합니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.) 성공할 경우, PHP 버전 숫자를 포함해 출력값이 생성됩니다. PHP가 설치된 경우 2단계: 코드 추가로 이동합니다.

  2. yum update 명령(Amazon Linux) 또는 apt update 명령(Ubuntu Server)을 실행하여 최신 보안 업데이트와 버그 수정이 설치되어 있는지 확인합니다.

    Amazon Linux 2 및 Amazon Linux의 경우:

    sudo yum -y update

    Ubuntu Server:

    sudo apt update
  3. install 명령을 실행하여 PHP를 설치합니다.

    대상 Amazon Linux 2:

    sudo amazon-linux-extras install -y php7.2

    Amazon Linux의 경우:

    sudo yum -y install php72
    참고

    다음 명령을 사용하여 Amazon Linux 버전을 볼 수 있습니다.

    cat /etc/system-release

    Ubuntu Server:

    sudo apt install -y php php-xml

    자세한 내용은 PHP 웹 사이트에서 설치 및 구성을 참조하세요.

2단계: 코드 추가

AWS Cloud9 IDE에서 이 콘텐츠를 사용해 파일을 생성하고 hello.php라는 이름으로 파일을 저장합니다. (파일을 생성하려면 메뉴 모음에서 [파일(File)], [새 파일]을 선택합니다. 파일을 저장하려면 [파일(File)], [저장(Save)]을 선택하고 [파일 이름(Filename)]에 hello.php을 입력한 다음 [저장(Save)]을 선택합니다.)

<?php print('Hello, World!'); print("\nThe sum of 2 and 3 is 5."); $sum = (int)$argv[1] + (int)$argv[2]; print("\nThe sum of $argv[1] and $argv[2] is $sum."); ?>
참고

위의 코드는 외부 파일에 종속되지 않습니다. 하지만 파일에 다른 PHP 파일을 포함하거나 필요로 하고 AWS Cloud9이 해당 파일을 사용하여 입력할 때 코드 완성을 수행하도록 하려는 경우 기본 설정(Preferences)에서 프로젝트, PHP 지원, PHP 코드 완성 사용(Project, PHP Support, Enable PHP code completion) 설정을 켠 다음 해당 파일의 경로를 프로젝트, PHP 지원, PHP 완성 경로 포함(Project, PHP Support, PHP Completion Include Paths) 설정에 추가합니다. (기본 설정을 보고 변경하려면 메뉴 모음에서 AWS Cloud9, Preferences(기본 설정)를 선택합니다.)

3단계: 코드 실행

  1. AWS Cloud9 IDE의 메뉴 모음에서 [실행(Run)], [실행 구성(Run Configurations)] 및 [새 실행 구성(New Run Configuration)]을 선택합니다.

  2. [[새로 만들기] - 유휴([New] - Idle)] 탭에서 [러너: 자동(Runner: Auto)]을 선택한 다음 [PHP(cli)]를 선택합니다.

  3. 명령hello.php 5 9를 입력합니다. 코드에서 5$argv[1]를 나타내고 9$argv[2]를 나타냅니다. ($argv[0]는 파일의 이름(hello.php)을 나타냅니다.)

  4. Run(실행) 버튼을 선택하여 출력값을 비교합니다.

    Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.

            AWS Cloud9 IDE의 PHP 코드 실행 출력

4단계: AWS SDK for PHP 설치 및 구성

이 샘플을 응용해 AWS SDK for PHP을 사용하여 Amazon S3 버킷을 생성하고 사용 가능한 버킷을 나열한 다음 방금 생성한 버킷을 삭제합니다.

이 단계에서는 PHP 코드에서 Amazon S3와 같은 AWS 서비스와 상호 작용할 수 있는 편리한 방법을 제공하는 AWS SDK for PHP를 설치 및 구성합니다. AWS SDK for PHP를 설치하려면 먼저 Composer를 설치해야 합니다. AWS SDK for PHP를 설치한 후, 환경에서 자격 증명 관리를 설정해야 합니다. AWS SDK for PHP는 AWS 서비스와 상호 작용하기 위해서 이런 자격 증명이 필요합니다.

Composer를 설치하려면

자동(-s) 및 오류 표시(-S) 옵션을 사용하여 curl 명령을 실행하고, Composer 설치 관리자를 composer.phar(명명 규칙에 따른 이름)이라는 PHP 아카이브(PHAR) 파일로 파이핑합니다.

curl -sS https://getcomposer.org/installer | php

AWS SDK for PHP를 설치하려면

Ubuntu Server의 경우, Composer가 AWS SDK for PHP를 설치하는 데 필요한 추가 패키지를 설치합니다.

sudo apt install -y php-xml php-curl

Amazon Linux 또는 Ubuntu Server의 경우 php 명령을 사용하여 Composer 설치 관리자를 실행하여 AWS SDK for PHP를 설치합니다.

php composer.phar require aws/aws-sdk-php

이 명령은 사용자 환경에 여러 폴더와 파일을 만듭니다. 사용할 주 파일은 autoload.php이고 환경의 vendor 폴더에 있습니다.

참고

설치 후 Composer는 추가 종속 구성 요소를 설치하도록 제안할 수 있습니다. 설치할 종속 구성 요소 목록을 지정하고 다음과 같은 명령을 사용하여 아룰 수행할 수 있습니다. 예를 들어 다음 명령은 종속 구성 요소의 다음 목록을 설치하도록 Composer에 지시합니다.

php composer.phar require psr/log ext-curl doctrine/cache aws/aws-php-sns-message-validator

자세한 내용은 AWS SDK for PHP 개발자 가이드에서 설치를 참조하세요.

환경에서 자격 증명 관리를 설정하려면

AWS SDK for PHP을 사용하여 AWS 서비스를 호출할 때마다 호출과 함께 자격 증명 세트를 제공해야 합니다. 이러한 자격 증명은 AWS SDK for PHP가 해당 호출을 할 수 있는 적절한 권한이 있는지 여부를 결정합니다. 자격 증명으로 적절한 권한이 확인되지 않는 경우 호출이 실패합니다.

이 단계에서는 환경 내에서 자격 증명을 저장합니다. 이렇게 하려면 AWS Cloud9의 환경에서 AWS 서비스 호출 섹션의 지침을 수행한 다음 이 주제로 돌아옵니다.

자세한 내용은 AWS SDK for PHP 개발자 가이드에서 기본 사용법의 ‘클라이언트 생성’ 섹션을 참조하세요.

5단계: AWS SDK 코드 추가

이 단계에서는 몇 가지 코드를 더 추가합니다. 이번 경우에는 Amazon S3와 상호 작용하기 위한 것이며 버킷을 생성하고 사용 가능한 버킷을 나열한 다음 막 생성한 버킷을 삭제합니다. 이 코드를 나중에 실행합니다.

AWS Cloud9 IDE에서 이 콘텐츠를 사용해 파일을 생성하고 s3.php라는 이름으로 파일을 저장합니다.

<?php require './vendor/autoload.php'; if ($argc < 4) { exit("Usage: php s3.php <the time zone> <the bucket name> <the AWS Region to use>\n" . "Example: php s3.php America/Los_Angeles my-test-bucket us-east-2"); } $timeZone = $argv[1]; $bucketName = $argv[2]; $region = $argv[3]; date_default_timezone_set($timeZone); $s3 = new Aws\S3\S3Client([ 'region' => $region, 'version' => '2006-03-01' ]); # Lists all of your available buckets in this AWS Region. function listMyBuckets($s3) { print("\nMy buckets now are:\n"); $promise = $s3->listBucketsAsync(); $result = $promise->wait(); foreach ($result['Buckets'] as $bucket) { print("\n"); print($bucket['Name']); } } listMyBuckets($s3); # Create a new bucket. print("\n\nCreating a new bucket named '$bucketName'...\n"); try { $promise = $s3->createBucketAsync([ 'Bucket' => $bucketName, 'CreateBucketConfiguration' => [ 'LocationConstraint' => $region ] ]); $promise->wait(); } catch (Exception $e) { if ($e->getCode() == 'BucketAlreadyExists') { exit("\nCannot create the bucket. " . "A bucket with the name '$bucketName' already exists. Exiting."); } } listMyBuckets($s3); # Delete the bucket you just created. print("\n\nDeleting the bucket named '$bucketName'...\n"); $promise = $s3->deleteBucketAsync([ 'Bucket' => $bucketName ]); $promise->wait(); listMyBuckets($s3); ?>

6단계: AWS SDK 코드 실행

  1. AWS Cloud9 IDE의 메뉴 모음에서 [실행(Run)], [실행 구성(Run Configurations)] 및 [새 실행 구성(New Run Configuration)]을 선택합니다.

  2. [[새로 만들기] - 유휴([New] - Idle)] 탭에서 [러너: 자동(Runner: Auto)]을 선택한 다음 [PHP(cli)]를 선택합니다.

  3. 명령s3.php America/Los_Angeles my-test-bucket us-east-2을 입력합니다.

    • America/Los_Angeles는 기본 시간대 ID입니다. 더 많은 ID를 보려면 PHP 웹 사이트에서 지원되는 시간대 목록을 참조하세요.

    • my-test-bucket은 생성한 다음 삭제하려는 버킷 이름입니다.

      참고

      Amazon S3 버킷 이름은 해당 AWS 계정뿐만 아니라 모든 AWS에서 고유해야 합니다.

    • us-east-2은 버킷을 생성할 AWS 리전의 ID입니다. 더 많은 ID는 Amazon Web Services 일반 참조의 Amazon Simple Storage Service(Amazon S3)를 참조하세요.

  4. Run(실행) 버튼을 선택하여 출력값을 비교합니다.

    My buckets now are: Creating a new bucket named 'my-test-bucket'... My buckets now are: my-test-bucket Deleting the bucket named 'my-test-bucket'... My buckets now are:

7단계: 정리

이 샘플 사용 후 AWS 계정에 계속하여 요금이 부과되지 않도록 환경을 삭제해야 합니다. 지침은 AWS Cloud9에서 환경 삭제을(를) 참조하세요.

AWS Cloud9용 PHP 러너 관련 문제 해결 방법

PHP CLI 러너에서 문제가 발생하는 경우, 러너가 PHP로 설정되어 있고 디버거 모드가 활성화되어 있는지 확인해야 합니다.