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
La plataforma AWS App Runner PHP proporciona tiempos de ejecución gestionados. Puede usar cada tiempo de ejecución para crear y ejecutar contenedores con aplicaciones web basadas en una versión de PHP. Cuando utilizas un entorno de ejecución de PHP, App Runner comienza con una imagen de tiempo de ejecución de PHP gestionada. Esta imagen se basa en la imagen de Docker de Amazon Linux
Usted especifica un tiempo de ejecución para su servicio de App Runner al crear un servicio mediante la consola de App Runner o la operación de la CreateServiceAPI. También puedes especificar un tiempo de ejecución como parte de tu código fuente. Usa la runtime
palabra clave en un archivo de configuración de App Runner que incluyas en tu repositorio de código. La convención de nomenclatura de un tiempo de ejecución gestionado es. <language-name><major-version>
Para obtener nombres y versiones de tiempo de ejecución de PHP válidos, consultePHPinformación de versión en tiempo de ejecución.
App Runner actualiza el tiempo de ejecución del servicio a la versión más reciente en cada implementación o actualización del servicio. Si su aplicación requiere una versión específica de un tiempo de ejecución administrado, puede especificarla mediante la runtime-version
palabra clave del archivo de configuración de App Runner. Puedes bloquearla en cualquier nivel de versión, incluida una versión principal o secundaria. App Runner solo realiza actualizaciones de nivel inferior en el tiempo de ejecución de tu servicio.
Sintaxis de la versión para los tiempos de ejecución de PHP: major
[.minor
[.patch
]]
Por ejemplo: 8.1.10
Los siguientes son ejemplos de bloqueo de versiones:
-
8.1
— Bloquee las versiones principales y secundarias. App Runner actualiza solo las versiones con parches. -
8.1.10
— Bloquear una versión de parche específica. App Runner no actualiza tu versión en tiempo de ejecución.
importante
Si quieres especificar el directorio fuente del repositorio de código para tu servicio de App Runner en una ubicación distinta del directorio raíz del repositorio predeterminado, la versión de ejecución gestionada por PHP debe ser PHP 8.1.22
o posterior. Las versiones de tiempo de ejecución de PHP anteriores a solo 8.1.22
pueden usar el directorio fuente raíz predeterminado.
Temas
Configuración del tiempo de ejecución de PHP
Al elegir un tiempo de ejecución gestionado, también debe configurar, como mínimo, los comandos de compilación y ejecución. Los configuras al crear o actualizar tu servicio App Runner. Puede hacerlo mediante uno de los siguientes métodos:
-
Mediante la consola de App Runner: especifique los comandos en la sección Configurar compilación del proceso de creación o en la pestaña de configuración.
-
Uso de la API de App Runner: llame a la operación CreateServiceo UpdateServiceAPI. Especifique los comandos mediante los
StartCommand
miembrosBuildCommand
y del tipo de CodeConfigurationValuesdatos. -
Uso de un archivo de configuración: especifique uno o más comandos de compilación en un máximo de tres fases de compilación y un solo comando de ejecución que sirva para iniciar la aplicación. Hay opciones de configuración opcionales adicionales.
El suministro de un archivo de configuración es opcional. Al crear un servicio de App Runner mediante la consola o la API, debe especificar si App Runner obtiene los ajustes de configuración directamente al crearlos o de un archivo de configuración.
Compatibilidad
Puedes ejecutar tus servicios de App Runner en la plataforma PHP mediante uno de los siguientes servidores web:
-
Apache HTTP Server
-
NGINX
Apache HTTP Servery NGINX son compatibles con PHP-FPM. Puede iniciar Apache HTTP Servery NGINXmediante una de las siguientes opciones:
-
Supervisord
: para obtener más información sobre la ejecución de un supervisord, consulte Ejecutar supervisord. -
Script de inicio
Para ver ejemplos sobre cómo configurar el servicio App Runner con la plataforma PHP mediante el servidor HTTP Apache o NGINX, consulte. Fuente completa de la aplicación PHP
Estructura de archivos
index.php
Debe estar instalado en la public
carpeta del root
directorio del servidor web.
nota
Se recomienda almacenar los supervisord.conf
archivos startup.sh
o en el directorio raíz del servidor web. Asegúrese de que el start
comando apunte a la ubicación en la que están almacenados supervisord.conf
los archivos startup.sh
o.
A continuación se muestra un ejemplo de la estructura de archivos que está utilizando supervisord.
/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
El siguiente es un ejemplo de la estructura de archivos si utiliza un script de inicio.
/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ startup.sh
Se recomienda almacenar estas estructuras de archivos en el directorio fuente del repositorio de código designado para el servicio App Runner.
/<sourceDirectory
>/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ startup.sh
importante
Si quieres especificar el directorio fuente del repositorio de código para tu servicio de App Runner en una ubicación que no sea el directorio raíz del repositorio predeterminado, tu versión de tiempo de ejecución gestionado por PHP debe ser PHP 8.1.22
o posterior. Las versiones de tiempo de ejecución de PHP anteriores a solo 8.1.22
pueden usar el directorio fuente raíz predeterminado.
App Runner actualiza el tiempo de ejecución de tu servicio a la última versión en cada implementación o actualización del servicio. Su servicio utilizará los tiempos de ejecución más recientes de forma predeterminada, a menos que haya especificado el bloqueo de versiones con la runtime-version
palabra clave del archivo de configuración de App Runner.
Ejemplos de tiempos de ejecución de PHP
A continuación, se muestran ejemplos de archivos de configuración de App Runner que se utilizan para crear y ejecutar un servicio PHP.
El siguiente ejemplo es un archivo de configuración mínimo que puede utilizar con un entorno de ejecución gestionado por PHP. Para obtener más información sobre un archivo de configuración mínima, consulteEjemplos de archivos de configuración.
ejemplo apprunner.yaml
version: 1.0
runtime: php81
build:
commands:
build:
- echo example build command for PHP
run:
command: ./startup.sh
El siguiente ejemplo utiliza todas las claves de configuración con un tiempo de ejecución gestionado por PHP.
nota
La versión de tiempo de ejecución que se utiliza en estos ejemplos es la 8.1.10
. Puede sustituirla por la versión que desee utilizar. Para ver la última versión de tiempo de ejecución de PHP compatible, consultePHPinformación de versión en tiempo de ejecución.
ejemplo 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"
Los siguientes ejemplos son del código fuente de una aplicación PHP que puede usar para implementar en un servicio de tiempo de ejecución de PHP usando Apache HTTP Servero NGINX. En estos ejemplos se supone que se utiliza la estructura de archivos predeterminada.
Ejecutar la plataforma PHP con Apache HTTP Server el uso supervisord
ejemplo Estructura de archivos
nota
-
El
supervisord.conf
archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que elstart
comando apunta al lugar donde está almacenado elsupervisord.conf
archivo. -
index.php
Debe estar instalado en lapublic
carpeta situada debajo delroot
directorio.
/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
ejemplo 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
ejemplo 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
ejemplo index.php
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
print("Hello World!");
print("<br>");
?>
</body>
</html>
Ejecutar la plataforma PHP con Apache HTTP Server el uso startup script
ejemplo Estructura de archivos
nota
-
El
startup.sh
archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que elstart
comando apunta al lugar donde está almacenado elstartup.sh
archivo. -
index.php
Debe estar instalado en lapublic
carpeta situada debajo delroot
directorio.
/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ startup.sh
ejemplo startup.sh
#!/bin/bash
set -o monitor
trap exit SIGCHLD
# Start apache
httpd -DFOREGROUND &
# Start php-fpm
php-fpm -F &
wait
nota
-
Asegúrate de guardar el
startup.sh
archivo como ejecutable antes de enviarlo a un repositorio de Git. Se usachmod +x startup.sh
para establecer el permiso de ejecución enstartup.sh
el archivo. -
Si no guarda el
startup.sh
archivo como ejecutable,chmod +x startup.sh
introdúzcalo comobuild
comando en elapprunner.yaml
archivo.
ejemplo 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
ejemplo index.php
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
print("Hello World!");
print("<br>");
?>
</body>
</html>
Ejecutar la plataforma PHP con NGINX el uso supervisord
ejemplo Estructura de archivos
nota
-
El
supervisord.conf
archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que elstart
comando apunta al lugar donde está almacenado elsupervisord.conf
archivo. -
index.php
Debe estar instalado en lapublic
carpeta situada debajo delroot
directorio.
/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
ejemplo 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
ejemplo 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
ejemplo index.php
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
print("Hello World!");
print("<br>");
?>
</body>
</html>
Ejecutar la plataforma PHP con NGINX el uso startup script
ejemplo Estructura de archivos
nota
-
El
startup.sh
archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que elstart
comando apunta al lugar donde está almacenado elstartup.sh
archivo. -
index.php
Debe estar instalado en lapublic
carpeta situada debajo delroot
directorio.
/
├─ public/
│ ├─ index.php
├─ apprunner.yaml
├─ startup.sh
ejemplo startup.sh
#!/bin/bash
set -o monitor
trap exit SIGCHLD
# Start nginx
nginx -g 'daemon off;' &
# Start php-fpm
php-fpm -F &
wait
nota
-
Asegúrate de guardar el
startup.sh
archivo como ejecutable antes de enviarlo a un repositorio de Git. Se usachmod +x startup.sh
para establecer el permiso de ejecución enstartup.sh
el archivo. -
Si no guarda el
startup.sh
archivo como ejecutable,chmod +x startup.sh
introdúzcalo comobuild
comando en elapprunner.yaml
archivo.
ejemplo 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
ejemplo index.php
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
print("Hello World!");
print("<br>");
?>
</body>
</html>