

 AWS Cloud9 不再提供給新客戶。 AWS Cloud9 的現有客戶可以繼續正常使用該服務。[進一步了解](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

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

# 的 PHP 教學課程 AWS Cloud9
<a name="sample-php"></a>

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

遵循本教學課程並建立此範例可能會導致您的帳戶 AWS 產生費用。其中包括 Amazon EC2 和 Amazon S3 這類服務可能的費用。如需詳細資訊，請參閱 [Amazon EC2 定價](https://aws.amazon.com/ec2/pricing/)和 [Amazon S3 定價](https://aws.amazon.com/s3/pricing/)。

**Topics**
+ [先決條件](#sample-php-prereqs)
+ [步驟 1：安裝必要工具](#sample-php-install)
+ [步驟 2：新增程式碼](#sample-php-code)
+ [步驟 3：執行程式碼](#sample-php-run)
+ [步驟 4：安裝和設定 適用於 PHP 的 AWS SDK](#sample-php-sdk)
+ [步驟 5：新增 AWS SDK 程式碼](#sample-php-sdk-code)
+ [步驟 6：執行 AWS SDK 程式碼](#sample-php-sdk-run)
+ [步驟 7：清除](#sample-php-clean-up)

## 先決條件
<a name="sample-php-prereqs"></a>

在您使用此範例前，請務必確認您的設定符合下列要求：
+ **您必須擁有現有的 AWS Cloud9 EC2 開發環境。**本範例假設您已具備 EC2 環境，且該環境已連線到執行 Amazon Linux 或 Ubuntu Server 的 Amazon EC2 執行個體。如果您有不同類型的環境或作業系統，您可能需要依照此範例的說明來設定相關工具。如需詳細資訊，請參閱[在 中建立環境 AWS Cloud9](create-environment.md)。
+ **您已開啟現有環境的 AWS Cloud9 IDE。**當您開啟環境時，請在 Web 瀏覽器中 AWS Cloud9 開啟該環境的 IDE。如需詳細資訊，請參閱[在 中開啟環境 AWS Cloud9](open-environment.md)。

## 步驟 1：安裝必要工具
<a name="sample-php-install"></a>

在此步驟中，您將安裝 PHP，這是執行此範例的必要工具。

**注意**  
下列程序只會安裝 PHP。若要安裝 Apache Web 伺服器和 MySQL 資料庫等相關工具，請參閱《[Amazon EC2 使用者指南》中的教學課程：在 Amazon Linux 上安裝 LAMP Web 伺服器](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html)。 *Amazon EC2 *

1. 在 IDE AWS Cloud9 的終端機工作階段中，執行 **`php --version`**命令以確認是否已安裝 PHP。(若要啟動新終端機工作階段，請在選單列上，選擇 **Window** (視窗)、**New Terminal** (新增終端機)。如果成功，輸出會包含 PHP 版本號碼。如果已安裝 PHP，請直接跳到[步驟 2：新增程式碼](#sample-php-code)。

1. 執行 **`yum update`** (適用於 Amazon Linux) 或 **`apt update`** (適用於 Ubuntu Server) 命令，協助確保已安裝最新安全性更新和錯誤修正。

   針對 Amazon Linux 2 和 Amazon Linux：

   ```
   sudo yum -y update
   ```

   針對 Ubuntu Server：

   ```
   sudo apt update
   ```

1. 執行 ** `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 網站上的 [Installation and Configuration](http://php.net/manual/en/install.php)。

## 步驟 2：新增程式碼
<a name="sample-php-code"></a>

在 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：執行程式碼
<a name="sample-php-run"></a>

1. 在 AWS Cloud9 IDE 的選單列中，選擇**執行**、**執行組態**、**新執行組態**。

1. 在 **[New] - Idle** ([新增] - 閒置) 標籤上，選擇 **Runner: Auto** (執行器: 自動)，然後選擇 **PHP (cli)**。

1. 在 **Command (命令)** 中輸入 `hello.php 5 9`。在程式碼中，`5` 代表 `$argv[1]`，而 `9` 代表 `$argv[2]`。(`$argv[0]` 代表檔案名稱 (`hello.php`))。

1. 選擇 **Run** (執行) 按鈕，然後對照您的輸出。

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

![\[在 IDE 中執行 PHP AWS Cloud9 程式碼的輸出\]](http://docs.aws.amazon.com/zh_tw/cloud9/latest/user-guide/images/ide-php-simple.png)


## 步驟 4：安裝和設定 適用於 PHP 的 AWS SDK
<a name="sample-php-sdk"></a>

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

在此步驟中，您會安裝並設定 適用於 PHP 的 AWS SDK，這可讓您透過 PHP 程式碼與 Amazon S3 等 AWS 服務互動。在安裝 之前 適用於 PHP 的 AWS SDK，您應該安裝 [Composer](https://getcomposer.org/)。安裝 之後 適用於 PHP 的 AWS SDK，您必須在環境中設定登入資料管理。 適用於 PHP 的 AWS SDK 需要這些登入資料才能與 AWS 服務互動。

### 安裝 Composer
<a name="sample-php-sdk-install-composer"></a>

搭配無訊息 (**) 執行 `curl` ** `-s` 命令，並顯示錯誤 (`-S`) 選項，以透過管線將 Composer 安裝程式放入 PHP 封存檔 (PHAR) (依慣例命名為 `composer.phar`)。

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

### 安裝 適用於 PHP 的 AWS SDK
<a name="sample-php-sdk-install-sdk"></a>

對於 Ubuntu Server，安裝 Composer 安裝 適用於 PHP 的 AWS SDK時所需的額外套件。

```
sudo apt install -y php-xml php-curl
```

如為 Amazon Linux 或 Ubuntu Server，請使用 **php** 命令執行 Composer 安裝程式來安裝 適用於 PHP 的 AWS SDK。

```
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
```

如需詳細資訊，請參閱 *適用於 PHP 的 AWS SDK 開發人員指南*中的[安裝](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/installation.html)。

### 在環境中設定憑證管理
<a name="sample-php-sdk-creds"></a>

每次使用 適用於 PHP 的 AWS SDK 來呼叫 AWS 服務時，您必須隨呼叫提供一組登入資料。這些登入資料會判斷 是否 適用於 PHP 的 AWS SDK 具有進行該呼叫的適當許可。如果登入資料未涵蓋適當許可，呼叫即會失敗。

在此步驟中，您會在環境中存放您的憑證。若要這麼做，請遵循 [AWS 服務 從 中的環境呼叫 AWS Cloud9](credentials.md) 中的指示，然後返回本主題。

如需詳細資訊，請參閱 *適用於 PHP 的 AWS SDK 開發人員指南*中[基本用量](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/basic-usage.html)的「建立用戶端」一節。

## 步驟 5：新增 AWS SDK 程式碼
<a name="sample-php-sdk-code"></a>

在此步驟中，您會再新增其他程式碼，這次是要與 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 程式碼
<a name="sample-php-sdk-run"></a>

1. 在 AWS Cloud9 IDE 的選單列中，選擇**執行**、**執行組態**、**新執行組態**。

1. 在 **[New] - Idle** ([新增] - 閒置) 標籤上，選擇 **Runner: Auto** (執行器: 自動)，然後選擇 **PHP (cli)**。

1. 針對 **Command (命令)**，輸入 `s3.php America/Los_Angeles my-test-bucket us-east-2`，其中：
   +  `America/Los_Angeles` 是您的預設時區 ID。如需其他 ID，請參閱 PHP 網站上的「[支援的時區清單](http://php.net/manual/en/timezones.php)」。
   +  `my-test-bucket` 是您想要建立然後刪除的儲存貯體名稱。
**注意**  
Amazon S3 儲存貯體名稱必須是唯一的 AWS，而不只是您的帳戶 AWS 。
   +  `us-east-2` 是您要在其中建立儲存貯 AWS 體的區域 ID。其他區域的 ID 請參閱《[》章節 ](https://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region)Amazon Simple Storage Service (Amazon S3)*Amazon Web Services 一般參考*。

1. 選擇 **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：清除
<a name="sample-php-clean-up"></a>

為了避免在您完成使用此範例後持續向您的 AWS 帳戶收取費用，您應該刪除環境。如需說明，請參閱[在 中刪除環境 AWS Cloud9](delete-environment.md)。

### 針對適用於 的 PHP 執行器問題進行故障診斷 AWS Cloud9
<a name="sample-php-troubleshooting"></a>

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