À l'aide de la plateforme PHP - AWS App Runner

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

À l'aide de la plateforme PHP

La plateforme AWS App Runner PHP fournit des environnements d'exécution gérés. Vous pouvez utiliser chaque environnement d'exécution pour créer et exécuter des conteneurs avec des applications Web basées sur une version de PHP. Lorsque vous utilisez un environnement d'exécution PHP, App Runner démarre avec une image d'exécution PHP gérée. Cette image est basée sur l'image Docker d'Amazon Linux et contient le package d'exécution pour une version de PHP et certains outils. App Runner utilise cette image d'exécution gérée comme image de base et ajoute le code de votre application pour créer une image Docker. Il déploie ensuite cette image pour exécuter votre service Web dans un conteneur.

Vous spécifiez un environnement d'exécution pour votre service App Runner lorsque vous créez un service à l'aide de la console App Runner ou de l'opération CreateServiceAPI. Vous pouvez également spécifier un environnement d'exécution dans le cadre de votre code source. Utilisez le runtime mot clé dans un fichier de configuration App Runner que vous incluez dans votre référentiel de code. La convention de dénomination d'un environnement d'exécution géré est. <language-name><major-version>

Pour les noms et versions d'exécution PHP valides, consultezInformations sur la version d'exécution de PHP.

App Runner met à jour le moteur d'exécution de votre service avec la dernière version à chaque déploiement ou mise à jour de service. Si votre application nécessite une version spécifique d'un environnement d'exécution géré, vous pouvez le spécifier à l'aide du runtime-version mot clé dans le fichier de configuration d'App Runner. Vous pouvez verrouiller n'importe quel niveau de version, y compris une version majeure ou mineure. App Runner apporte uniquement des mises à jour de niveau inférieur à l'environnement d'exécution de votre service.

Syntaxe de version pour les environnements d'exécution PHP : major[.minor[.patch]]

Par exemple : 8.1.10

Voici des exemples de verrouillage de version :

  • 8.1— Verrouillez les versions majeures et mineures. App Runner met à jour uniquement les versions de correctif.

  • 8.1.10— Verrouillez vers une version de correctif spécifique. App Runner ne met pas à jour votre version d'exécution.

Important

Si vous souhaitez spécifier le répertoire source du référentiel de code pour votre service App Runner dans un emplacement autre que le répertoire racine du dépôt par défaut, votre version d'exécution gérée de PHP doit être PHP 8.1.22 ou une version ultérieure. Les versions d'exécution de PHP antérieures ne 8.1.22 peuvent utiliser que le répertoire source racine par défaut.

Configuration de l'environnement d'exécution PHP

Lorsque vous choisissez un environnement d'exécution géré, vous devez également configurer, au minimum, créer et exécuter des commandes. Vous les configurez lors de la création ou de la mise à jour de votre service App Runner. Pour ce faire, vous pouvez utiliser l'une des méthodes suivantes :

  • Utilisation de la console App Runner : spécifiez les commandes dans la section Configurer le build de l'onglet Processus de création ou configuration.

  • Utilisation de l'API App Runner : appelez l'opération CreateServiceou UpdateServiceAPI. Spécifiez les commandes à l'aide des StartCommand membres BuildCommand et du type de CodeConfigurationValuesdonnées.

  • Utilisation d'un fichier de configuration : spécifiez une ou plusieurs commandes de génération en trois phases de génération au maximum, ainsi qu'une seule commande d'exécution servant à démarrer votre application. Il existe d'autres paramètres de configuration facultatifs.

La fourniture d'un fichier de configuration est facultative. Lorsque vous créez un service App Runner à l'aide de la console ou de l'API, vous spécifiez si App Runner obtient vos paramètres de configuration directement lors de sa création ou à partir d'un fichier de configuration.

Compatibilité

Vous pouvez exécuter vos services App Runner sur la plateforme PHP en utilisant l'un des serveurs Web suivants :

  • Apache HTTP Server

  • NGINX

Apache HTTP Serveret NGINX sont compatibles avec PHP-FPM. Vous pouvez démarrer Apache HTTP Serveret NGINXen utilisant l'une des méthodes suivantes :

Pour des exemples sur la façon de configurer votre service App Runner avec la plate-forme PHP à l'aide du serveur HTTP Apache ou de NGINX, consultez. Source complète de l'application PHP

Structure de fichier

index.phpIl doit être installé dans le public dossier situé sous le root répertoire du serveur Web.

Note

Nous recommandons de stocker supervisord.conf les fichiers startup.sh or dans le répertoire racine du serveur Web. Assurez-vous que la start commande pointe vers l'emplacement où les supervisord.conf fichiers startup.sh ou sont stockés.

Voici un exemple de structure de fichier que vous utilisez supervisord.

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

Voici un exemple de structure de fichier si vous utilisez un script de démarrage.

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

Nous vous recommandons de stocker ces structures de fichiers dans le répertoire source du référentiel de code désigné pour le service App Runner.

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

Si vous souhaitez spécifier le répertoire source du référentiel de code pour votre service App Runner dans un emplacement autre que le répertoire racine du dépôt par défaut, votre version d'exécution gérée de PHP doit être PHP 8.1.22 ou une version ultérieure. Les versions d'exécution de PHP antérieures ne 8.1.22 peuvent utiliser que le répertoire source racine par défaut.

App Runner met à jour le moteur d'exécution de votre service avec la dernière version à chaque déploiement ou mise à jour de service. Votre service utilisera les environnements d'exécution les plus récents par défaut, sauf si vous avez spécifié le verrouillage de version à l'aide du runtime-version mot clé dans le fichier de configuration d'App Runner.

Exemples d'exécution PHP

Vous trouverez ci-dessous des exemples de fichiers de configuration App Runner utilisés pour créer et exécuter un service PHP.

L'exemple suivant est un fichier de configuration minimale que vous pouvez utiliser avec un environnement d'exécution géré en PHP. Pour plus d'informations sur un fichier de configuration minimale, consultezExemples de fichiers de configuration.

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

L'exemple suivant utilise toutes les clés de configuration avec un environnement d'exécution géré par PHP.

Note

La version d'exécution utilisée dans ces exemples est 8.1.10. Vous pouvez le remplacer par la version que vous souhaitez utiliser. Pour la dernière version d'exécution de PHP prise en charge, voirInformations sur la version d'exécution de PHP.

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

Les exemples suivants concernent le code source d'une application PHP que vous pouvez utiliser pour déployer sur un service d'exécution PHP à l'aide de Apache HTTP Serverou NGINX. Ces exemples supposent que vous utilisez la structure de fichier par défaut.

Exécution de la plate-forme PHP en Apache HTTP Server utilisant supervisord

Exemple Structure de fichier
Note
  • Le supervisord.conf fichier peut être stocké n'importe où dans le référentiel. Assurez-vous que la start commande pointe vers l'endroit où le supervisord.conf fichier est stocké.

  • index.phpIl doit être installé dans le public dossier situé sous le root répertoire.

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

Exécution de la plate-forme PHP en Apache HTTP Server utilisant startup script

Exemple Structure de fichier
Note
  • Le startup.sh fichier peut être stocké n'importe où dans le référentiel. Assurez-vous que la start commande pointe vers l'endroit où le startup.sh fichier est stocké.

  • index.phpIl doit être installé dans le public dossier situé sous le root répertoire.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
Exemple startup.sh
#!/bin/bash set -o monitor trap exit SIGCHLD # Start apache httpd -DFOREGROUND & # Start php-fpm php-fpm -F & wait
Note
  • Assurez-vous d'enregistrer le startup.sh fichier en tant qu'exécutable avant de le valider dans un dépôt Git. chmod +x startup.shÀ utiliser pour définir l'autorisation d'exécution sur votre startup.sh fichier.

  • Si vous n'enregistrez pas le startup.sh fichier en tant qu'exécutable, saisissez-le en chmod +x startup.sh tant que build commande dans votre apprunner.yaml fichier.

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

Exécution de la plate-forme PHP en NGINX utilisant supervisord

Exemple Structure de fichier
Note
  • Le supervisord.conf fichier peut être stocké n'importe où dans le référentiel. Assurez-vous que la start commande pointe vers l'endroit où le supervisord.conf fichier est stocké.

  • index.phpIl doit être installé dans le public dossier situé sous le root répertoire.

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

Exécution de la plate-forme PHP en NGINX utilisant startup script

Exemple Structure de fichier
Note
  • Le startup.sh fichier peut être stocké n'importe où dans le référentiel. Assurez-vous que la start commande pointe vers l'endroit où le startup.sh fichier est stocké.

  • index.phpIl doit être installé dans le public dossier situé sous le root répertoire.

/ ├─ public/ │ ├─ index.php ├─ apprunner.yaml ├─ startup.sh
Exemple startup.sh
#!/bin/bash set -o monitor trap exit SIGCHLD # Start nginx nginx -g 'daemon off;' & # Start php-fpm php-fpm -F & wait
Note
  • Assurez-vous d'enregistrer le startup.sh fichier en tant qu'exécutable avant de le valider dans un dépôt Git. chmod +x startup.shÀ utiliser pour définir l'autorisation d'exécution sur votre startup.sh fichier.

  • Si vous n'enregistrez pas le startup.sh fichier en tant qu'exécutable, saisissez-le en chmod +x startup.sh tant que build commande dans votre apprunner.yaml fichier.

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