Entorno de ejecución de PHP

El entorno de ejecución de PHP es la pila de software encargada de instalar el código y las dependencias de tu aplicación y, luego, ejecutarla en el entorno flexible.

Versiones de PHP

PHP 8.5 usa paquetes de compilación. Para obtener la lista completa de las versiones de PHP compatibles y su versión de Ubuntu correspondiente, consulta el programa de asistencia del entorno de ejecución.

Para usar una versión de PHP compatible, debes hacer lo siguiente:

  • Instala la versión 420.0.0 o una posterior de gcloud CLI. Puedes actualizar las herramientas de la CLI si ejecutas el comando gcloud components update. Para ver la versión instalada, puedes ejecutar el comando gcloud version.

  • Incluye la configuración runtime_config y operating_system en el archivo app.yaml para especificar un sistema operativo.

  • Declara la raíz del documento de la aplicación en el archivo app.yaml:

      runtime: php
      env: flex
    
      runtime_config:
          operating_system: "ubuntu24"
          document_root: "web"
    

    Aunque puedes especificar el directorio raíz del proyecto (.) como la raíz del documento, te recomendamos que uses un subdirectorio para la configuración de document_root.

    El código fuente se encuentra en el directorio /workspace, en lugar del directorio raíz (/). Si anulas cualquier configuración, los procesos NGINX o supervisor hacen referencia al archivo de configuración en este directorio. Para actualizar las referencias correspondientes, debes hacer lo siguiente:

    • Actualiza las declaraciones include en la configuración de NGINX para que estén relacionadas con /workspace en lugar de /etc/nginx.

    • Algunos archivos, como gzip_params, no están incluidos. Para hacer referencia a estos archivos, incluye tu propio o copia desde GitHub. Los archivos como mime.types y fastcgi_params están disponibles en el directorio /etc/nginx.

    • Algunos módulos NGINX, como nginx-plus-module-ndk, no están instalados. Establece el valor $docroot o agrégalo de forma manual en tu archivo de configuración NGINX.

  • De manera opcional, puedes especificar una versión del entorno de ejecución de las siguientes maneras:

    • Incluye la configuración de runtime_version en tu app.yaml. De forma predeterminada, se usa la última versión de PHP si no se especifica la configuración de runtime_version.

      • Para especificar PHP 8.5 en Ubuntu 24, haz lo siguiente:

        runtime: php
        env: flex
        
        runtime_config:
            operating_system: "ubuntu24"
            runtime_version: "8.5"
            document_root: .
        
      • Para especificar la última versión de PHP compatible en Ubuntu 24, sigue estos pasos:

          runtime: php
          env: flex
        
          runtime_config:
              operating_system: "ubuntu24"
              document_root: .
        
    • Incluye una versión de PHP en el archivo composer.json.

      {
          "require": {
              "php": "8.5.*"
          }
      }
      

    Consulta la referencia de app.yaml para obtener más información.

Versiones anteriores del entorno de ejecución

Para usar la versión 7.3 y anteriores de PHP, debes hacer lo siguiente:

  • Declara la raíz del documento de la aplicación. Puedes hacerlo en tu archivo app.yaml:

    runtime: php
    env: flex
    api_version: 1
    
    runtime_config:
      document_root: .
    

    Aunque puedes especificar el directorio raíz del proyecto (.) como la raíz del documento, te recomendamos que uses un subdirectorio para la configuración de document_root.

  • Especifica una versión de PHP en el archivo composer.json para evitar que la aplicación se actualice de forma automática cuando haya una nueva versión de PHP disponible.

    {
        "require": {
            "php": "7.3.*"
        }
    }
    

Compatibilidad con otros entornos de ejecución de PHP

Si necesitas usar una versión de PHP que no es compatible, puedes crear un entorno de ejecución personalizado y seleccionar una imagen base válida con la versión de PHP que necesites.

Para las imágenes base proporcionadas por Google o las imágenes base de Docker para PHP, consulta Compila entornos de ejecución personalizados.

Personaliza NGINX

Para definir un archivo de configuración personalizado, incluye el archivo nginx-app.conf en el directorio raíz de tu proyecto.

De forma predeterminada, el controlador frontal del framework usa el archivo index.php. Es posible que debas cambiar esto a algo distinto para tu proyecto. Por ejemplo, el framework de Symfony usa app.php en lugar de index.php. Puedes cambiar el nombre del archivo en la sección runtime_config del archivo app.yaml:

runtime: php
env: flex

runtime_config:
  operating_system: "ubuntu24"
  document_root: .
  front_controller_file: app.php

Para la versión 7.3 y las anteriores, el archivo de configuración nginx-app.conf se incluye en la sección del servidor del archivo de configuración principal NGINX. Por ejemplo, el archivo de configuración predeterminado php-app.conf contiene lo siguiente:

location / {
# try to serve files directly, fallback to the front controller
try_files $uri /$front_controller_file$is_args$args;
}

Para definir un archivo de configuración personalizado, crea el archivo nginx-app.conf en el directorio raíz de tu proyecto. El entorno de ejecución anula el archivo predeterminado con el archivo que proporcionas.

De forma predeterminada, el controlador frontal del framework usa el archivo index.php. Es posible que debas cambiar esto a algo distinto para tu proyecto. Por ejemplo, el framework de Symfony usa app.php en lugar de index.php. Puedes cambiar el nombre del archivo en la sección runtime_config del archivo app.yaml:

runtime: php
env: flex

runtime_config:
  document_root: .
  front_controller_file: app.php

OPcache

Habilita OPcache en el archivo php.ini. Consulta el documento oficial para saber cómo configurar OPcache.

Para inhabilitar OPcache, crea o edita el archivo php.ini con la siguiente línea: