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
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.
Rubriques
Configuration du runtime 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
membresBuildCommand
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 Server and NGINX sont compatibles avec PHP-FPM. Vous pouvez démarrer le Apache HTTP Server et NGINXen utilisant l'une des méthodes suivantes :
-
Supervisord
- Pour plus d'informations sur l'exécution d'un supervisord, voir Running supervisors. -
Script de démarrage
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.php
Il 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 si 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 est8.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 présentent le code source d'une application PHP que vous pouvez utiliser pour déployer sur un service d'exécution PHP en utilisant Apache HTTP Server ou NGINX. Ces exemples supposent que vous utilisez la structure de fichier par défaut.
Exécution de la plateforme PHP avec 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 lastart
commande pointe vers l'endroit où lesupervisord.conf
fichier est stocké. -
index.php
Il doit être installé dans lepublic
dossier situé sous leroot
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 plateforme PHP avec 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 lastart
commande pointe vers l'endroit où lestartup.sh
fichier est stocké. -
index.php
Il doit être installé dans lepublic
dossier situé sous leroot
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 votrestartup.sh
fichier. -
Si vous n'enregistrez pas le
startup.sh
fichier en tant qu'exécutable, saisissez-le enchmod +x startup.sh
tant quebuild
commande dans votreapprunner.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 plateforme PHP avec 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 lastart
commande pointe vers l'endroit où lesupervisord.conf
fichier est stocké. -
index.php
Il doit être installé dans lepublic
dossier situé sous leroot
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 plateforme PHP avec 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 lastart
commande pointe vers l'endroit où lestartup.sh
fichier est stocké. -
index.php
Il doit être installé dans lepublic
dossier situé sous leroot
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 votrestartup.sh
fichier. -
Si vous n'enregistrez pas le
startup.sh
fichier en tant qu'exécutable, saisissez-le enchmod +x startup.sh
tant quebuild
commande dans votreapprunner.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>