

 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: をインストールして設定する AWS SDK for PHP](#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 開発環境が必要です。**このサンプルは、Amazon Linux または Ubuntu Server を実行する Amazon EC2 インスタンスに接続された EC2 環境が既にあることを前提としています。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「[での環境の作成 AWS Cloud9](create-environment.md)」を参照してください。
+ **既存の環境の AWS Cloud9 IDE が既に開いている。**環境を開くと、 はウェブブラウザでその環境の IDE AWS Cloud9 を開きます。詳細については、「[で環境を開く AWS Cloud9](open-environment.md)」を参照してください。

## ステップ 1: 必要なツールをインストールする
<a name="sample-php-install"></a>

このステップでは PHP をインストールして設定します。このサンプルを実行するために必要なものです。

**注記**  
次の手順では、PHP のみがインストールされます。Apache ウェブサーバーや MySQL データベースなどの関連ツールをインストールするには、*Amazon EC2 ユーザーガイド*の「[チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/install-LAMP.html)」を参照してください。

1.  AWS Cloud9 IDE のターミナルセッションで、 ** `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 ウェブサイトの「[インストールと設定](http://php.net/manual/en/install.php)」を参照してください。

## ステップ 2: コードを追加する
<a name="sample-php-code"></a>

 AWS Cloud9 IDE で、このコンテンツを含むファイルを作成し、 という名前でファイルを保存します`hello.php`。(ファイルを作成するには、メニューバーで**ファイル**,**New File (新しいファイル)**を選択します。 ファイルを保存するには、［**ファイル**,**保存**］を選択し、［**ファイル名**］に `hello.php` と入力してから［**保存**］を選択します。)

```
<?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］、［設定**］の順に選択します。)

## ステップ 3: コードを実行する
<a name="sample-php-run"></a>

1.  AWS Cloud9 IDE のメニューバーで、**Run**、**Run Configurations**、**New Run Configuration** を選択します。

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/ja_jp/cloud9/latest/user-guide/images/ide-php-simple.png)


## ステップ 4: をインストールして設定する AWS SDK for PHP
<a name="sample-php-sdk"></a>

このサンプルを強化して、 AWS SDK for PHP を使用して Amazon S3 バケットを作成し、使用可能なバケットを一覧表示してから、先ほど作成したバケットを削除できます。

このステップでは、PHP コードから Amazon S3 などの AWS サービスとやり取りする便利な方法 AWS SDK for PHPを提供する をインストールして設定します。をインストールする前に AWS SDK for PHP、[Composer](https://getcomposer.org/) をインストールする必要があります。をインストールしたら AWS SDK for PHP、 環境で認証情報管理を設定する必要があります。が AWS サービスとやり取りするには、これらの認証情報 AWS SDK for PHP が必要です。

### Composer をインストールするには
<a name="sample-php-sdk-install-composer"></a>

サイレント (**) とエラー表示 (`curl`) オプションを指定して ** `-s` `-S` コマンドを実行し、Composer インストーラを PHP アーカイブ (PHAR) ファイル (判りやすくするために `composer.phar` という名前にします) にパイピングします。

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

### をインストールするには AWS SDK for PHP
<a name="sample-php-sdk-install-sdk"></a>

Ubuntu Server では、 AWS SDK for PHPをインストールするために Composer に必要な追加のパッケージをインストールします。

```
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 デベロッパーガイド*の「[インストール](https://docs.aws.amazon.com/sdk-for-php/v3/developer-guide/installation.html)」を参照してください。

### 環境で認証情報管理を設定するには
<a name="sample-php-sdk-creds"></a>

を使用して AWS サービスを AWS SDK for PHP 呼び出すたびに、呼び出しで一連の認証情報を指定する必要があります。これらの認証情報は、 にその呼び出しを行うための適切なアクセス許可 AWS SDK for PHP があるかどうかを決定します。認証情報に適切なアクセス権限がない場合は、呼び出しは失敗します。

このステップでは、環境内に認証情報を保存します。これを行うには、[の環境 AWS のサービス からの呼び出し AWS Cloud9](credentials.md) の手順を実行してから、このトピックに戻ります。

詳細については、*AWS SDK for PHP デベロッパーガイド*にある[ベーシック用法](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 のメニューバーで、**Run**、**Run Configurations**、**New Run Configuration** を選択します。

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. ［**実行**］ボタンを選択して、出力を比較します。

   ```
   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 に設定され、デバッガーモードが有効になっていることを確認する必要があります。