Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
Uso de la plataforma PHP de Elastic Beanstalk
AWS Elastic Beanstalk proporciona y admite varias ramas de plataforma para diferentes versiones de PHP. Las plataformas admiten aplicaciones web PHP que se ejecutan de forma independiente o en Composer. Consulte PHP en el documento Plataformas de AWS Elastic Beanstalk para obtener una lista completa de las ramas de plataforma compatibles.
Elastic Beanstalk proporciona opciones de configuración que puede usar para personalizar el software que se ejecuta en las instancias de EC2 Amazon de su entorno de Elastic Beanstalk. Puede configurar las variables de entorno que necesita la aplicación, habilitar la rotación de registros en Amazon S3, asignar carpetas en el origen de la aplicación que contengan archivos estáticos a rutas entregadas por el servidor proxy y establecer parámetros comunes de inicialización de PHP.
En la consola de Elastic Beanstalk hay opciones de configuración disponibles para modificar la configuración de un entorno en ejecución. Para evitar perder la configuración del entorno cuando lo termina, puede usar las configuraciones guardadas para guardar la configuración y aplicarla posteriormente a otro entorno.
Para guardar la configuración en el código fuente, puede incluir archivos de configuración. Los valores de configuración de los archivos de configuración se aplican cada vez que crea un entorno o que implementa la aplicación. También puede usar archivos de configuración para instalar paquetes, ejecutar scripts y llevar a cabo otras operaciones de personalización de instancias durante las implementaciones.
Si utiliza Composer, puede incluir un archivo composer.json en el paquete de código fuente para instalar paquetes durante la implementación.
Si desea definir valores de configuración avanzados en PHP y configurar ajustes de PHP que no están disponibles como opciones de configuración, puede utilizar archivos de configuración y proporcionar un archivo INI para ampliar o anular la configuración predeterminada que aplica Elastic Beanstalk o para instalar extensiones adicionales.
La configuración aplicada en la consola de Elastic Beanstalk anula la misma configuración en los archivos de configuración, si existe. Esto le permite tener la configuración predeterminada en los archivos de configuración y anularla con la configuración específica del entorno en la consola. Para obtener más información acerca de la prioridad y otros métodos para cambiar valores de configuración, consulte Opciones de configuración.
Para obtener más información sobre las diversas formas en las que puede ampliar una plataforma Elastic Beanstalk basada en Linux, consulte Ampliación de las plataformas Linux de Elastic Beanstalk.
Temas sobre la plataforma PHP
Instalación del AWS SDK para PHP
Si necesita administrar AWS los recursos desde su aplicación, instale el AWS SDK para PHP. Por ejemplo, con el SDK para PHP, puede utilizar Amazon DynamoDB (DynamoDB) para almacenar información de usuario y sesión sin crear una base de datos relacional.
Para instalar el SDK para PHP con Composer
$ composer require aws/aws-sdk-php
Para obtener más información, consulte la página de inicio de AWS SDK for PHP
Consideraciones sobre PHP 8.1 en Amazon Linux 2
Si utiliza la ramificación de la plataforma PHP 8.1 en Amazon Linux 2, lea esta sección.
nota
La información de este tema solo se aplica a la ramificación de la plataforma PHP 8.1 en Amazon Linux 2. No se aplica a las ramas de la plataforma PHP basadas en la versión AL2 023. Tampoco se aplica a la ramificación de la plataforma PHP 8.0 en Amazon Linux 2.
Elastic Beanstalk almacena los paquetes RPM relacionados con PHP 8.1 para la rama de plataforma PHP 8.1 en Amazon Linux 2 en las instancias de un directorio local, EC2 en lugar de en el repositorio de Amazon Linux. Se puede utilizar rpm -i para instalar los paquetes. A partir de la versión 3.5.0 de la plataforma PHP 8.1, Elastic Beanstalk almacena los paquetes RPM relacionados con PHP 8.1 en el siguiente directorio local. EC2
/opt/elasticbeanstalk/RPMS
En el siguiente ejemplo se instala el paquete php-debuginfo.
$rpm -i /opt/elasticbeanstalk/RPMS/php-debuginfo-8.1.8-1.amzn2.x86_64.rpm
La versión del nombre del paquete variará en función de la versión real que aparezca en el directorio local. EC2 /opt/elasticbeanstalk/RPMS
Utilice la misma sintaxis para instalar otros paquetes PHP 8.1 RPM.
Amplíe la siguiente sección para mostrar una lista de los paquetes RPM que ofrecemos.
La siguiente lista proporciona los paquetes de RMP que ofrece la plataforma PHP 8.1 de Elastic Beanstalk en Amazon Linux 2. Estos archivos están ubicados en el directorio /opt/elasticbeanstalk/RPMS
.
Los números de versión 8.1.8-1 y 3.7.0-1 de los nombres de paquetes enumerados son solo un ejemplo.
-
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
Puede utilizar los paquetes PEAR y PECL para instalar extensiones comunes. Para obtener más información sobre PEAR, consulte el sitio web del repositorio de aplicaciones y extensiones PHP de PEAR
Los siguientes comandos de ejemplo instalan las extensiones de Memcached.
$pecl install memcache
O también puede utilizar lo siguiente:
$pear install pecl/memcache
Los siguientes comandos de ejemplo instalan las extensiones de Redis.
$pecl install redis
O también puede utilizar lo siguiente:
$pear install pecl/redis
Configuración del entorno PHP
Puede utilizar la consola de Elastic Beanstalk para habilitar la rotación de registros en Amazon S3, configurar variables que la aplicación pueda leer desde el entorno y cambiar la configuración de PHP.
Para configurar su entorno PHP en la consola de Elastic Beanstalk
Abra la consola de Elastic Beanstalk
y, en la lista Regiones, seleccione su. Región de AWS -
En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.
En el panel de navegación, elija Configuración.
-
En la categoría de configuración Actualizaciones, supervisión y registro, seleccione Edición de.
Configuración de PHP
-
Proxy server (Servidor proxy): el servidor proxy que utilizar en las instancias del entorno. De forma predeterminada, se utiliza nginx.
-
Document root (Raíz del documento): carpeta que contiene la página predeterminada del sitio. Si la página de bienvenida no está en la raíz del paquete de código fuente, especifique la carpeta donde se encuentre con respecto a la ruta raíz. Por ejemplo,
/public
si la página de bienvenida está en una carpeta llamadapublic
. -
Memory limit (Límite de memoria): cantidad máxima de memoria que un script puede asignar. Por ejemplo,
512M
. -
Zlib output compression (Comprensión de salida Zlib): establézcalo en
On
para comprimir las respuestas. -
Allow URL fopen (Permitir fopen de URL): establézcalo en
Off
para impedir que los scripts descarguen archivos de ubicaciones remotas. -
Display errors (Mostrar errores): establézcalo en
On
para mostrar mensajes de error internos sobre depuración. -
Max execution time (Tiempo máximo de ejecución): tiempo máximo en segundos que un script puede ejecutarse antes de que el entorno lo termine.
Log Options (Opciones de registro)
La sección Log Options tiene dos valores:
-
Instance profile (Perfil de instancia): especifica el perfil de instancia que tiene permiso para obtener acceso al bucket de Amazon S3 asociado con la aplicación.
-
Habilite la rotación de archivos de registro a Amazon S3: especifica si los archivos de registro de las EC2 instancias de Amazon de su aplicación se copian en el bucket de Amazon S3 asociado a su aplicación.
Archivos estáticos
Para mejorar el rendimiento, puede utilizar la sección Static files (Archivos estáticos) para configurar el servidor proxy para entregar archivos estáticos de servidor (por ejemplo, HTML o imágenes) desde un conjunto de directorios dentro de su aplicación web. Para cada directorio, se establece la ruta virtual para la asignación de directorios. Cuando el servidor proxy recibe una solicitud de un archivo en la ruta especificada, proporciona directamente el archivo en lugar de direccionar la solicitud la aplicación.
Para obtener más información sobre la configuración de archivos estáticos mediante archivos de configuración o la consola de Elastic Beanstalk, consulte Distribución de archivos estáticos.
Propiedades del entorno
La sección Propiedades del entorno le permite especificar los ajustes de configuración del entorno en las EC2 instancias de Amazon que ejecutan su aplicación. Estos ajustes se pasan como pares clave-valor a la aplicación.
El código de la aplicación puede acceder a las propiedades del entorno mediante $_SERVER
o la función get_cfg_var
.
$endpoint = $_SERVER['API_ENDPOINT'];
Para obtener más información, consulte Variables de entorno y otros ajustes de software.
Espacios de nombres para configuración
Puede usar un archivo de configuración para definir opciones de configuración y realizar otras tareas de configuración en las instancias durante las implementaciones. Las opciones de configuración pueden ser específicas de la plataforma o aplicarse a todas las plataformas del servicio de Elastic Beanstalk en su conjunto. Las opciones de configuración se organizan en espacios de nombres.
Los siguientes espacios de nombres configuran tanto el servicio de proxy como las opciones específicas de PHP:
-
aws:elasticbeanstalk:environment:proxy:staticfiles: configure el proxy del entorno para que sirva archivos estáticos. Defina mapeos de rutas virtuales a directorios de aplicaciones.
-
aws:elasticbeanstalk:environment:proxy: especifique el servidor proxy del entorno.
-
aws:elasticbeanstalk:container:php:phpini: configure las opciones específicas de PHP. Este espacio de nombres incluye
composer_options
, que no está disponible en la consola de Elastic Beanstalk. Esta opción establece las opciones personalizadas que se van a usar al instalar dependencias con Composer a través del comandocomposer.phar install
, Para obtener más información sobre este comando, incluidas las opciones disponibles, consulte installen el sitio web getcomposer.org.
El siguiente archivo de configuración de ejemplo especifica una opción de archivos estáticos que asigna un directorio llamado staticimages
a la ruta /images
y muestra la configuración de cada una de las opciones disponibles en el espacio de nombres aws:elasticbeanstalk:container:php:phpini
:
ejemplo .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
nota
El espacio de nombres aws:elasticbeanstalk:environment:proxy:staticfiles
no está definido en las ramas de la plataforma PHP de la AMI de Amazon Linux (antes de Amazon Linux 2).
Elastic Beanstalk cuenta con numerosas opciones de configuración para personalizar el entorno. Además de los archivos de configuración, también puede definir opciones en la consola, configuraciones guardadas, la CLI de EB o la AWS CLI. Para obtener más información, consulte Opciones de configuración.
Configuración de las dependencias de su aplicación PHP de Elastic Beanstalk
En este tema se describe cómo configurar la aplicación para instalar otros paquetes de PHP que necesite. La aplicación podría tener dependencias en otros paquetes PHP. Puede configurar su aplicación para instalar estas dependencias en las instancias de Amazon Elastic Compute Cloud (Amazon EC2) del entorno. Como alternativa, puede incluir las dependencias de la aplicación en el paquete de código fuente e implementarlas con la aplicación. En la siguiente sección se explican ambas formas.
Utilizar un archivo de Composer para instalar dependencias en instancias
Usa un composer.json
archivo en la raíz del código fuente del proyecto para usar composer e instalar los paquetes que tu aplicación requiera en las EC2 instancias de Amazon de tu entorno.
ejemplo composer.json
{
"require": {
"monolog/monolog": "1.0.*"
}
}
Cuando hay un archivo composer.json
, Elastic Beanstalk ejecuta composer.phar install
para instalar las dependencias. Puede agregar otras opciones al comando estableciendo la opción composer_options del espacio de nombres aws:elasticbeanstalk:container:php:phpini
.
Incluir dependencias en el paquete de código fuente
Si la aplicación tiene un gran número de dependencias, instalarlas puede tardar mucho. Esto puede aumentar la implementación y las operaciones de escalado, ya que las dependencias se instalan en cada nueva instancia.
Para evitar el impacto negativo en el momento de la implementación, utilice Composer en su entorno de desarrollo para resolver dependencias e instalarlas en la carpeta vendor
.
Para incluir dependencias en el paquete de código fuente de la aplicación
-
Ejecuta el siguiente comando:
%
composer install -
Incluya la carpeta
vendor
generada en la raíz del paquete de código fuente de la aplicación.
Cuando Elastic Beanstalk encuentra una carpeta vendor
en la instancia, no tiene en cuenta el archivo composer.json
(aunque exista). A continuación, su aplicación utiliza dependencias de la carpeta vendor
.
Actualización de Composer en Elastic Beanstalk
En este tema se describe cómo configurar Elastic Beanstalk para mantener Composer actualizado. Es posible que necesite actualizar Composer si aparece un mensaje de error al intentar instalar paquetes con un archivo Composer o si no se puede utilizar la última versión de la plataforma. Entre las actualizaciones de la plataforma, puede utilizar los archivos de configuración de la carpeta .ebextensions para actualizar Composer en las instancias del entorno.
Puede actualizar Composer automáticamente con la siguiente configuración.
commands:
01updateComposer:
command: /usr/bin/composer.phar self-update 2.7.0
La siguiente configuración opcional establece la variable del entorno COMPOSER_HOME
, que configura la ubicación de la memoria caché de Composer.
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /home/webapp/composer-home
Puede combinar ambas opciones en el mismo archivo de configuración de la carpeta .ebextensions
.
ejemplo .ebextensions/composer.config
commands:
01updateComposer:
command: /usr/bin/composer.phar self-update 2.7.0
option_settings:
- namespace: aws:elasticbeanstalk:application:environment
option_name: COMPOSER_HOME
value: /home/webapp/composer-home
nota
Debido a las actualizaciones de la instalación de Composer en la versión de plataforma AL2 023 del 22 de febrero de 2024 y en la versión de plataforma del 28 de febrero de 2024, AL2 la actualización automática de Composer puede fallar si COMPOSER_HOME
se configura cuando se ejecuta la actualización automática.
No se ejecutarán los siguientes comandos combinados: export COMPOSER_HOME=/home/webapp/composer-home && /usr/bin/composer.phar
self-update 2.7.0
Sin embargo, el ejemplo anterior funcionará. En el ejemplo anterior, la opción configurada para COMPOSER_HOME
no se transferirá a la ejecución 01updateComposer
ni se establecerá cuando se ejecute el comando self-update.
importante
Si omite el número de versión en el comando composer.phar self-update
, Composer actualizará a la última versión disponible cada vez que implemente el código fuente y cuando Auto Scaling aprovisione nuevas instancias. Esto podría provocar errores en las operaciones de escalado y las implementaciones si se publica una versión de Composer que no es compatible con la aplicación.
Para obtener más información sobre las plataformas PHP Elastic Beanstalk, incluida la versión de Composer, consulte las versiones de la plataforma PHP en el documento Plataformas de AWS Elastic Beanstalk .
Ampliación de php.ini en la configuración de Elastic Beanstalk
Utilice un archivo de configuración con un bloque files
para agregar un archivo .ini
a /etc/php.d/
en las instancias del entorno. El principal archivo de configuración, php.ini
, extrae la configuración de los archivos de esta carpeta en orden alfabético. Muchas extensiones están habilitadas de forma predeterminada por los archivos de esta carpeta.
ejemplo .ebextensions/mongo.config
files:
"/etc/php.d/99mongo.ini":
mode: "000755"
owner: root
group: root
content: |
extension=mongo.so