PHP 的教學課程 AWS Cloud9 - AWS Cloud9

AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。進一步了解

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

PHP 的教學課程 AWS Cloud9

本教學課程可讓您在 AWS Cloud9 開發環境中執行一些PHP指令碼。

遵循本教學課程並建立此範例可能會導致您的帳戶 AWS 產生費用。這包括 Amazon EC2和 Amazon S3 等服務的可能費用。如需詳細資訊,請參閱 Amazon EC2 PricingAmazon S3 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 伺服器

  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. 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:執行程式碼

  1. 在 AWS Cloud9 IDE的選單列中,選擇執行 執行組態 新執行組態

  2. 【新增】 - 閒置索引標籤上,選擇 Runner: Auto ,然後選擇 PHP(cli)

  3. Command (命令) 中輸入 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.
在 中執行PHP程式碼的輸出 AWS Cloud9 IDE

步驟 4:安裝和設定 AWS SDK for PHP

您可以增強此範例以使用 AWS SDK for PHP 建立 Amazon S3 儲存貯體、列出可用的儲存貯體,然後刪除剛建立的儲存貯體。

在此步驟中,您會安裝並設定 AWS SDK for PHP,這提供了一種從PHP程式碼與 Amazon S3 等 AWS 服務互動的便利方式。在安裝 之前 AWS SDK for PHP,您應該安裝 Composer 。安裝 之後 AWS SDK for PHP,您必須在環境中設定憑證管理。 AWS SDK for PHP 需要這些憑證才能與服務互動 AWS 。

安裝 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程式碼

  1. 在 AWS Cloud9 IDE的選單列中,選擇執行 執行組態 新執行組態

  2. 【新增】 - 閒置索引標籤上,選擇執行器:自動 ,然後選擇 PHP(cli)

  3. 針對 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 一般參考

  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 中的環境

對 PHP Runner for 的問題進行故障診斷 AWS Cloud9

如果您遇到PHPCLI執行器的問題,您必須確保執行器已設定為 ,PHP且已啟用偵錯器模式。