AWS Cloud9 の PHP サンプル - AWS Cloud9

AWS Cloud9 の PHP サンプル

このサンプルを使用して AWS Cloud9 開発環境でいくつかの PHP スクリプトを実行できます。

このサンプルを作成すると、AWS アカウントに課金される場合があります。Amazon EC2 や Amazon S3 などのサービスに対して発生する可能性がある料金も含まれます。詳細については、「Amazon EC2 料金表」および「Amazon S3 料金表」を参照してください。

前提条件

このサンプルを使用する前に、設定が次の要件を満たしていることを確認します。

  • 既存の AWS Cloud9 EC2 開発環境が存在している必要があります。このサンプルは、Amazon Linux または Ubuntu Server を実行する Amazon EC2 インスタンスに接続された EC2 環境が既にあることを前提としています。別のタイプの環境またはオペレーティングシステムがある場合、このサンプルの指示を関連ツールを設定する必要がある場合があります。詳細については、「AWS Cloud9 で環境を作成する」を参照してください。

  • 既存の環境に既に AWS Cloud9 IDE が開いています。環境を開くと、AWS Cloud9 によってその環境の IDE がウェブブラウザで開かれます。詳細については、「AWS Cloud9 で環境を開く」を参照してください。

ステップ 1: 必要なツールをインストールする

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

注記

次の手順では、PHP のみがインストールされます。Apache ウェブサーバーや MySQL データベースなどの関連ツールをインストールするには、Linux インスタンス用 Amazon EC2 ユーザーガイドの「チュートリアル: Amazon Linux への LAMP ウェブサーバーのインストール」を参照してください。

  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. 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 ウェブサイトの「インストールと設定」を参照してください。

ステップ 2: コードを追加する

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 がこれらのファイルを使用して入力時のコード補完を行うようにする場合は、[Preferences] (設定) で [Project] (プロジェクト)、[PHP Support] (PHP のサポート)、[Enable PHP code completion] (PHP コード補完を有効にする) の順に選択して設定をオンにした後で、[Project] (プロジェクト)、[PHP Support] (PHP のサポート)、[PHP Completion Include Paths] (パスを含む PHP 補完) の順に選択して、これらのファイルのパスを設定に追加します。(設定を表示および変更するには、メニューバーで、[AWS Cloud9]、[設定]の順に選択します。)

ステップ 3: コードを実行する

  1. AWS Cloud9 IDE のメニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)]の順に選択します。

  2. [New]- Idle ([新規]- アイドル)]タブで、[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.

            AWS Cloud9 IDE で PHP コードを実行した場合の出力

ステップ 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 をインストールするには

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

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

AWS SDK for PHPをインストールするには

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デベロッパーガイドの「インストール」を参照してください。

環境で認証情報管理を設定するには

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

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

詳細については、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 のメニューバーで、[Run (実行)]、[Run Configurations (実行設定)]、[New Run Configuration (新しい実行設定)]の順に選択します。

  2. [New]- Idle ([新規]- アイドル)]タブで、[Runner: Auto (ランナー: 自動)]を選択し、[PHP (cli)]を選択します。

  3. Command (コマンド)]に「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 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 で環境を削除する を参照してください。