Introducción a PHP en Compute Engine

En este instructivo, se muestra cómo comenzar a usar Compute Engine. Si deseas seguir este instructivo, implementa una aplicación Hello World para PHP en Compute Engine. Si deseas obtener ayuda para comenzar a usar App Engine, consulta el entorno estándar de App Engine.

Objetivos

  • Usa Cloud Shell para descargar y, luego, implementar una aplicación de muestra Hello World.
  • Implementar una app Hello World de muestra en una sola instancia de Compute Engine

Costos

En este instructivo, se usan los siguientes componentes facturables de Google Cloud:

Para generar una estimación de costos en función del uso previsto, usa la calculadora de precios. Es posible que los usuarios nuevos de Google Cloud sean aptos para obtener una prueba gratuita.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

    Ir a la página Selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

  4. Habilita la API Compute Engine.

    Habilita la API

  5. En Google Cloud Console, abre la aplicación en Cloud Shell.

    Ir a Cloud Shell

    Cloud Shell brinda acceso de línea de comandos a tus recursos en la nube directamente desde el navegador. Abre Cloud Shell en tu navegador y haz clic en Continuar para descargar el código de muestra y pasar al directorio de la aplicación.

  6. En Cloud Shell, configura la herramienta de gcloud para que use tu proyecto de Google Cloud nuevo de la manera siguiente:
    # Configure gcloud for your project
    gcloud config set project YOUR_PROJECT_ID
    

Ejecuta la aplicación en Cloud Shell

  1. Instala las dependencias de la aplicación con el comando de composer siguiente:

    composer install
    
  2. Ejecuta el servidor web integrado de PHP con el comando siguiente:

    php -S localhost:8080
    
  3. En Cloud Shell, haz clic en Vista previa web y selecciona Obtener vista previa en el puerto 8080. Se abrirá una ventana nueva con tu aplicación en ejecución.

  4. Para detener el servidor web local, presiona Control+C.

Implementar en una instancia única

En esta sección, se explica cómo ejecutar una instancia única de tu aplicación en Compute Engine.

Implementación de una sola instancia

En Cloud Shell, puedes realizar una implementación en la máquina virtual (VM) de una sola instancia de Compute Engine que ejecuta tu aplicación.

Usa una secuencia de comandos de inicio para inicializar una instancia

Necesitas una forma de indicar a tu instancia que descargue y ejecute tu código. Una instancia puede tener una secuencia de comandos de inicio que se ejecuta cada vez que se inicia o reinicia la instancia.

set -e
export HOME=/root

# Install PHP and dependencies from apt
apt-get update
apt-get install -y git nginx php7.2 php7.2-fpm php7.2-mysql php7.2-dev \
    php7.2-mbstring php7.2-zip php-pear pkg-config

# Install Composer
curl -sS https://getcomposer.org/installer | \
    /usr/bin/php -- \
    --install-dir=/usr/local/bin \
    --filename=composer

# Get the application source code
git clone https://github.com/googlecloudplatform/getting-started-php /opt/src
ln -s /opt/src/gce /opt/app

# Run Composer
composer install -d /opt/app --no-ansi --no-progress --no-dev

# Disable the default NGINX configuration
rm /etc/nginx/sites-enabled/default

# Enable our NGINX configuration
cp /opt/app/config/nginx/helloworld.conf /etc/nginx/sites-available/helloworld.conf
ln -s /etc/nginx/sites-available/helloworld.conf /etc/nginx/sites-enabled/helloworld.conf
cp /opt/app/config/nginx/fastcgi_params /etc/nginx/fastcgi_params

# Start NGINX
systemctl restart nginx.service

# Install Fluentd
curl -s "https://storage.googleapis.com/signals-agents/logging/google-fluentd-install.sh" | bash

# Enable our Fluentd configuration
cp /opt/app/config/fluentd/helloworld.conf /etc/google-fluentd/config.d/helloworld.conf

# Start Fluentd
service google-fluentd restart &

La secuencia de comandos de inicio realiza las siguientes tareas:

  • Instala PHP 7 y PHP 7 FPM.

  • Instala y configura NGINX.

  • Descarga Composer y lo ejecuta para el código de la aplicación.

  • Instala el agente de Cloud Logging y lo configura para supervisar los registros de la app. Esto significa que los registros configurados en los pasos anteriores de este instructivo se suben como si utilizaras App Engine.

Crea y configura una instancia de Compute Engine

  1. Crea una instancia de Compute Engine de la manera siguiente:

    MY_INSTANCE_NAME='my-app-instance'
    ZONE=us-central1-f
    
    gcloud compute instances create $MY_INSTANCE_NAME \
        --image-family=ubuntu-1804-lts \
        --image-project=ubuntu-os-cloud \
        --machine-type=g1-small \
        --scopes userinfo-email,cloud-platform \
        --metadata-from-file startup-script=scripts/startup-script.sh \
        --zone $ZONE \
        --tags http-server

    Reemplaza la zona por una zona de desarrollo, por ejemplo, us-central1-a. Para obtener más información sobre regiones y zonas, consulta Geografía y regiones.

    Esto permite crear una instancia nueva para acceder a los servicios de Google Cloud y ejecutar tu secuencia de comandos de inicio. El nombre de la instancia es my-app-instance.

  2. Revisa el progreso de la creación de la instancia con el comando siguiente:

    gcloud compute instances get-serial-port-output my-app-instance --zone YOUR_ZONE
    

    Reemplaza YOUR_ZONE por la zona en la que implementaste tu instancia.

    Cuando se complete la secuencia de comandos de inicio, verás el mensaje siguiente:

    startup-script: INFO Finished running startup scripts.
    
  3. Crea una regla de firewall para permitir el tráfico hacia tu instancia de la manera siguiente:

    gcloud compute firewall-rules create default-allow-http-80 \
        --allow tcp:80 \
        --source-ranges 0.0.0.0/0 \
        --target-tags http-server \
        --description "Allow port 80 access to http-server"
    

  4. Obtén la dirección IP externa de la instancia con el comando siguiente:

    gcloud compute instances list
    
  5. Para ver la aplicación en ejecución, ingresa la URL siguiente en el navegador:

    http://YOUR_INSTANCE_IP
    

    Reemplaza YOUR_INSTANCE_IP por la dirección IP externa de la instancia.

Administra y supervisa una instancia

Puedes usar Cloud Console para supervisar y administrar las instancias.

  1. En Cloud Console, ve a la página Instancias de VM.

    Ir a la página Instancias de VM

  2. En la lista de instancias de máquinas virtuales, haz clic en SSH en la fila de la instancia a la que deseas conectarte.
  3. Para ver todos los registros generados por tus recursos de Compute Engine, ve a la página Visor de registros. Ir al Visor de registros

    Cloud Logging se configura de forma automática para recopilar los registros de diversos servicios comunes, incluido syslog.

Limpia

Sigue estos pasos para evitar que se apliquen cargos a tu cuenta de Google Cloud Platform por los recursos que usaste en este instructivo:

Borra el proyecto

  1. En Cloud Console, ve a la página Administrar recursos.

    Ir a la página Administrar recursos

  2. En la lista de proyectos, selecciona el proyecto que deseas borrar y haz clic en Borrar .
  3. En el cuadro de diálogo, escribe el ID del proyecto y haz clic en Cerrar para borrar el proyecto.

Borra los recursos individuales

gcloud compute instances delete my-app-instance --zone=YOUR_ZONE --delete-disks=all
gcloud compute firewall-rules delete default-allow-http-80

Pasos siguientes