メニュー
AWS Elastic Beanstalk
開発者ガイド (API Version 2010-12-01)

AWS Elastic Beanstalk PHP プラットフォームを使用する

AWS Elastic Beanstalk は、さまざまなバージョンの PHP プログラミング言語用のプラットフォームを多数サポートしています。これらのプラットフォームは、単独でまたは Composer で実行できる PHP ウェブアプリケーションをサポートしています。事前設定済みプラットフォームのトピックで詳細を確認してください。

Elastic Beanstalk には、Elastic Beanstalk 環境内の EC2 インスタンスで実行されるソフトウェアのカスタマイズに使用できる設定オプションが用意されています。必要に応じてアプリケーションの環境変数を設定し、Amazon S3 へのログローテーションを有効にし、一般的な PHP 初期化設定を設定します。

プラットフォームに固有の設定オプションは AWS マネジメントコンソール で実行中の環境の設定を変更するために利用できます。環境を終了したときにその設定が失われないようにするため、保存済み設定を使用して設定を保存し、それを後で他の環境に適用することができます。

ソースコードの設定を保存する場合、設定ファイルを含めることができます。設定ファイルの設定は、環境を作成するたびに、またはアプリケーションをデプロイするたびに適用されます。設定ファイルを使用して、デプロイの間にパッケージをインストールしたり、スクリプトを実行したり、他のインスタンスのカスタマイズオペレーションを実行することもできます。

Composer を使用すると、デプロイの間にパッケージをインストールするために、ソースバンドルに composer.json ファイルを含めることができます。

設定オプションとして提供されない高度な PHP 設定、および PHP の設定の場合、設定ファイルを使用して、Elastic Beanstalk により適用されるデフォルト設定を拡張および上書きできる INI ファイル の提供および追加拡張ができます。

AWS マネジメントコンソール で適用される設定は、設定ファイルに同じ設定があれば、それらの設定を上書きします。これにより、設定ファイルでデフォルト設定を定義し、コンソールでそのデフォルト設定を環境に固有の設定で上書きできます。設定の優先順位の詳細と設定の他の変更方法については、「設定オプション」を参照してください。

AWS マネジメントコンソール での PHP 環境の設定

AWS マネジメントコンソール を使用して、Amazon S3 のログローテーションを有効にでき、アプリケーションが環境から読むことができる変数を設定して、PHP 設定を変更します。

PHP 環境の設定オプションにアクセスするには

  1. Elastic Beanstalk コンソールを開きます。

  2. お客様の環境の管理ページに移動します。

  3. [Configuration] を選択します。

  4. [Software Configuration] セクションで、設定アイコン (  を編集します。 ) を選択します。

PHP 設定

  • Document root – サイトのデフォルトページを含むフォルダー。 ウェルカムページが、ソースバンドルのルートにない場合は、ルートパスに関連して、それを含むフォルダーを指定します。 たとえば、ウェルカムページが、/public というフォルダーにある場合は、public にします。

  • メモリ制限 – スクリプトが割り当てる最大メモリ容量。 たとえば、512M と指定します。

  • Zlib 出力の圧縮On に設定して、レスポンスを圧縮します。

  • Allow URL fopenOff に設定して、スクリプトがリモートの場所からファイルをダウンロードすることを防ぎます。

  • Display errorsOn に設定して、デバッグの内部エラーメッセージを表示します。

  • Max execution time – 環境によって終了されるまでの、スクリプトを実行できる最大時間 (秒単位)。

ログオプション

[Log Options] セクションには、2 つの設定があります。

  • Instance profile – アプリケーションに関連付けられた Amazon S3 バケットへのアクセス許可が付与されているインスタンスプロファイルを指定します。

  • Enable log file rotation to Amazon S3 – アプリケーションの Amazon EC2 インスタンスのログファイルを、アプリケーションに関連付けられている Amazon S3 バケットにコピーするかどうかを指定します。

環境プロパティ

[Environment Properties] セクションでは、アプリケーションを実行している Amazon EC2 インスタンスの環境設定を指定できます。これらの設定は、キーと値のペアでアプリケーションに渡されます。

Elastic Beanstalk で実行する PHP 環境内部で、これらの値は /etc/php.d/environment.ini に書き込まれ、$_SERVER または get_cfg_var 関数を使用してアクセスできます。

次のコードは、$_SERVER オブジェクトからパラメーターを出力します。

echo $_SERVER['PARAM1'];
echo $_SERVER['PARAM2'];
echo $_SERVER['PARAM5'];

注記

環境設定では、アクセント記号(`、ASCII 96)は除く、印刷可能な ASCII 文字を使用できます。また、200 文字を超えることはできません。

設定ファイル

設定ファイル を使用して、設定オプションを設定し、デプロイの間、他のインスタンス設定タスクを実行できます。 PHP プラットフォームは、AWS マネジメントコンソール では使用できない aws:elasticbeanstalk:container:php:phpini 名前空間の設定オプションを提供します。

Composer Options を選択すると、composer.phar install で、Composer を使用して依存関係をインストールするときに使用するカスタムオプションを設定します。 使用できるオプションの詳細については、http://getcomposer.org/doc/03-cli.md#install を参照してください。

以下の設定ファイルは、この名前空間で使用できる各オプションの設定の一例を示しています。

option_settings:
  aws:elasticbeanstalk:container:php:phpini:
    document_root: /public
    memory_limit: 128M
    zlib.output_compression: "Off"
    allow_url_fopen: "On"
    display_errors: "Off"
    max_execution_time: 60
    composer_options: vendor/package

Composer ファイル

プロジェクトソースのルートで composer.json ファイルを使用し、composer を使用してアプリケーションに必要なパッケージをインストールします。

例 composer.json

{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}

composer.json ファイルがある場合は、Elastic Beanstalk では依存関係をインストールするために composer.phar install が実行されます。aws:elasticbeanstalk:container:php:phpini 名前空間で composer_options のオプションを設定することにより、オプションを追加して、コマンドに追加できます。

Composer の更新

PHP プラットフォーム設定には、そのリリース時点で最新のバージョンの Composer が付属しています。Composer、PHP、その他のライブラリを最新の状態に保つには、プラットフォーム更新が利用できるときは常に環境を更新してください。

プラットフォームの更新と交信の間は、設定ファイルを使用して環境のインスタンスにある Composer を更新できます。Composer ファイルを含むパッケージをインストールする際にエラーが表示される場合、または最新のプラットフォームのバージョンを使用できない場合は、Composer を更新する必要がある場合があります。

例 .ebextensions/composer.config

commands:
  01updateComposer:
    command: export COMPOSER_HOME=/root && /usr/bin/composer.phar self-update 1.4.1

option_settings:
  - namespace: aws:elasticbeanstalk:application:environment
    option_name: COMPOSER_HOME
    value: /root

設定ファイルは、Composer が自身をバージョン 1.4.1 に更新するように設定されています。最新バージョンを確認するには、GitHub の Composer リリースページをご覧ください。

注記

composer.phar self-update コマンドでバージョン番号を省略すると、Composer はソースコードをデプロイする際、および Auto Scaling によって新しいインスタンスがプロビジョニングされる際に毎回、利用可能な最新バージョンに更新されます。そのため、アプリケーションに対応しない Composer のバージョンがリリースされていると、スケーリングオペレーションおよびデプロイが失敗する場合があります。

php.ini の拡張

files ブロックで設定ファイルを使用して、.ini ファイルを環境のインスタンスの /etc/php.d/ に追加します。主要な設定ファイルの php.ini は、このフォルダーにファイルの設定をアルファベット順に取得します。 多くの拡張機能はこのフォルダーのファイルによりデフォルトで有効になります。

例 .ebextensions/mongo.config

files:
  "/etc/php.d/99mongo.ini" :
    mode: "000755"
    owner: root
    group: root
    content: |
      extension=mongo.so