AWS Cloud9 는 더 이상 신규 고객이 사용할 수 없습니다. AWS Cloud9 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
에 대한 PHP 자습서 AWS Cloud9
이 자습서를 사용하면 AWS Cloud9 개발 환경에서 일부 PHP 스크립트를 실행할 수 있습니다.
이 자습서를 따르고 이 샘플을 생성하면 AWS
계정에 요금이 발생할 수 있습니다. 여기에는 Amazon EC2 및 Amazon S3 같은 서비스에 대한 발생할 수 있는 요금이 포함됩니다. 자세한 내용은 Amazon EC2 요금
주제
사전 조건
이 샘플을 사용하기 전에 설정이 다음 요구 사항을 충족하는지 확인하세요.
-
기존 AWS Cloud9 EC2 개발 환경이 있어야 합니다. 이 샘플에서는 Amazon Linux 또는 Ubuntu 서버를 실행 중인 Amazon EC2 인스턴스에 연결된 EC2 환경이 이미 있다고 가정합니다. 다른 환경 또는 운영 시스템이라면 이 샘플 지침을 관련 도구를 설치하는 데에 적용해야 합니다. 자세한 내용은 에서 환경 생성 AWS Cloud9 단원을 참조하십시오.
-
기존 환경의 AWS Cloud9 IDE가 이미 열려 있습니다. 환경을 열면가 웹 브라우저에서 해당 환경의 IDE를 AWS Cloud9 엽니다. 자세한 내용은 에서 환경 열기 AWS Cloud9 단원을 참조하십시오.
1단계: 필수 도구 설치
이 단계에서는 이 샘플을 실행할 때 필요한 PHP를 설치합니다.
참고
다음 절차에서는 PHP만 설치합니다. Apache 웹 서버 및 MySQL 데이터베이스와 같은 관련 도구를 설치하려면 Amazon EC2 사용 설명서에서 자습서: Amazon Linux에 LAMP 웹 서버 설치를 참조하세요.
-
AWS Cloud9 IDE의 터미널 세션에서
php --version명령을 실행하여 PHP가 이미 설치되어 있는지 확인합니다. (터미널 세션을 새로 시작하려면 메뉴 모음에서 Window(창), New Terminal(새 터미널)을 선택합니다.) 성공할 경우, PHP 버전 숫자를 포함해 출력값이 생성됩니다. PHP가 설치된 경우 2단계: 코드 추가로 이동합니다. -
yum update명령(Amazon Linux) 또는apt update명령(Ubuntu Server)을 실행하여 최신 보안 업데이트와 버그 수정이 설치되어 있는지 확인합니다.Amazon Linux 2 및 Amazon Linux의 경우:
sudo yum -y updateUbuntu Server:
sudo apt update -
install명령을 실행하여 PHP를 설치합니다.대상 Amazon Linux 2:
sudo amazon-linux-extras install -y php7.2Amazon Linux의 경우:
sudo yum -y install php72참고
다음 명령을 사용하여 Amazon Linux 버전을 볼 수 있습니다.
cat /etc/system-releaseUbuntu 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의 메뉴 모음에서 실행, 실행 구성, 새 실행 구성을 선택합니다.
-
[[새로 만들기] - 유휴([New] - Idle)] 탭에서 [러너: 자동(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) 및 오류 표시(-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 서비스를 호출 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의 메뉴 모음에서 실행, 실행 구성, 새 실행 구성을 선택합니다.
-
[[새로 만들기] - 유휴([New] - Idle)] 탭에서 [러너: 자동(Runner: Auto)]을 선택한 다음 [PHP(cli)]를 선택합니다.
-
명령에
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)를 참조하세요.
-
-
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로 설정되어 있고 디버거 모드가 활성화되어 있는지 확인해야 합니다.