PHP のチュートリアル AWS Cloud9 - AWS Cloud9

AWS Cloud9 は、新しいお客様では利用できなくなりました。 AWS Cloud9 の既存のお客様は、通常どおりサービスを引き続き使用できます。詳細はこちら

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

PHP のチュートリアル AWS Cloud9

このチュートリアルでは、 AWS Cloud9 開発環境で一部のPHPスクリプトを実行できます。

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

前提条件

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

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

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

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

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

注記

次の手順では、 PHPのみをインストールします。Apache ウェブサーバーや MySQL データベースなどの関連ツールをインストールするには、「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 したい場合は、 設定プロジェクト、PHPサポート、PHPコード完了を有効にする設定をオンにし、それらのファイルにパスをプロジェクト、PHPサポート、PHP完了を含むパス設定に追加します。(設定を表示および変更するには、メニューバーで、[AWS Cloud9]、[設定]の順に選択します。)

ステップ 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 、サービスとやり取りするためにこれらの認証情報 AWS SDK for PHP が必要です。

Composer をインストールするには

コマンドをサイレント (-s) curlで実行し、エラー (-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 サービスを AWS SDK for PHP 呼び出すたびに、呼び出しで一連の認証情報を指定する必要があります。これらの認証情報により、 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. 〔新規] - アイドルタブで、Runner: Auto を選択し、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 に関する問題のトラブルシューティング AWS Cloud9

PHP CLI ランナーに問題がある場合は、ランナーが に設定されPHP、デバッガーモードが有効になっていることを確認する必要があります。