AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
PHP 에 대한 자습서 AWS Cloud9
이 자습서를 사용하면 AWS Cloud9 개발 환경에서 일부 PHP 스크립트를 실행할 수 있습니다.
이 자습서를 따르고 이 샘플을 생성하면 AWS
계정에 요금이 발생할 수 있습니다. 여기에는 Amazon EC2 및 Amazon S3와 같은 서비스에 대해 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 Amazon EC2 요금
주제
사전 조건
이 샘플을 사용하기 전에 설정이 다음 요구 사항을 충족하는지 확인하세요.
-
기존 AWS Cloud9 EC2 개발 환경이 있어야 합니다. 이 샘플에서는 Amazon Linux 또는 를 실행하는 Amazon EC2 인스턴스에 연결된 EC2 환경이 이미 있다고 가정합니다.Ubuntu 서버. 다른 환경 또는 운영 시스템이라면 이 샘플 지침을 관련 도구를 설치하는 데에 적용해야 합니다. 자세한 내용은 에서 환경 생성 AWS Cloud9 단원을 참조하십시오.
-
기존 환경의 AWS Cloud9 IDE가 이미 열려 있습니다. 환경을 열면 는 웹 브라우저에서 해당 환경에 IDE 대한 를 AWS Cloud9 엽니다. 자세한 내용은 AWS Cloud9에서 환경 열기 단원을 참조하십시오.
1단계: 필수 도구 설치
이 단계에서PHP는 이 샘플을 실행하는 데 필요한 를 설치합니다.
참고
다음 절차는 PHP만 설치합니다. Apache 웹 서버 및 내SQL 데이터베이스와 같은 관련 도구를 설치하려면 Amazon EC2 사용 설명서의 자습서: Amazon Linux에 LAMP 웹 서버 설치를 참조하세요.
-
의 터미널 세션에서
php --version
명령을 실행하여 PHP가 이미 설치되어 있는지 AWS Cloud9 IDE확인합니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.) 성공하면 출력에 PHP 버전 번호가 포함됩니다. PHP 가 설치된 경우 로 건너뜁니다2단계: 코드 추가. -
yum update
명령(Amazon Linux) 또는apt update
명령(Ubuntu Server)을 실행하여 최신 보안 업데이트와 버그 수정이 설치되어 있는지 확인합니다.Amazon Linux 2 및 Amazon Linux의 경우:
sudo yum -y update
Ubuntu Server:
sudo apt update
-
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 하려는 경우 기본 설정에서 프로젝트, PHP 지원, PHP 코드 완료 설정 활성화를 켠 다음 해당 파일에 대한 경로를 프로젝트, PHP 지원, PHP 완료 경로 포함 설정에 추가합니다. (기본 설정을 보고 변경하려면 메뉴 모음에서 AWS Cloud9, Preferences(기본 설정)를 선택합니다.)
3단계: 코드 실행
-
의 메뉴 모음 AWS Cloud9 IDE에서 실행 , 구성 실행 , 새 실행 구성 을 선택합니다.
-
[신규] - 유휴 탭에서 Runner: Auto를 선택한 다음 PHP (cli)를 선택합니다.
-
명령에
hello.php 5 9
를 입력합니다. 코드에서5
는$argv[1]
를 나타내고9
는$argv[2]
를 나타냅니다. ($argv[0]
는 파일의 이름(hello.php
)을 나타냅니다.) -
Run(실행) 버튼을 선택하여 출력값을 비교합니다.
Hello, World! The sum of 2 and 3 is 5. The sum of 5 and 9 is 14.
4단계: 설치 및 구성 AWS SDK for PHP
이 샘플을 개선하여 AWS SDK for PHP 를 사용하여 Amazon S3 버킷을 생성하고, 사용 가능한 버킷을 나열한 다음 방금 생성한 버킷을 삭제할 수 있습니다.
이 단계에서는 PHP 코드에서 Amazon S3와 같은 AWS 서비스와 상호 작용하는 편리한 방법을 AWS SDK for PHP제공하는 를 설치하고 구성합니다. 를 설치하려면 먼저 Composer
Composer를 설치하려면
자동(-s
)을 사용하여 curl
명령을 실행하고 오류(-S
) 옵션을 표시하여 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 서비스를 호출 AWS SDK for PHP 할 때마다 호출과 함께 자격 증명 세트를 제공해야 합니다. 이러한 자격 증명은 에 해당 호출을 수행할 수 AWS SDK for PHP 있는 적절한 권한이 있는지 여부를 결정합니다. 자격 증명으로 적절한 권한이 확인되지 않는 경우 호출이 실패합니다.
이 단계에서는 환경 내에서 자격 증명을 저장합니다. 이렇게 하려면 AWS 서비스 의 환경에서 호출 AWS Cloud9 섹션의 지침을 수행한 다음 이 주제로 돌아옵니다.
자세한 내용은 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
-
의 메뉴 모음 AWS Cloud9 IDE에서 실행 , 구성 실행 , 새 실행 구성 을 선택합니다.
-
[신규] - 유휴 탭에서 Runner: Auto를 선택한 다음 PHP (cli)를 선택합니다.
-
명령에
s3.php America/Los_Angeles my-test-bucket us-east-2
을 입력합니다.-
America/Los_Angeles
는 기본 시간대 ID입니다. 자세한 내용은 PHP 웹 사이트의 지원되는 시간대 목록을IDs참조하세요. -
my-test-bucket
은 생성한 다음 삭제하려는 버킷 이름입니다.참고
Amazon S3 버킷 이름은 계정 AWS 뿐만 AWS아니라 여러 계정에서 고유해야 합니다.
-
us-east-2
는 버킷을 생성하려는 AWS 리전의 ID입니다. 자세한 내용은 의 Amazon Simple Storage Service(Amazon S3)를 IDs참조하세요Amazon Web Services 일반 참조.
-
-
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에서 환경 삭제 단원을 참조하십시오.
용 PHP 러너 문제 해결 AWS Cloud9
PHP CLI 러너에 문제가 발생하는 경우 러너가 로 설정되어 PHP 있고 디버거 모드가 활성화되어 있는지 확인해야 합니다.