AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
PHP 的教學課程 AWS Cloud9
本教學課程可讓您在 AWS Cloud9 開發環境中執行一些PHP指令碼。
遵循本教學課程並建立此範例可能會導致您的帳戶 AWS 產生費用。這包括 Amazon EC2和 Amazon S3 等服務的可能費用。如需詳細資訊,請參閱 Amazon EC2 Pricing
主題
必要條件
在您使用此範例前,請務必確認您的設定符合下列要求:
-
您必須具有現有的 AWS Cloud9 EC2開發環境。此範例假設您已有連線至執行 Amazon Linux 或 的 Amazon EC2執行個體EC2的環境 Ubuntu 伺服器。如果您有不同類型的環境或作業系統,您可能需要依照此範例的說明來設定相關工具。如需詳細資訊,請參閱在 中建立環境 AWS Cloud9。
-
您已經開啟現有環境的 AWS Cloud9 IDE。當您開啟環境時,請在 Web 瀏覽器中 AWS Cloud9 開啟該環境IDE的 。如需詳細資訊,請參閱在 AWS Cloud9 中開啟環境。
步驟 1:安裝必要工具
在此步驟中,您會安裝 PHP,這是執行此範例所需的 。
注意
下列程序PHP只會安裝 。若要安裝 Apache Web 伺服器和 MySQL 資料庫等相關工具,請參閱 Amazon EC2使用者指南 中的教學課程:在 Amazon Linux 上安裝 LAMP Web 伺服器。
-
在 的終端機工作階段中 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 update
針對 Ubuntu Server:
sudo apt update
-
PHP 執行
install
命令來安裝 。針對 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 (檔案)、New 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)。
-
在 Command (命令) 中輸入
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 儲存貯體、列出可用的儲存貯體,然後刪除剛建立的儲存貯體。
在此步驟中,您會安裝並設定 AWS SDK for PHP,這提供了一種從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 SDK for PHP 呼叫 AWS 服務時,您必須隨呼叫提供一組憑證。這些憑證會判斷 是否 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的選單列中,選擇執行 、執行組態 、新執行組態 。
-
在 【新增】 - 閒置索引標籤上,選擇執行器:自動 ,然後選擇 PHP(cli)。
-
針對 Command (命令),輸入
s3.php America/Los_Angeles my-test-bucket us-east-2
,其中:-
America/Los_Angeles
是您的預設時區 ID。如需更多 IDs,請參閱 PHP 網站上的支援時區清單。 -
my-test-bucket
是您想要建立然後刪除的儲存貯體名稱。注意
Amazon S3 儲存貯體名稱必須是唯一的 AWS,而不只是您的帳戶 AWS 。
-
us-east-2
是您要在其中建立儲存貯體 AWS 的區域 ID。如需 的詳細資訊IDs,請參閱 中的 Amazon Simple Storage Service (Amazon S3)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 Runner for 的問題進行故障診斷 AWS Cloud9
如果您遇到PHPCLI執行器的問題,您必須確保執行器已設定為 ,PHP且已啟用偵錯器模式。