Utilisation de la plateforme PHP Elastic Beanstalk - AWS Elastic Beanstalk

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.

Utilisation de la plateforme PHP Elastic Beanstalk

AWS Elastic Beanstalk prend en charge un certain nombre de plateformes pour différentes versions du langage de programmation PHP. Ces plateformes prennent en charge des applications web PHP qui peuvent s'exécuter seules ou sous Composer. Découvrez-en plus sur PHP dans le document Plateformes AWS Elastic Beanstalk .

Elastic Beanstalk fournit des options de configuration que vous pouvez utiliser pour personnaliser le logiciel qui s'exécute sur des instances EC2 dans votre environnement Elastic Beanstalk. Vous pouvez configurer les variables d'environnement requises par votre application, activer la rotation des journaux sur Amazon S3, mapper les dossiers de la source de votre application contenant les fichiers statiques avec les chemins desservis par le serveur proxy, et définir les paramètres d'initialisation PHP communs.

Des options de configuration sont disponibles dans la console Elastic Beanstalk pour modifier la configuration d'un environnement en cours d'exécution. Pour éviter de perdre la configuration de votre environnement en le résiliant, vous pouvez utiliser des configurations enregistrées pour enregistrer vos paramètres et les appliquer par la suite à un autre environnement.

Pour enregistrer les paramètres dans votre code source, vous pouvez inclure des fichiers de configuration. Les paramètres des fichiers de configuration sont appliquées chaque fois que vous créez un environnement ou que vous déployez votre application. Vous pouvez également utiliser des fichiers de configuration pour installer des packages, exécuter des scripts ou effectuer d'autres opérations de personnalisation d'instance lors des déploiements.

Si vous utilisez Composer, vous pouvez inclure un fichiercomposer.json dans votre bundle source afin d'installer des packages pendant le déploiement.

Pour des paramètres avancés PHP et de configuration PHP non fournis en tant qu'options de configuration, vous pouvez utiliser des fichiers de configuration pour fournir un fichier INI qui peut étendre et remplacer les paramètres par défaut appliqués par Elastic Beanstalk, ou installer des extensions supplémentaires.

Les paramètres appliqués dans la console Elastic Beanstalk remplacent les mêmes paramètres des fichiers de configuration, s'ils existent. Cela vous permet d'utiliser les paramètres par défaut dans les fichiers de configuration et de les remplacer par des paramètres spécifiques à l'environnement dans la console. Pour plus d'informations sur la priorité et les autres méthodes de modification des paramètres, consultez Options de configuration.

Pour plus d'informations sur les différentes manières d'étendre une plateforme Elastic Beanstalk basée sur Linux, consultez Extension des plateformes Linux Elastic Beanstalk.

Considérations relatives à PHP 8.1 sur Amazon Linux 2

Veuillez lire cette section si vous utilisez la branche de plateforme PHP 8.1 sur Amazon Linux 2.

Note

Les informations de cette rubrique s'appliquent uniquement à la branche de plateforme PHP 8.1 sur Amazon Linux 2. Elles ne s'appliquent pas aux branches de plateforme PHP basées sur AL2023. Elles ne s'appliquent pas non plus à la branche de plateforme PHP 8.0 Amazon Linux 2.

Elastic Beanstalk stocke les packages RPM associés à PHP 8.1 pour la branche de plateforme PHP 8.1 sur Amazon Linux 2 sur les instances EC2 dans un répertoire local, au lieu du référentiel Amazon Linux. Vous pouvez utiliser rpm -i afin d'installer des packages. À partir de la version 3.5.0 de la plateforme PHP 8.1, Elastic Beanstalk stocke les packages RPM associés à PHP 8.1 dans le répertoire EC2 local suivant.

/opt/elasticbeanstalk/RPMS

L'exemple suivant permet d'installer le package php-debuginfo.

$rpm -i /opt/elasticbeanstalk/RPMS/php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

La version dans le nom du package varie en fonction de celle répertoriée dans le répertoire local EC2 /opt/elasticbeanstalk/RPMS. Utilisez la même syntaxe afin d'installer d'autres packages RPM PHP 8.1.

Développez la section suivante afin d'afficher une liste des packages RPM que nous fournissons.

La liste suivante présente les packages RMP fournis par la plateforme PHP 8.1 Elastic Beanstalk sur Amazon Linux 2. Ils se situent dans le répertoire local /opt/elasticbeanstalk/RPMS.

Les numéros de version 8.1.8-1 et 3.7.0-1 figurant dans les noms de packages listés ne sont qu'un exemple.

  • php-8.1.8-1.amzn2.x86_64.rpm

  • php-bcmath-8.1.8-1.amzn2.x86_64.rpm

  • php-cli-8.1.8-1.amzn2.x86_64.rpm

  • php-common-8.1.8-1.amzn2.x86_64.rpm

  • php-dba-8.1.8-1.amzn2.x86_64.rpm

  • php-dbg-8.1.8-1.amzn2.x86_64.rpm

  • php-debuginfo-8.1.8-1.amzn2.x86_64.rpm

  • php-devel-8.1.8-1.amzn2.x86_64.rpm

  • php-embedded-8.1.8-1.amzn2.x86_64.rpm

  • php-enchant-8.1.8-1.amzn2.x86_64.rpm

  • php-fpm-8.1.8-1.amzn2.x86_64.rpm

  • php-gd-8.1.8-1.amzn2.x86_64.rpm

  • php-gmp-8.1.8-1.amzn2.x86_64.rpm

  • php-intl-8.1.8-1.amzn2.x86_64.rpm

  • php-ldap-8.1.8-1.amzn2.x86_64.rpm

  • php-mbstring-8.1.8-1.amzn2.x86_64.rpm

  • php-mysqlnd-8.1.8-1.amzn2.x86_64.rpm

  • php-odbc-8.1.8-1.amzn2.x86_64.rpm

  • php-opcache-8.1.8-1.amzn2.x86_64.rpm

  • php-pdo-8.1.8-1.amzn2.x86_64.rpm

  • php-pear-1.10.13-1.amzn2.noarch.rpm

  • php-pgsql-8.1.8-1.amzn2.x86_64.rpm

  • php-process-8.1.8-1.amzn2.x86_64.rpm

  • php-pspell-8.1.8-1.amzn2.x86_64.rpm

  • php-snmp-8.1.8-1.amzn2.x86_64.rpm

  • php-soap-8.1.8-1.amzn2.x86_64.rpm

  • php-sodium-8.1.8-1.amzn2.x86_64.rpm

  • php-xml-8.1.8-1.amzn2.x86_64.rpm

  • php-pecl-imagick-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-debuginfo-3.7.0-1.amzn2.x86_64.rpm

  • php-pecl-imagick-devel-3.7.0-1.amzn2.noarch.rpm

Vous pouvez utiliser les packages PEAR et PECL afin d'installer des extensions courantes. Pour plus d'informations sur PEAR, veuillez consulter le site Web PEAR - PHP Extension and Application Repository (PEAR : référentiel d'applications et extension PHP) (français non garanti). Pour plus d'informations sur PECL, veuillez consulter le site Web de PECL extension (L'extension PECL) (français non garanti).

Les exemples de commandes suivants permettent d'installer les extensions Memcached.

$pecl install memcache

Vous pouvez également utiliser ce qui suit :

$pear install pecl/memcache

Les exemples de commandes suivants permettent d'installer les extensions Redis.

$pecl install redis

Vous pouvez également utiliser ce qui suit :

$pear install pecl/redis

Configuration de votre environnement PHP

Vous pouvez utiliser la console Elastic Beanstalk pour activer la rotation de journal sur Amazon S3, configurer des variables que votre application peut lire depuis l'environnement et modifier des paramètres PHP.

Pour configurer votre environnement PHP dans la console Elastic Beanstalk
  1. Ouvrez la console Elastic Beanstalk, puis dans la liste des régions, sélectionnez votre. Région AWS

  2. Dans le panneau de navigation, choisissez Environments (Environnements), puis choisissez le nom de votre environnement dans la liste.

    Note

    Si vous avez plusieurs environnements, utilisez la barre de recherche pour filtrer la liste des environnements.

  3. Dans le panneau de navigation, choisissez Configuration.

  4. Dans la catégorie de configuration Mises à jour, surveillance et journalisation, sélectionnez Modifier.

Paramètres PHP

  • Proxy server (Serveur proxy) – Serveur proxy à utiliser sur vos instances d'environnement. Le serveur nginx est utilisé par défaut.

  • Racine du document – Dossier qui contient la page par défaut de votre site. Si votre page d'accueil n'est pas à la racine de votre groupe source, spécifiez le dossier qui la contient par rapport aux chemin d'accès racine. Par exemple, /public si la page d'accueil est dans un dossier nommé public.

  • Limite de mémoire – Volume maximum de mémoire qu'un script est autorisé à allouer. Par exemple, 512M.

  • Compression de sortie Zlib – Définissez sur On pour compresser les réponses.

  • Permettre de faire un fopen d'une URL – Définissez cette option sur Off pour empêcher les scripts de télécharger des fichiers à partir d'emplacements distants.

  • Afficher les erreurs – Définissez cette option sur On pour afficher les messages d'erreur internes à des fins de débogage.

  • Durée d'exécution maximum – La durée maximale en secondes pendant laquelle un script est autorisé à s'exécuter avant que l'environnement ne l'arrête.

Options du journal

La section Options du journal a deux paramètres :

  • Instance profile (Profil d'instance) – Spécifie le profil d'instance qui est autorisé à accéder au compartiment Amazon S3 associé à votre application.

  • Enable log file rotation to Amazon S3 (Permettre la rotation du fichier journal sur Amazon S3) – Indique si les fichiers journaux des instances Amazon EC2 de votre application doivent être copiés dans le compartiment Amazon S3 associé à votre application.

Fichiers statiques

Pour améliorer les performances, la section des Fichiers statiques vous permet de configurer le serveur proxy pour proposer des fichiers statiques (HTML ou images, par exemple) à partir d'un ensemble de répertoires dans votre application web. Pour chaque répertoire, vous définissez le chemin virtuel sur le mappage de répertoires. Lorsque le serveur proxy reçoit une demande pour un fichier dans le chemin spécifié, il fournit le fichier directement au lieu d'acheminer la demande vers votre application.

Pour en savoir plus sur la configuration des fichiers statiques à l'aide des fichiers de configuration ou de la console Elastic Beanstalk, consultez Service de fichiers statiques.

Propriétés de l'environnement

La section Propriétés de l'environnement vous permet de spécifier des paramètres de configuration de l'environnement sur les instances Amazon EC2 exécutant votre application. Ces paramètres sont passés en tant que paires clé-valeur à l'application.

Votre code d'application peut accéder aux propriétés de l'environnement à l'aide de $_SERVER ou à la fonction get_cfg_var.

$endpoint = $_SERVER['API_ENDPOINT'];

Pour plus d’informations, consultez Propriétés de l'environnement et autres paramètres de logiciel.

Espace de noms aws:elasticbeanstalk:container:php:phpini

Vous pouvez utiliser un fichier de configuration pour définir des options de configuration et exécuter d'autres tâches de configuration d'instance pendant les déploiements. Les options de configuration peuvent être définies par le service Elastic Beanstalk ou la plateforme que vous utilisez et sont organisées en espaces de noms.

Vous pouvez utiliser l'espace de noms aws:elasticbeanstalk:environment:proxy pour choisir le serveur proxy de l'environnement.

Vous pouvez utiliser l'espace de noms aws:elasticbeanstalk:environment:proxy:staticfiles pour configurer le proxy d'environnement afin de traiter les fichiers statiques. Vous définissez les mappages des chemins virtuels vers les répertoires d'applications.

La plateforme PHP définit des options dans l'espace de noms aws:elasticbeanstalk:container:php:phpini, dont une qui n'est pas disponible dans la console Elastic Beanstalk. composer_options définit les options personnalisées à utiliser lors de l'installation de dépendances à l'aide Composer via composer.phar install. Pour plus d'informations et pour connaître les options disponibles, consultez http://getcomposer.org/doc/03-cli.md#install.

L'exemple de fichier de configuration suivant spécifie une option de fichiers statiques qui mappe un répertoire nommé staticimages au chemin /images, d'accès et affiche les paramètres de chacune des options disponibles dans l'espace de noms aws:elasticbeanstalk:container:php:phpini :

Exemple .ebextensions/php-settings.config
option_settings: aws:elasticbeanstalk:environment:proxy: ProxyServer: apache aws:elasticbeanstalk:environment:proxy:staticfiles: /images: staticimages aws:elasticbeanstalk:container:php:phpini: document_root: /public memory_limit: 128M zlib.output_compression: "Off" allow_url_fopen: "On" display_errors: "Off" max_execution_time: 60 composer_options: vendor/package
Note

L'espace de noms aws:elasticbeanstalk:environment:proxy:staticfiles n'est pas défini sur les branches PHP de l'AMI Amazon Linux (précédant Amazon Linux 2).

Elastic Beanstalk fournit de nombreuses options de configuration pour personnaliser votre environnement. En plus des fichiers de configuration, vous pouvez également définir des options de configuration à l'aide de la console, de configurations enregistrées, de la CLI EB ou d' AWS CLI. Pour plus d’informations, consultez Options de configuration.