PHP プラットフォームを使用する - AWS App Runner

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

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

AWS App Runner PHP プラットフォームはマネージドランタイムを提供します。各ランタイムを使用して、PHP バージョンに基づいてウェブアプリケーションでコンテナを構築および実行できます。PHP ランタイムを使用すると、App Runner はマネージド PHP ランタイムイメージから開始します。このイメージは Amazon Linux Docker イメージに基づいており、PHP のバージョンと一部のツールのランタイムパッケージが含まれています。App Runner は、このマネージドランタイムイメージをベースイメージとして使用し、アプリケーションコードを追加して Docker イメージを構築します。次に、このイメージをデプロイして、コンテナでウェブサービスを実行します。

App Runner コンソールまたは CreateService API オペレーションを使用してサービスを作成するときに、App Runner サービスのランタイムを指定します。ソースコードの一部としてランタイムを指定することもできます。コードリポジトリに含める App Runner 設定ファイルruntimeキーワードを使用します。マネージドランタイムの命名規則は <language-name><major-version> です。

有効な PHP ランタイム名とバージョンについては、「」を参照してくださいPHP ランタイムリリース情報

App Runner は、デプロイまたはサービスの更新ごとに、サービスのランタイムを最新バージョンに更新します。アプリケーションで特定のバージョンのマネージドランタイムが必要な場合は、App Runner 設定ファイル runtime-versionキーワードを使用して指定できます。メジャーバージョンやマイナーバージョンなど、任意のレベルのバージョンにロックできます。App Runner は、サービスのランタイムに対してのみ下位レベルの更新を行います。

PHP ランタイムのバージョン構文: major[.minor[.patch]]

例:8.1.10

バージョンロックの例を次に示します。

  • 8.1 – メジャーバージョンとマイナーバージョンをロックします。App Runner はパッチバージョンのみを更新します。

  • 8.1.10 – 特定のパッチバージョンにロックします。App Runner はランタイムバージョンを更新しません。

重要

デフォルトのリポジトリルートディレクトリ以外の場所で App Runner サービスのコードリポジトリソースディレクトリを指定する場合は、PHP マネージドランタイムバージョンが PHP 8.1.22以降である必要があります。より前の PHP ランタイムバージョン8.1.22では、デフォルトのルートソースディレクトリのみを使用できます。

PHP ランタイム設定

マネージドランタイムを選択するときは、少なくとも コマンドを構築して実行するように設定する必要があります。App Runner サービスを作成または更新するときに設定します。これは、次のいずれかの方法を使用して実行できます。

  • App Runner コンソールの使用 – 作成プロセスまたは設定タブのビルドの設定セクションでコマンドを指定します。

  • App Runner API の使用CreateServiceまたは UpdateService API オペレーションを呼び出します。CodeConfigurationValues データ型の BuildCommandおよび StartCommandメンバーを使用してコマンドを指定します。

  • 設定ファイルの使用 – 最大 3 つのビルドフェーズで 1 つ以上のビルドコマンドと、アプリケーションを起動する 1 つの実行コマンドを指定します。追加のオプション設定があります。

設定ファイルの提供はオプションです。コンソールまたは API を使用して App Runner サービスを作成する場合、App Runner が作成時に設定を直接取得するか、設定ファイルから取得するかを指定します。

互換性

App Runner サービスは、次のいずれかのウェブサーバーを使用して PHP プラットフォームで実行できます。

  • Apache HTTP Server

  • NGINX

Apache HTTP Server および NGINXは PHP-FPM と互換性があります。Apache HTTP Server と は、次のいずれかNGINXを使用して開始できます。

Apache HTTP Server または NGINX を使用して PHP プラットフォームで App Runner サービスを設定する方法の例については、「」を参照してくださいPHP アプリケーションソースを完了する

ファイル構造

は、ウェブサーバーの root ディレクトリの publicフォルダにインストールindex.phpする必要があります。

注記

startup.sh または supervisord.confファイルは、ウェブサーバーのルートディレクトリに保存することをお勧めします。start コマンドが startup.shまたは supervisord.conf ファイルが保存されている場所を指していることを確認します。

を使用している場合のファイル構造の例を次に示しますsupervisord

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf

スタートアップスクリプト を使用している場合のファイル構造の例を次に示します。

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh

これらのファイル構造は、App Runner サービス用に指定されたコードリポジトリのソースディレクトリに保存することをお勧めします。

/<sourceDirectory>/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
重要

デフォルトのリポジトリルートディレクトリ以外の場所で App Runner サービスのコードリポジトリソースディレクトリを指定する場合は、PHP マネージドランタイムバージョンが PHP 8.1.22以降である必要があります。より前の PHP ランタイムバージョン8.1.22では、デフォルトのルートソースディレクトリのみを使用できます。

App Runner は、デプロイまたはサービスの更新ごとに、サービスのランタイムを最新バージョンに更新します。App Runner 設定ファイルruntime-versionキーワードを使用してバージョンロックを指定しない限り、サービスはデフォルトで最新のランタイムを使用します。

PHP ランタイムの例

PHP サービスの構築と実行に使用される App Runner 設定ファイルの例を次に示します。

次の例は、PHP マネージドランタイムで使用できる最小限の設定ファイルです。最小設定ファイルの詳細については、「」を参照してください設定ファイルの例

例 apprunner.yaml
version: 1.0 runtime: php81 build: commands: build: - echo example build command for PHP run: command: ./startup.sh

次の例では、PHP マネージドランタイムですべての設定キーを使用します。

注記

これらの例で使用されるランタイムバージョンは 8.1.10 です。使用するバージョンに置き換えることができます。サポートされている最新の PHP ランタイムバージョンについては、「」を参照してくださいPHP ランタイムリリース情報

例 apprunner.yaml
version: 1.0 runtime: php81 build: commands: pre-build: - scripts/prebuild.sh build: - echo example build command for PHP post-build: - scripts/postbuild.sh env: - name: MY_VAR_EXAMPLE value: "example" run: runtime-version: 8.1.10 command: ./startup.sh network: port: 5000 env: APP_PORT env: - name: MY_VAR_EXAMPLE value: "example"

次の例は、 Apache HTTP Serverまたは を使用して PHP ランタイムサービスにデプロイするために使用できる PHP アプリケーションのソースコードですNGINX。これらの例では、デフォルトのファイル構造を使用することを前提としています。

Apache HTTP Server を使用して で PHP プラットフォームを実行する supervisord

例 ファイル構造
注記
  • supervisord.conf ファイルはリポジトリのどこにでも保存できます。start コマンドがsupervisord.confファイルの保存先を指していることを確認します。

  • は、 root ディレクトリの publicフォルダにインストールindex.phpする必要があります。

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf
例 supervisord.conf
[supervisord] nodaemon=true [program:httpd] command=httpd -DFOREGROUND autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:php-fpm] command=php-fpm -F autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0
例 apprunner.yaml
version: 1.0 runtime: php81 build: commands: build: - PYTHON=python2 amazon-linux-extras install epel - yum -y install supervisor run: command: supervisord network: port: 8080 env: APP_PORT
例 index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>

Apache HTTP Server を使用して で PHP プラットフォームを実行する startup script

例 ファイル構造
注記
  • startup.sh ファイルはリポジトリのどこにでも保存できます。start コマンドがstartup.shファイルの保存先を指していることを確認します。

  • は、 root ディレクトリの publicフォルダにインストールindex.phpする必要があります。

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
例 startup.sh
#!/bin/bash set -o monitor trap exit SIGCHLD # Start apache httpd -DFOREGROUND & # Start php-fpm php-fpm -F & wait
注記
  • Git リポジトリにコミットする前に、startup.shファイルを実行可能ファイルとして保存してください。を使用してchmod +x startup.shstartup.sh ファイルに実行アクセス許可を設定します。

  • startup.sh ファイルを実行可能ファイルとして保存しない場合は、apprunner.yamlファイルにbuildコマンドchmod +x startup.shとして と入力します。

例 apprunner.yaml
version: 1.0 runtime: php81 build: commands: build: - echo example build command for PHP run: command: ./startup.sh network: port: 8080 env: APP_PORT
例 index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>

NGINX を使用して で PHP プラットフォームを実行する supervisord

例 ファイル構造
注記
  • supervisord.conf ファイルはリポジトリのどこにでも保存できます。start コマンドがsupervisord.confファイルの保存先を指していることを確認します。

  • は、 root ディレクトリの publicフォルダにインストールindex.phpする必要があります。

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf
例 supervisord.conf
[supervisord] nodaemon=true [program:nginx] command=nginx -g "daemon off;" autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:php-fpm] command=php-fpm -F autostart=true autorestart=true stdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0
例 apprunner.yaml
version: 1.0 runtime: php81 build: commands: build: - PYTHON=python2 amazon-linux-extras install epel - yum -y install supervisor run: command: supervisord network: port: 8080 env: APP_PORT
例 index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>

NGINX を使用して で PHP プラットフォームを実行する startup script

例 ファイル構造
注記
  • startup.sh ファイルはリポジトリのどこにでも保存できます。start コマンドがstartup.shファイルの保存先を指していることを確認します。

  • は、 root ディレクトリの publicフォルダにインストールindex.phpする必要があります。

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
例 startup.sh
#!/bin/bash set -o monitor trap exit SIGCHLD # Start nginx nginx -g 'daemon off;' & # Start php-fpm php-fpm -F & wait
注記
  • Git リポジトリにコミットする前に、startup.shファイルを実行可能ファイルとして保存してください。を使用してchmod +x startup.shstartup.sh ファイルに実行アクセス許可を設定します。

  • startup.sh ファイルを実行可能ファイルとして保存しない場合は、apprunner.yamlファイルにbuildコマンドchmod +x startup.shとして と入力します。

例 apprunner.yaml
version: 1.0 runtime: php81 build: commands: build: - echo example build command for PHP run: command: ./startup.sh network: port: 8080 env: APP_PORT
例 index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>