Aloja WordPress en el entorno flexible de App Engine


En este instructivo, se muestra cómo implementar un sitio pequeño de WordPress en el entorno flexible de App Engine.

Objetivos

  • Crear una instancia de Cloud SQL de segunda generación
  • Configura un sitio de WordPress de muestra.
  • Implementa el sitio de muestra de WordPress en el entorno flexible de App Engine.

Costos

Antes de comenzar

  1. Accede a tu cuenta de Google Cloud. Si eres nuevo en Google Cloud, crea una cuenta para evaluar el rendimiento de nuestros productos en situaciones reales. Los clientes nuevos también obtienen $300 en créditos gratuitos para ejecutar, probar y, además, implementar cargas de trabajo.
  2. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  4. Habilita las API necesarias.

    Habilita las API

  5. Instala Google Cloud CLI.
  6. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  7. En la página del selector de proyectos de la consola de Google Cloud, selecciona o crea un proyecto de Google Cloud.

    Ir al selector de proyectos

  8. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud.

  9. Habilita las API necesarias.

    Habilita las API

  10. Instala Google Cloud CLI.
  11. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  12. Sigue estos pasos para crear credenciales:
    • En la consola de Google Cloud, ve a la página Credenciales.

      Abrir la página Credenciales de API

    • Haz clic en Crear credenciales y selecciona Clave de cuenta de servicio.
    • Selecciona Cuenta de servicio > Cuenta de servicio predeterminada de App Engine.
    • Haz clic en Crear.
    • Guarda la clave descargada en un lugar seguro.
  13. Instala PHP y Composer.
  14. Descarga el proxy de Cloud SQL y haz que sea ejecutable. Además, agrega la ubicación del archivo ejecutable del proxy de Cloud SQL a tu variable de entorno PATH.
  15. Instala un cliente MySQL y verifica que la ubicación del archivo ejecutable mysql se encuentre en tu variable de entorno PATH.

Crea y configura una instancia de Cloud SQL de segunda generación

  1. Crea una instancia de Cloud SQL de segunda generación de la manera siguiente:

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. Configura la contraseña raíz de tu instancia con el comando siguiente:

    gcloud sql users set-password root --instance tutorial-sql-instance \
        --password [YOUR_SQL_ROOT_PASSWORD] \
        --host %
    

    donde [YOUR_SQL_ROOT_PASSWORD] es una contraseña de seguridad que tú eliges.

  3. Descarga y ejecuta el proxy de Cloud SQL con el comando siguiente:

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    cloud_sql_proxy \
        -dir /tmp/cloudsql \
        -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \
        -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]
    

    La siguiente es una explicación de los parámetros del ejemplo anterior:

    • [YOUR_PROJECT_ID] es tu ID del proyecto de Google Cloud.

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON] es la ruta al archivo JSON de la cuenta de servicio que descargaste anteriormente.

    El resultado siguiente indica que el proxy está listo para conexiones nuevas:

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. En otra ventana de la terminal, crea una base de datos y un usuario nuevos con el comando siguiente:

    mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD]
    mysql> create database tutorialdb;
    mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]';
    mysql> grant all on tutorialdb.* to 'tutorial-user'@'%';
    mysql> exit
    

    Donde:

    • [YOUR_SQL_ROOT_PASSWORD] es la contraseña raíz de tu instancia de Cloud SQL.
    • [YOUR_DATABASE_PASSWORD] es una contraseña de seguridad que tú eliges.

Configura el proyecto de WordPress

  1. Clona el repositorio de muestra:

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. Ve al directorio que contiene el código de muestra:

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. Instale las dependencias:

    composer install
    
  4. Ejecuta la secuencia de comandos auxiliar:

    php wordpress.php setup -n \
        --dir=./wordpress-project \
        --db_instance=tutorial-sql-instance \
        --db_name=tutorialdb \
        --db_user=tutorial-user \
        --project_id=[YOUR_PROJECT_ID] \
        --db_password=[YOUR_DATABASE_PASSWORD]
    

    Donde:

    • [YOUR_PROJECT_ID] es el ID del proyecto.
    • [YOUR_DATABASE_PASSWORD] es la contraseña de tu base de datos.

    En el parámetro -dir, se especifica la ubicación de tu proyecto de WordPress.

  5. En la secuencia de comandos auxiliar, se escribe información en wordpress-project/wordpress/wp-config.php. Inspecciona el contenido de wp-config.php para verificar que tus nombres, el ID del proyecto y la contraseña de la base de datos sean correctos.

    if ($onGae) {
        /** Production environment */
        define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    } else {
        /** Local environment */
        define('DB_HOST', '127.0.0.1');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    }
    

Implementa el proyecto de WordPress en el entorno flexible de App Engine

  1. Ve al diccionario de tu proyecto de WordPress:

    cd wordpress-project
    
  2. Implementa el proyecto de WordPress con este comando:

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. En el navegador, ingresa la siguiente URL:

    https://PROJECT_ID.REGION_ID.r.appspot.com

    Reemplaza lo siguiente:

Actualiza WordPress, los complementos y los temas

Es importante mantener actualizados WordPress, los complementos y los temas. Puedes mantener estos elementos actualizados mediante la herramienta wp. Después de una actualización, debes volver a implementar el proyecto de WordPress.

  1. Actualiza WordPress con el comando siguiente:

    vendor/bin/wp core update --path=wordpress
    
  2. Actualiza los complementos con este comando:

    vendor/bin/wp plugin update --all --path=wordpress
    # Just in case it updates any of the dropins, copy the files:
    cp wordpress/wp-content/plugins/batcache/advanced-cache.php \
        wordpress/wp-content/plugins/memcached/object-cache.php \
        wordpress/wp-content
    
  3. Actualiza los temas con este comando:

    vendor/bin/wp theme update --all --path=wordpress
    
  4. Vuelve a implementar el proyecto:

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    

Limpia

Para evitar que se apliquen cargos a tu cuenta de Google Cloud por los recursos usados en este instructivo, borra el proyecto que contiene los recursos o conserva el proyecto y borra los recursos individuales.

Borra el proyecto

La manera más fácil de eliminar la facturación es borrar el proyecto que creaste para el instructivo.

Para borrar el proyecto, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Administrar recursos.

    Ir a Administrar recursos

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

Borra las versiones no predeterminadas de tu app

Si no quieres borrar tu proyecto, puedes borrar las versiones no predeterminadas de tu app para reducir los costos.

Para borrar la versión de una app:

  1. En la consola de Google Cloud, ve a la página Versiones de App Engine.

    Ir a Versiones

  2. Selecciona la casilla de verificación de la versión no predeterminada de la app que deseas borrar.
  3. Para borrar la versión de la app, haz clic en Borrar.

Borra tu instancia de Cloud SQL

Para borrar una instancia de Cloud SQL, haz lo siguiente:

  1. En la consola de Google Cloud, ve a la página Instancias.

    Ir a Instancias

  2. Haz clic en el nombre es la instancia de SQL que deseas borrar.
  3. Para borrar la instancia, haz clic en Borrar y sigue las instrucciones.

¿Qué sigue?