

AWS App Runner dejará de estar abierto a nuevos clientes a partir del 30 de abril de 2026. Si quieres usar App Runner, regístrate antes de esa fecha. Los clientes existentes pueden seguir utilizando el servicio con normalidad. Para obtener más información, consulte [Cambio en la disponibilidad de AWS App Runner](https://docs.aws.amazon.com/apprunner/latest/dg/apprunner-availability-change.html).

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
<a name="service-source-code-php"></a>

**importante**  
App Runner dejará de ser compatible con **PHP 8.1** el 31 de diciembre de 2025. Para obtener recomendaciones y más información, consulte[Fin del soporte para las versiones de tiempo de ejecución gestionado](service-source-code.md#service-source-code.managed-platforms.eos).

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](https://hub.docker.com/_/amazonlinux) y contiene el paquete de tiempo de ejecución de una versión de PHP y algunas herramientas. App Runner usa esta imagen de tiempo de ejecución administrada como imagen base y agrega el código de la aplicación para crear una imagen de Docker. A continuación, implementa esta imagen para ejecutar el servicio web en un contenedor.

 Usted especifica un tiempo de ejecución para su servicio de App Runner al [crear un servicio](manage-create.md) mediante la consola de App Runner o la operación de la [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)API. 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](config-file.md) 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, consulte[Información sobre la versión de PHP Runtime](service-source-code-php-releases.md).

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](config-file.md). 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 del 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 de ejecución.

**importante**  
 Si quieres especificar el [directorio fuente](service-source-code.md#service-source-code.source-directory) 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. 

**Topics**
+ [Configuración del tiempo de ejecución de PHP](#service-source-code-php.config)
+ [Compatibilidad](#service-source-code-php.compatibility)
+ [Ejemplos de tiempos de ejecución de PHP](#service-source-code-php.examples)
+ [Información sobre la versión de PHP Runtime](service-source-code-php-releases.md)

## Configuración del tiempo de ejecución de PHP
<a name="service-source-code-php.config"></a>

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](manage-create.md) o [actualizar](manage-configure.md) 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 [CreateService](https://docs.aws.amazon.com/apprunner/latest/api/API_CreateService.html)o [UpdateService](https://docs.aws.amazon.com/apprunner/latest/api/API_UpdateService.html)API. Especifique los comandos mediante los `StartCommand` miembros `BuildCommand` y del tipo de [CodeConfigurationValues](https://docs.aws.amazon.com/apprunner/latest/api/API_CodeConfigurationValues.html)datos.
+ **Uso de un [archivo de configuración](config-file.md)**: 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.

Proporcionar 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
<a name="service-source-code-php.compatibility"></a>

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 Server*y *NGINX*mediante una de las siguientes opciones:
+ [Supervisord](http://supervisord.org/introduction.html#supervisor-components/): para obtener más información sobre la ejecución de un *supervisord*, consulte [Ejecutar](http://supervisord.org/running.html#running-supervisord) 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](#service-source-code-php.examples.end2end) 

### Estructura de archivos
<a name="service-source-code-php.compatibility.file-structure"></a>

`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](service-source-code.md#service-source-code.source-directory) 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](service-source-code.md#service-source-code.source-directory) 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](config-file.md).

## Ejemplos de tiempos de ejecución de PHP
<a name="service-source-code-php.examples"></a>

Los siguientes son ejemplos de archivos de configuración de App Runner que se utilizan para crear y ejecutar un servicio PHP. 

### Archivo de configuración PHP mínimo
<a name="service-source-code-php.examples.minimal"></a>

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, consulte[Ejemplos de archivos de configuración](config-file-examples.md#config-file-examples.managed).

**Example apprunner.yaml**  

```
version: 1.0 
runtime: php81
build:
  commands:
    build:
      - echo example build command for PHP
run:
  command: ./startup.sh
```

### Archivo de configuración PHP extendido
<a name="service-source-code-php.examples.extended"></a>

El siguiente ejemplo utiliza todas las claves de configuración con un tiempo de ejecución gestionado por PHP.

**nota**  
La versión en tiempo de ejecución que se utiliza en estos ejemplos es*8.1.10*. Puede sustituirla por la versión que desee utilizar. Para ver la última versión de ejecución de PHP compatible, consulte[Información sobre la versión de PHP Runtime](service-source-code-php-releases.md).

**Example 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"
```

### Fuente completa de la aplicación PHP
<a name="service-source-code-php.examples.end2end"></a>

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 Server*o *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
<a name="service-source-code-php.examples.end2end.appache-supervisord"></a>

**Example Estructura de archivos**  
+ El `supervisord.conf` archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que el `start` comando apunta al lugar donde está almacenado el `supervisord.conf` archivo.
+ `index.php`Debe estar instalado en la `public` carpeta situada debajo del `root` directorio.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

**Example 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
```

**Example 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
```

**Example 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
<a name="service-source-code-php.examples.end2end.appache-startupscript"></a>

**Example Estructura de archivos**  
+ El `startup.sh` archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que el `start` comando apunta al lugar donde está almacenado el `startup.sh` archivo.
+ `index.php`Debe estar instalado en la `public` carpeta situada debajo del `root` directorio.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**Example 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 usa `chmod +x startup.sh` para establecer el permiso de ejecución en `startup.sh` el archivo. 
Si no guarda el `startup.sh` archivo como ejecutable, `chmod +x startup.sh` introdúzcalo como `build` comando en el `apprunner.yaml` archivo. 

**Example 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
```

**Example 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
<a name="service-source-code-php.examples.end2end.nginx-supervisord"></a>

**Example Estructura de archivos**  
+ El `supervisord.conf` archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que el `start` comando apunta al lugar donde está almacenado el `supervisord.conf` archivo.
+ `index.php`Debe estar instalado en la `public` carpeta situada debajo del `root` directorio.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ supervisord.conf
```

**Example 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
```

**Example 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
```

**Example 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
<a name="service-source-code-php.examples.end2end.nginx-startupscript"></a>

**Example Estructura de archivos**  
+ El `startup.sh` archivo se puede almacenar en cualquier parte del repositorio. Asegúrese de que el `start` comando apunta al lugar donde está almacenado el `startup.sh` archivo. 
+ `index.php`Debe estar instalado en la `public` carpeta situada debajo del `root` directorio.

```
/
├─ public/
│  ├─ index.php
├─ apprunner.yaml
├─ startup.sh
```

**Example 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 usa `chmod +x startup.sh` para establecer el permiso de ejecución en `startup.sh` el archivo. 
Si no guarda el `startup.sh` archivo como ejecutable, `chmod +x startup.sh` introdúzcalo como `build` comando en el `apprunner.yaml` archivo. 

**Example 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
```

**Example index.php**  

```
<html>
<head> <title>First PHP App</title> </head>
<body>
<?php
    print("Hello World!");
    print("<br>");
?>
</body>
</html>
```

# Información sobre la versión de PHP Runtime
<a name="service-source-code-php-releases"></a>

**importante**  
App Runner dejará de ser compatible con **PHP 8.1** el 31 de diciembre de 2025. Para obtener recomendaciones y más información, consulte[Fin del soporte para las versiones de tiempo de ejecución gestionado](service-source-code.md#service-source-code.managed-platforms.eos).

En este tema se enumeran todos los detalles de las versiones de PHP en tiempo de ejecución compatibles con App Runner.


**Versiones de tiempo de ejecución compatibles: versión original de App Runner**  
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/es_es/apprunner/latest/dg/service-source-code-php-releases.html)

**nota**  
App Runner proporciona un proceso de compilación revisado para los principales tiempos de ejecución específicos que se publicaron más recientemente. Por este motivo, verás referencias a la *versión revisada de App Runner y a* la versión *original de App Runner* en determinadas secciones de este documento. Para obtener más información, consulte [Versiones administradas en tiempo de ejecución y compilación de App Runner](service-source-code.md#service-source-code.build-detail).