Usa phpMyAdmin con Cloud SQL en el entorno estándar de App Engine


Aprende cómo instalar phpMyAdmin en un entorno estándar de App Engine. Puedes usar phpMyAdmin para administrar Cloud SQL a través de la Web.

Este instructivo te resultará útil si:

  • Ejecutas aplicaciones en App Engine.
  • Usas Cloud SQL como base de datos.
  • Usar phpMyAdmin como interfaz de MySQL o usar una interfaz web para administrar la base de datos.

Si usas Compute Engine, considera usar una de las pilas de desarrollo o los productos disponibles a través de la implementación en un clic. Las implementaciones de pilas que incluyen MySQL, como LAMP y LEMP, o productos como Drupal, ofrecen la opción de instalar phpMyAdmin como parte de la implementación.

Objetivos

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

Costos

Este instructivo usa componentes facturables de Cloud Platform, incluidos los siguientes:

  • App Engine
  • Cloud SQL

Usa la calculadora de precios para generar una estimación de los costos según el uso previsto. Los usuarios nuevos de Cloud Platform podrían cumplir con los requisitos para obtener una prueba gratuita.

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. Instala Google Cloud CLI.
  5. Para inicializar la CLI de gcloud, ejecuta el siguiente comando:

    gcloud init
  6. 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

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

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

    gcloud init
  10. Crea una instancia de Cloud SQL de segunda generación.
  11. (Opcional) Implementa una aplicación de App Engine que use tu instancia de Cloud SQL o selecciona una aplicación existente.

    Por ejemplo, crea y, luego, implementa la muestra del libro de visitas. Aunque puedes implementar phpMyAdmin de manera individual, es probable que te convenga usarlo con una aplicación de App Engine en una situación real.

Descarga el código fuente de phpMyAdmin

Implementarás phpMyAdmin como servicio de tu aplicación de App Engine, por eso debes descargar el código fuente de phpMyAdmin. Lleva a cabo los pasos siguientes:

  1. En una terminal de Cloud Shell, ingresa el siguiente comando para descargar el código fuente de la versión 4.9.5 de phpMyAdmin:

    wget https://files.phpmyadmin.net/phpMyAdmin/4.9.5/phpMyAdmin-4.9.5-all-languages.tar.gz
    

    Para usar otra versión de phpMyAdmin, usa los vínculos a las versiones disponibles en la página de descarga de phpMyAdmin.

  2. Crea un directorio nuevo. Usarás este directorio para extraer los archivos.

    mkdir phpMyAdmin
    
  3. Extrae los archivos en el directorio nuevo.

    tar -xzvf phpMyAdmin-4.9.5-all-languages.tar.gz -C phpMyAdmin --strip-components=1
    

Prepara los archivos para la implementación

La implementación de phpMyAdmin requiere la creación de 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 de phpMyAdmin; y php.ini, que contiene la configuración específica de la aplicación para PHP.

Crea app.yaml

El archivo de configuración de App Engine especifica la manera en que las rutas de URL corresponden a controladores de solicitudes y archivos estáticos. También contiene información sobre el código de la aplicación, como el ID de la aplicación y el identificador de la versión más reciente. Para crear el archivo, sigue estos pasos:

  1. En el directorio que creaste, llamado phpMyAdmin, crea un nuevo archivo con el nombre 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 implementas phpMyAdmin como la primera y única aplicación en App Engine, cambia el valor de service de phpmyadmin a default.

    Por lo general, phpMyAdmin se implementa como un servicio de una aplicación existente y se le proporciona un nombre al servicio. Sin embargo, si aún no implementaste una aplicación, entonces es obligatorio que uses el nombre de servicio “default”. Eso está bien para los fines de este instructivo si estás probando phpMyAdmin en App Engine.

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

  4. Guarda el archivo.

Crea config.inc.php

Sigue estos pasos para crear el archivo de configuración de phpMyAdmin.

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

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

    <?php
    /**
     * 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.
     */
    /*
     * 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;
    
  3. A fin de obtener una string aleatoria para el blowfish, abre Google Cloud Shell y ejecuta lo siguiente:

    php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).PHP_EOL;"
    
  4. Pega el secreto nuevo y reemplaza {{your_secret}} en config.inc.php.

  5. Ve a la página de instancias de Cloud SQL en la consola de Google Cloud.

  6. Haz clic en la instancia de Cloud SQL para ver la página detalles de la instancia.

  7. Reemplaza el valor de {{your_connection_string}} (dentro de la variable $host) por la propiedad Nombre de la conexión con la instancia.

  8. Guarda el archivo.

Crea php.ini

En su código, phpMyAdmin usa funciones que están inhabilitadas de manera predeterminada en App Engine. Sigue estos pasos para agregar un archivo php.ini, de modo que App Engine vuelva a habilitar las funciones:

  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.

Implementa la aplicación

Usa los siguientes comandos para implementar tu aplicación en App Engine.

  1. Verifica si hay actualizaciones para los componentes de gcloud.

    gcloud components update
    
  2. Implementa la aplicación mediante el siguiente comando desde el directorio phpMyAdmin en el que se encuentra tu archivo app.yaml:

    gcloud app deploy
    

    Con este comando, se implementa la app en el servicio phpMyAdmin, como se especifica en tu archivo app.yaml. La implementación 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 la implementación de la app desde la línea de comandos, consulta Implementa una aplicación PHP.

Cómo acceder a phpMyAdmin

Ahora puedes acceder a phpMyAdmin.

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

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. Como Nombre de usuario, ingresa raíz.

  3. Ingresa la contraseña de raíz que proporcionaste cuando configuraste la cuenta raíz.

  4. Haz clic en Ir.

Mientras desarrollas la aplicación de App Engine, recuerda proteger con contraseña todas las cuentas de usuario que crees para acceder a las bases de datos en Cloud SQL.

Solucionar problemas

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

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

Limpia

Una vez que completes el instructivo, puedes limpiar los recursos que creaste para que dejen de usar la cuota y generar cargos. En las siguientes secciones, se describe cómo borrar o desactivar estos recursos.

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, sigue estos pasos:

  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.

Borrar instancias

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.

Próximos pasos