Verwenden der -PHP-Plattform - AWS App Runner

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden der -PHP-Plattform

Die AWS App Runner PHP-Plattform bietet verwaltete Laufzeiten. Sie können jede Laufzeit verwenden, um Container mit Webanwendungen zu erstellen und auszuführen, die auf einer PHP-Version basieren. Wenn Sie eine PHP-Runtime verwenden, startet App Runner mit einem verwalteten PHP-Runtime-Image. Dieses Image basiert auf dem Amazon Linux Docker-Image und enthält das Runtime-Paket für eine Version von PHP und einige Tools. App Runner verwendet dieses verwaltete Runtime-Image als Basis-Image und fügt Ihren Anwendungscode hinzu, um ein Docker-Image zu erstellen. Anschließend wird dieses Image bereitgestellt, um Ihren Webservice in einem Container auszuführen.

Sie geben eine Laufzeit für Ihren App Runner-Dienst an, wenn Sie einen Dienst mithilfe der App Runner-Konsole oder des CreateServiceAPI-Vorgangs erstellen. Sie können auch eine Laufzeit als Teil Ihres Quellcodes angeben. Verwenden Sie das runtime Schlüsselwort in einer App Runner-Konfigurationsdatei, die Sie in Ihr Code-Repository aufnehmen. Die Benennungskonvention einer verwalteten Laufzeit lautet. <language-name><major-version>

Gültige PHP-Laufzeitnamen und -versionen finden Sie unterInformationen zur PHP-Runtime-Version.

App Runner aktualisiert die Laufzeit für Ihren Dienst bei jeder Bereitstellung oder jedem Service-Update auf die neueste Version. Wenn Ihre Anwendung eine bestimmte Version einer verwalteten Laufzeit benötigt, können Sie diese mithilfe des runtime-version Schlüsselworts in der App Runner-Konfigurationsdatei angeben. Sie können sich auf eine beliebige Versionsebene beschränken, einschließlich einer Haupt- oder Nebenversion. App Runner aktualisiert die Laufzeit Ihres Dienstes nur auf niedrigerer Ebene.

Versionssyntax für PHP-Laufzeiten: major[.minor[.patch]]

Beispiel: 8.1.10

Im Folgenden finden Sie Beispiele für Versionssperren:

  • 8.1— Sperren Sie die Haupt- und Nebenversionen. App Runner aktualisiert nur Patch-Versionen.

  • 8.1.10— Auf eine bestimmte Patch-Version festlegen. App Runner aktualisiert Ihre Runtime-Version nicht.

Wichtig

Wenn Sie das Quellverzeichnis des Code-Repositorys für Ihren App Runner-Dienst an einem anderen Ort als dem Standard-Repository-Stammverzeichnis angeben möchten, muss Ihre verwaltete PHP-Runtime-Version PHP 8.1.22 oder höher sein. Ältere PHP-Runtime-Versionen verwenden 8.1.22 möglicherweise nur das Standard-Root-Quellverzeichnis.

PHP-Laufzeitkonfiguration

Wenn Sie sich für eine verwaltete Runtime entscheiden, müssen Sie mindestens auch Build- und Run-Befehle konfigurieren. Sie konfigurieren sie bei der Erstellung oder Aktualisierung Ihres App Runner-Dienstes. Sie können dies mit einer der folgenden Methoden tun:

  • Verwenden der App Runner-Konsole — Geben Sie die Befehle im Abschnitt Build konfigurieren des Erstellungsprozesses oder der Registerkarte Konfiguration an.

  • Verwenden der App Runner-API — Rufen Sie den UpdateServiceAPI-Vorgang CreateServiceoder auf. Geben Sie die Befehle mithilfe der StartCommand Elemente BuildCommand und des CodeConfigurationValuesDatentyps an.

  • Mithilfe einer Konfigurationsdatei — Geben Sie einen oder mehrere Build-Befehle in bis zu drei Build-Phasen sowie einen einzelnen Run-Befehl an, der zum Starten Ihrer Anwendung dient. Es gibt zusätzliche optionale Konfigurationseinstellungen.

Die Bereitstellung einer Konfigurationsdatei ist optional. Wenn Sie einen App Runner-Dienst mithilfe der Konsole oder der API erstellen, geben Sie an, ob App Runner Ihre Konfigurationseinstellungen direkt bei der Erstellung oder aus einer Konfigurationsdatei bezieht.

Kompatibilität

Sie können Ihre App Runner-Dienste auf der PHP-Plattform mit einem der folgenden Webserver ausführen:

  • Apache HTTP Server

  • NGINX

Apache HTTP Serverund NGINX sind mit PHP-FPM kompatibel. Sie können das Apache HTTP Serverund mit einer NGINXder folgenden Optionen starten:

Beispiele zur Konfiguration Ihres App Runner-Dienstes mit der PHP-Plattform mithilfe von Apache HTTP Server oder NGINX finden Sie unter. Vollständige PHP-Anwendungsquelle

Dateistruktur

Der index.php muss im public Ordner unter dem root Verzeichnis des Webservers installiert sein.

Anmerkung

Wir empfehlen, die supervisord.conf Dateien startup.sh oder im Stammverzeichnis des Webservers zu speichern. Stellen Sie sicher, dass der start Befehl auf den Speicherort verweist, an dem die startup.sh supervisord.conf Oder-Dateien gespeichert sind.

Das Folgende ist ein Beispiel für die Dateistruktur, wenn Sie verwenden supervisord.

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

Das Folgende ist ein Beispiel für die Dateistruktur, wenn Sie ein Startskript verwenden.

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

Wir empfehlen, diese Dateistrukturen im Quellverzeichnis des Code-Repositorys zu speichern, das für den App Runner-Dienst vorgesehen ist.

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

Wenn Sie das Code-Repository-Quellverzeichnis für Ihren App Runner-Dienst an einem anderen Ort als dem Standard-Repository-Stammverzeichnis angeben möchten, muss Ihre von PHP verwaltete Runtime-Version PHP 8.1.22 oder höher sein. Ältere PHP-Runtime-Versionen verwenden 8.1.22 möglicherweise nur das Standard-Root-Quellverzeichnis.

App Runner aktualisiert die Laufzeit für Ihren Dienst bei jeder Bereitstellung oder jedem Service-Update auf die neueste Version. Ihr Dienst verwendet standardmäßig die neuesten Laufzeiten, es sei denn, Sie haben die Versionssperre mit dem runtime-version Schlüsselwort in der App Runner-Konfigurationsdatei angegeben.

Beispiele für PHP-Runtime

Im Folgenden finden Sie Beispiele für App Runner-Konfigurationsdateien, die zum Erstellen und Ausführen eines PHP-Dienstes verwendet werden.

Das folgende Beispiel ist eine minimale Konfigurationsdatei, die Sie mit einer von PHP verwalteten Laufzeit verwenden können. Weitere Hinweise zu einer Minimalkonfigurationsdatei finden Sie unterBeispiele für Konfigurationsdateien.

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

Das folgende Beispiel verwendet alle Konfigurationsschlüssel mit einer von PHP verwalteten Laufzeit.

Anmerkung

Die Runtime-Version, die in diesen Beispielen verwendet wird, ist 8.1.10. Sie können sie durch eine Version ersetzen, die Sie verwenden möchten. Die neueste unterstützte PHP-Laufzeitversion finden Sie unterInformationen zur PHP-Runtime-Version.

Beispiel 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"

Die folgenden Beispiele zeigen den Quellcode von PHP-Anwendungen, den Sie verwenden können, um ihn mithilfe von Apache HTTP Serveroder in einem PHP-Laufzeitdienst bereitzustellen NGINX. Bei diesen Beispielen wird davon ausgegangen, dass Sie die Standarddateistruktur verwenden.

Ausführen der PHP-Plattform Apache HTTP Server mit supervisord

Beispiel Dateistruktur
Anmerkung
  • Die supervisord.conf Datei kann an einer beliebigen Stelle im Repository gespeichert werden. Stellen Sie sicher, dass der start Befehl auf den Speicherort der supervisord.conf Datei verweist.

  • Das index.php muss in dem public Ordner unter dem root Verzeichnis installiert sein.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf
Beispiel 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
Beispiel 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
Beispiel index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>

Ausführen der PHP-Plattform Apache HTTP Server mit startup script

Beispiel Dateistruktur
Anmerkung
  • Die startup.sh Datei kann an einer beliebigen Stelle im Repository gespeichert werden. Stellen Sie sicher, dass der start Befehl auf den Speicherort der startup.sh Datei verweist.

  • Das index.php muss in dem public Ordner unter dem root Verzeichnis installiert sein.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
Beispiel startup.sh
#!/bin/bash set -o monitor trap exit SIGCHLD # Start apache httpd -DFOREGROUND & # Start php-fpm php-fpm -F & wait
Anmerkung
  • Achte darauf, die startup.sh Datei als ausführbare Datei zu speichern, bevor du sie in ein Git-Repository übergibst. Verwenden Sie chmod +x startup.sh diese Option, um die Ausführungsberechtigung für Ihre startup.sh Datei festzulegen.

  • Wenn Sie die startup.sh Datei nicht als ausführbare Datei speichern, geben Sie den Befehl chmod +x startup.sh als build Befehl in Ihre apprunner.yaml Datei ein.

Beispiel 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
Beispiel index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>

Ausführen der PHP-Plattform NGINX mit supervisord

Beispiel Dateistruktur
Anmerkung
  • Die supervisord.conf Datei kann an einer beliebigen Stelle im Repository gespeichert werden. Stellen Sie sicher, dass der start Befehl auf den Speicherort der supervisord.conf Datei verweist.

  • Das index.php muss in dem public Ordner unter dem root Verzeichnis installiert sein.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ supervisord.conf
Beispiel 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
Beispiel 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
Beispiel index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>

Ausführen der PHP-Plattform NGINX mit startup script

Beispiel Dateistruktur
Anmerkung
  • Die startup.sh Datei kann an einer beliebigen Stelle im Repository gespeichert werden. Stellen Sie sicher, dass der start Befehl auf den Speicherort der startup.sh Datei verweist.

  • Das index.php muss in dem public Ordner unter dem root Verzeichnis installiert sein.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
Beispiel startup.sh
#!/bin/bash set -o monitor trap exit SIGCHLD # Start nginx nginx -g 'daemon off;' & # Start php-fpm php-fpm -F & wait
Anmerkung
  • Achte darauf, die startup.sh Datei als ausführbare Datei zu speichern, bevor du sie in ein Git-Repository übergibst. Verwenden Sie chmod +x startup.sh diese Option, um die Ausführungsberechtigung für Ihre startup.sh Datei festzulegen.

  • Wenn Sie die startup.sh Datei nicht als ausführbare Datei speichern, geben Sie den Befehl chmod +x startup.sh als build Befehl in Ihre apprunner.yaml Datei ein.

Beispiel 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
Beispiel index.php
<html> <head> <title>First PHP App</title> </head> <body> <?php print("Hello World!"); print("<br>"); ?> </body> </html>