Uso de la plataforma PHP de Elastic Beanstalk - AWS Elastic Beanstalk

Uso de la plataforma PHP de Elastic Beanstalk

AWS Elastic Beanstalk admite diversas plataformas para las diferentes versiones del lenguaje de programación PHP. Estas plataformas admiten aplicaciones web PHP que se pueden ejecutar solas o con Composer. Obtenga más información en PHP en el documento AWS Elastic Beanstalk Plataformas.

Elastic Beanstalk proporciona opciones de configuración que se pueden usar para personalizar el software que se ejecuta en las instancias EC2 del 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.

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

  1. Abra la consola de Elastic Beanstalk y, en la lista Regions (Regiones), seleccione su región de AWS.

  2. En el panel de navegación, elija Environments (Entornos) y, a continuación, elija el nombre del entorno en la lista.

    nota

    Si tiene muchos entornos, utilice la barra de búsqueda para filtrar la lista de entornos.

  3. En el panel de navegación, elija Configuration (Configuración).

  4. En la categoría de configuración Software, elija Edit (Editar).

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 llamada public.

  • 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.

  • Enable log file rotation to Amazon S3 (Habilitar la rotación de archivos de registro para Amazon S3): especifica si los archivos de registro de las instancias de Amazon EC2 de la aplicación deben copiarse en el bucket de Amazon S3 asociado a la aplicación.

Archivos estáticos

Para mejorar el rendimiento, la sección Static files (Archivos estáticos) le permite configurar el servidor proxy para servir archivos estáticos de servidor (por ejemplo, HTML o imágenes) desde un conjunto de directorios incluidos en 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 Environment Properties (Propiedades de entorno) le permite especificar opciones de configuración del entorno en las instancias de Amazon EC2 que ejecutan la 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 Propiedades del entorno y otras opciones del software.

El espacio de nombres aws:elasticbeanstalk:container:php:phpini

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 se pueden definir a través del servicio de Elastic Beanstalk o la plataforma que utilice y están organizadas por espacios de nombres.

Puede utilizar el espacio de nombres aws:elasticbeanstalk:environment:proxy para elegir el servidor proxy del entorno.

Puede usar el espacio de nombres aws:elasticbeanstalk:environment:proxy:staticfiles para configurar el proxy del entorno para que sirva archivos estáticos. Defina mapeos de rutas virtuales a directorios de aplicaciones.

La plataforma PHP define opciones en el espacio de aws:elasticbeanstalk:container:php:phpini nombres, incluida una que no está disponible en la consola de Elastic Beanstalk. composer_options establece las opciones personalizadas que se utilizarán al instalar dependencias mediante Composer a través de composer.phar install. Para obtener más información, incluidas las opciones disponibles, visite http://getcomposer.org/doc/03-cli.md#install.

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.