Utilizar phpMyAdmin con Cloud SQL en App Engine

Aprende a instalar phpMyAdmin en el entorno estándar de App Engine. Puedes usar phpMyAdmin para administrar Cloud SQL en la Web.

Este tutorial te resultará útil si:

  • Ejecutas aplicaciones en App Engine.
  • Usas Cloud SQL como tu base de datos.
  • Usas phpMyAdmin como una interfaz para MySQL o prefieres una interfaz web para la administración de la base de datos.

Si usas Google Compute Engine, sopesa la idea de usar una de las pilas de desarrollo o productos disponibles a través de la función de clic para desplegar. Los despliegues de pilas que incluyen MySQL, como LAMP y LEMP, o productos como Drupal, ofrecen una opción para instalar phpMyAdmin como parte del despliegue.

Objetivos

  • Desplegar phpMyAdmin en el entorno estándar de App Engine.

Costes

Este tutorial usa componentes facturables de Cloud Platform, entre los que se incluyen los siguientes:

  • App Engine
  • Cloud SQL

Usa la calculadora de precios para generar una estimación de costes basada en el uso proyectado. Los usuarios nuevos de Cloud Platform pueden optar a realizar una prueba gratuita.

Antes de empezar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. Select or create a GCP project.

    Go to the Manage resources page

  3. Asegúrate de tener habilitada la facturación para tu proyecto.

    Aprende a habilitar la facturación

  4. Install and initialize the Cloud SDK.
  5. Crea una instancia de Cloud SQL de segunda generación.
  6. (Opcional) Despliega una aplicación de App Engine que use tu instancia de Cloud SQL o selecciona una aplicación existente.

    Por ejemplo, crea y despliega la muestra del libro de visitas. Aunque puedes desplegar phpMyAdmin solo, es probable que desees utilizarlo con una aplicación de App Engine en tu escenario real.

Descargar el código fuente de phpMyAdmin

Desplegarás phpMyAdmin como un servicio de tu aplicación de App Engine, por lo que debes descargar el código fuente de phpMyAdmin. Sigue estos pasos:

  1. En una ventana de terminal, introduce el siguiente comando para descargar el código fuente de phpMyAdmin versión 4.6.3:

    wget https://files.phpmyadmin.net/phpMyAdmin/4.6.3/phpMyAdmin-4.6.3-all-languages.tar.bz2
    

    Para usar una versión diferente de phpMyAdmin, usa los enlaces a las versiones disponibles en la página de descargas de phpMyAdmin.

  2. Crea un nuevo directorio. Aquí deberás extraer los archivos.

    mkdir phpMyAdmin
    
  3. Extrae los contenidos del archivo en el nuevo directorio.

    tar -xvf phpMyAdmin-4.6.3-all-languages.tar.bz2 -C phpMyAdmin --strip-components=1
    

Preparar los archivos para el despliegue

Para el despliegue de phpMyAdmin, se requiere crear tres archivos: app.yaml, que contiene la información de configuración de App Engine; config.inc.php, que contiene la información de configuración para phpMyAdmin; y php.ini, que contiene la configuración específica de la aplicación para PHP.

Crear app.yaml

El archivo de configuración de App Engine especifica cómo se corresponden las rutas URL con los controladores de peticiones y los archivos estáticos. Asimismo, contiene información acerca del código de la aplicación como, por ejemplo, el ID de aplicación y el identificador de la última versión. Para crear el archivo, sigue estos pasos:

  1. En el directorio que creaste, phpMyAdmin, crea un nuevo archivo llamado app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. Con tu editor favorito, pega el siguiente texto en app.yaml.

    service: phpmyadmin
    runtime: php55
    api_version: 1
    
    handlers:
    
    - url: /(.+\.(ico|jpg|png|gif))$
      static_files: \1
      upload: (.+\.(ico|jpg|png|gif))$
      application_readable: true
    
    - url: /(.+\.(htm|html|css|js))$
      static_files: \1
      upload: (.+\.(htm|html|css|js))$
      application_readable: true
    
    - url: /(.+\.php)$
      script: \1
      login: admin
    
    - url: /.*
      script: index.php
      login: admin
    

  3. Si estás desplegando phpMyAdmin como la primera y única aplicación en App Engine, cambia el valor de service de phpmyadmin a default.

    De forma habitual, desplegarías phpMyAdmin como un servicio de una aplicación existente y proporcionarías un nombre para el servicio. Sin embargo, si aún no has desplegado una aplicación, debes usar el nombre de servicio "predeterminado". Esto sirve para los propósitos de este tutorial si solo estás probando phpMyAdmin en App Engine.

    Este tutorial funciona solo para el entorno estándar de App Engine.

  4. Guarda el archivo.

Crear config.inc.php

Para crear el archivo de configuración phpMyAdmin, sigue estos pasos.

  1. Crea un archivo llamado config.inc.php.

    touch config.inc.php
    
  2. Con tu editor favorito, pega el siguiente texto en config.inc.php.

    <!-- [START all] -->
    <?php
    // [START_EXCLUDE silent]
    /**
     * Copyright 2016 Google Inc.
     *
     * Licensed under the Apache License, Version 2.0 (the "License");
     * you may not use this file except in compliance with the License.
     * You may obtain a copy of the License at
     *
     *     http://www.apache.org/licenses/LICENSE-2.0
     *
     * Unless required by applicable law or agreed to in writing, software
     * distributed under the License is distributed on an "AS IS" BASIS,
     * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     * See the License for the specific language governing permissions and
     * limitations under the License.
     */
    // [END_EXCLUDE]
    /*
     * This is needed for cookie based authentication to encrypt password in
     * cookie
     * http://www.question-defense.com/tools/phpmyadmin-blowfish-secret-generator
     */
    $cfg['blowfish_secret'] = '{{your_secret}}'; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */
    
    /*
     * Servers configuration
     */
    $i = 0;
    
    // Change this to use the project and instance that you've created.
    $host = '/cloudsql/{{your_connection_string}}';
    $type = 'socket';
    
    /*
    * First server
    */
    $i++;
    /* Authentication type */
    $cfg['Servers'][$i]['auth_type'] = 'cookie';
    /* Server parameters */
    $cfg['Servers'][$i]['socket'] = $host;
    $cfg['Servers'][$i]['connect_type'] = $type;
    $cfg['Servers'][$i]['compress'] = false;
    /* Select mysql if your server does not have mysqli */
    $cfg['Servers'][$i]['extension'] = 'mysqli';
    $cfg['Servers'][$i]['AllowNoPassword'] = true;
    /*
     * End of servers configuration
     */
    
    /*
     * Directories for saving/loading files from server
     */
    $cfg['UploadDir'] = '';
    $cfg['SaveDir'] = '';
    
    /*
    * Other settings
    */
    $cfg['PmaNoRelation_DisableWarning'] = true;
    $cfg['ExecTimeLimit'] = 60;
    $cfg['CheckConfigurationPermissions'] = false;
    // [END all]
    

  3. En tu navegador web, abre el generador secreto Blowfish.

  4. Copia el secreto único Blowfish que generó la página.
    Ten cuidado de copiar el secreto generado, no el secreto de ejemplo.
  5. Pega el nuevo secreto en lugar de {{your-secret}} en config.inc.php.
  6. Ve a la página de instancias de Cloud SQL en la consola de GCP.
  7. Haz clic en la instancia de Cloud SQL para abrir su página de detalles de instancia.
  8. Sustituye el valor de {{your_connection_string}} (dentro de la variable $host) con la propiedad Nombre de conexión de instancia.
  9. Guarda el archivo.

Crear php.ini

En su código, phpMyAdmin usa funciones que están inhabilitadas de forma predeterminada en App Engine. Sigue estos pasos para agregar un archivo php.ini y que App Engine habilite las funciones de nuevo:

  1. En el directorio phpMyAdmin, crea el archivo.

    touch php.ini
    
  2. Edita el archivo y agrega la siguiente línea:

    google_app_engine.enable_functions = "php_uname, getmypid"
    

  3. Guarda el archivo.

Desplegar la aplicación

Usa los siguientes comandos para desplegar la aplicación en App Engine.

  1. Busca actualizaciones para tus componentes de gcloud.

    gcloud components update
    
  2. Despliega la aplicación ejecutando el siguiente comando desde el directorio phpMyAdmin donde se encuentra tu archivo app.yaml:

    gcloud app deploy
    

    Este comando despliega la aplicación en el servicio phpMyAdmin, tal como se especificó en tu archivo app.yaml. El despliegue en un servicio independiente ayuda a garantizar que phpMyAdmin se ejecute en el mismo centro de datos que tu aplicación principal, lo que mejora el rendimiento. Para obtener más información sobre el despliegue de tu aplicación desde la línea de comandos, consulta el apartado sobre implementación de una aplicación PHP.

Iniciar sesión en phpMyAdmin

Ahora puedes iniciar sesión en phpMyAdmin. El archivo config.inc.php que desplegaste permitió el inicio de sesión sin contraseña. Por ahora, así es como iniciarás sesión hasta que configures las contraseñas en la siguiente sección.

  1. En tu navegador web, introduce la URL de phpMyAdmin para abrir la página de bienvenida, cambiando la URL para usar el ID de aplicación.

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. Para el nombre de usuario, introduce raíz.

  3. Introduce la contraseña raíz que proporcionaste al configurar la cuenta raíz.

  4. Haz clic en Ir.

A medida que desarrolles tu aplicación de App Engine, recuerda proteger con contraseña cualquier cuenta de usuario que crees para acceder a las bases de datos en Cloud SQL.

Solución de problemas

App Engine usa el proxy de Cloud SQL para conectarse a instancias de Cloud SQL de segunda generación. Para obtener más información sobre cómo funciona el proxy, consulta el apartado acerca del proxy de Cloud SQL.

Los registros de App Engine en la consola de Google Cloud Platform pueden proporcionar información sobre los errores de App Engine.

Limpieza

Una vez finalizado el tutorial de la plantilla de tipo de documento, puedes borrar los recursos que creaste en Google Cloud Platform para que no se te carguen en el futuro. En las siguientes secciones, se explica cómo eliminar o desactivar estos recursos.

Eliminar el proyecto

La forma más fácil de eliminar la facturación es eliminar el proyecto que creaste para el tutorial.

Para eliminar el proyecto:

  1. In the GCP Console, go to the Projects page.

    Go to the Projects page

  2. In the project list, select the project you want to delete and click Delete project. After selecting the checkbox next to the project name, click
      Delete project
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

Eliminar instancias

Para eliminar una instancia de Cloud SQL:

Siguientes pasos

¿Te sirvió esta página? Envíanos tu opinión:

Enviar comentarios sobre…

Cloud SQL para MySQL