翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
PHP プラットフォームを使用する
重要
App Runner は、2025 年 12 月 31 日に PHP 8.1 のサポートを終了します。推奨事項と詳細については、「」を参照してくださいマネージドランタイムバージョンのサポート終了。
AWS App Runner PHP プラットフォームはマネージドランタイムを提供します。各ランタイムを使用して、PHP バージョンに基づいてウェブアプリケーションでコンテナを構築および実行できます。PHP ランタイムを使用すると、App Runner はマネージド PHP ランタイムイメージで始まります。このイメージは Amazon Linux 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 が作成時に設定を直接取得するか、設定ファイルから取得するかを指定します。
互換性
次のいずれかのウェブサーバーを使用して、PHP プラットフォームで App Runner サービスを実行できます。
-
Apache HTTP Server
-
NGINX
Apache HTTP Server および NGINXは PHP-FPM と互換性があります。Apache HTTP Server と は、次のいずれかNGINXを使用して開始できます。
-
スーパーバイザー - の実行の詳細については、
「スーパーバイザーの実行 」を参照してください。 supervisord -
起動スクリプト
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.10command: ./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=trueautorestart=truestdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:php-fpm] command=php-fpm -F autostart=trueautorestart=truestdout_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.sh、startup.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=trueautorestart=truestdout_logfile=/dev/stdout stdout_logfile_maxbytes=0 stderr_logfile=/dev/stderr stderr_logfile_maxbytes=0 [program:php-fpm] command=php-fpm -F autostart=trueautorestart=truestdout_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.sh、startup.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>