Utiliser phpMyAdmin avec Cloud SQL dans l'environnement standard App Engine


Découvrez comment installer phpMyAdmin dans l'environnement standard App Engine. Cette application vous permet d'administrer Cloud SQL sur le Web.

Ce tutoriel peut vous être utile si vous répondez aux critères suivants :

  • Vous exécutez des applications sur App Engine.
  • Vous utilisez Cloud SQL comme base de données.
  • Vous utilisez phpMyAdmin en tant qu'interface pour MySQL ou préférez recourir à une interface Web pour administrer votre base de données.

Si vous travaillez avec Compute Engine, envisagez d'utiliser une pile de développement ou un produit exploitant la fonctionnalité de déploiement par clic. Dans le cadre des déploiements de piles incluant MySQL, telles que LAMP et LEMP, ou de produits comme Drupal, il est possible d'installer phpMyAdmin.

Objectifs

  • Déployez phpMyAdmin dans l'environnement standard App Engine.

Coûts

Ce tutoriel utilise des composants facturables de Cloud Platform, notamment :

  • App Engine
  • Cloud SQL

Utilisez le Simulateur de coût pour générer une estimation des coûts en fonction de votre utilisation prévue. Les nouveaux utilisateurs de Cloud Platform peuvent bénéficier d'un essai gratuit.

Avant de commencer

  1. Connectez-vous à votre compte Google Cloud. Si vous débutez sur Google Cloud, créez un compte pour évaluer les performances de nos produits en conditions réelles. Les nouveaux clients bénéficient également de 300 $ de crédits gratuits pour exécuter, tester et déployer des charges de travail.
  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  3. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  4. Installez Google Cloud CLI.
  5. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  6. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder au sélecteur de projet

  7. Vérifiez que la facturation est activée pour votre projet Google Cloud.

  8. Installez Google Cloud CLI.
  9. Pour initialiser gcloudCLI, exécutez la commande suivante :

    gcloud init
  10. Créez une instance Cloud SQL de deuxième génération.
  11. (Facultatif) Déployez une application App Engine qui utilise votre instance Cloud SQL ou sélectionnez une application existante.

    Par exemple, créez et déployez l'application de livre d'or. Bien que vous puissiez déployer phpMyAdmin seul, vous voudrez probablement l'utiliser avec une application App Engine dans votre scénario réel.

Télécharger le code source de phpMyAdmin

Vous allez déployer phpMyAdmin en tant que service de votre application App Engine. Vous devez donc télécharger le code source de phpMyAdmin. Procédez comme suit :

  1. Dans un terminal Cloud Shell, saisissez la commande suivante pour télécharger le code source de phpMyAdmin version 4.9.5 :

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

    Pour utiliser une version différente, cliquez sur les liens vers les versions disponibles sur la page des téléchargements de phpMyAdmin.

  2. Créez un répertoire. Il vous servira à extraire les fichiers.

    mkdir phpMyAdmin
    
  3. Extrayez les fichiers de l'archive dans le nouveau répertoire.

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

Préparer les fichiers pour le déploiement

Le déploiement de phpMyAdmin nécessite la création de trois fichiers : app.yaml (qui contient les informations de configuration pour App Engine), config.inc.php (qui contient les informations de configuration pour phpMyAdmin) et php.ini (qui contient la configuration spécifique à l'application pour PHP).

Créer app.yaml

Le fichier de configuration App Engine fait correspondre les chemins d'URL avec les gestionnaires de requêtes et les fichiers statiques. Il contient également des informations sur le code de l'application, telles que l'ID d'application et l'identifiant de la version la plus récente. Suivez les étapes ci-dessous pour créer le fichier :

  1. Dans le nouveau répertoire phpMyAdmin, créez un fichier appelé app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. Collez le texte suivant dans app.yaml à l'aide de l'éditeur de votre choix.

    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 vous déployez phpMyAdmin en tant que première et unique application dans App Engine, définissez la valeur de service sur default au lieu de phpmyadmin.

    Normalement, vous déploieriez phpMyAdmin en tant que service d'une application existante et donneriez un nom à ce service. Toutefois, si vous n'avez pas encore déployé d'application, vous devez utiliser le nom de service "default". Cela convient pour les besoins de ce tutoriel si vous essayez phpMyAdmin sur App Engine.

    Ce tutoriel ne fonctionne que dans l'environnement standard App Engine.

  4. Enregistrez le fichier.

Créer config.inc.php

Suivez les étapes ci-dessous pour créer le fichier de configuration de phpMyAdmin.

  1. Créez un fichier nommé config.inc.php :

    touch config.inc.php
    
  2. Collez le texte suivant dans config.inc.php à l'aide de l'éditeur de votre choix.

    <?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. Ouvrez Google Cloud Shell, puis exécutez la commande suivante pour obtenir une chaîne aléatoire pour votre Blowfish :

    php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).PHP_EOL;"
    
  4. Collez le nouveau code secret à la place de {{your_secret}} dans config.inc.php.

  5. Accédez à la page Instances Cloud SQL dans la console Google Cloud.

  6. Cliquez sur l'instance Cloud SQL pour afficher la page "Détails de l'instance".

  7. Remplacez la valeur de {{your_connection_string}} (dans la variable $host) par la propriété Nom de connexion de l'instance.

  8. Enregistrez le fichier.

Créer php.ini

Dans son code, phpMyAdmin utilise des fonctions qui sont désactivées par défaut dans App Engine. Suivez les étapes ci-dessous pour ajouter un fichier php.ini qui permettra à App Engine de réactiver ces fonctions :

  1. Dans le répertoire phpMyAdmin, créez le fichier.

    touch php.ini
    
  2. Modifiez le fichier et ajoutez la ligne suivante :

    google_app_engine.enable_functions = "php_uname, getmypid"
    
  3. Enregistrez le fichier.

Déployer l'application

Pour déployer votre application sur App Engine, exécutez les commandes ci-dessous.

  1. Recherchez les mises à jour associées à vos composants gcloud.

    gcloud components update
    
  2. Déployez l'application en exécutant la commande suivante depuis le répertoire phpMyAdmin qui contient votre fichier app.yaml :

    gcloud app deploy
    

    Cette commande déploie l'application sur le service phpMyAdmin, comme spécifié dans votre fichier app.yaml. Le déploiement de phpMyAdmin sur un service distinct permet de garantir que l'outil s'exécutera dans le même centre de données que votre application principale, ce qui améliore les performances. Pour en savoir plus sur le déploiement de votre application à partir de la ligne de commande, consultez la section Déployer une application PHP.

Se connecter à phpMyAdmin

Vous pouvez désormais vous connecter à phpMyAdmin.

  1. Dans votre navigateur Web, saisissez l'URL de phpMyAdmin en spécifiant votre ID d'application pour ouvrir la page d'accueil.

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. Dans le champ Nom d'utilisateur, saisissez root.

  3. Saisissez le mot de passe racine que vous avez fourni lors de la configuration du compte racine.

  4. Cliquez sur OK.

Lorsque vous développez votre application App Engine, n'oubliez pas de définir un mot de passe pour vos comptes utilisateur pouvant accéder aux bases de données de Cloud SQL.

Résoudre les problèmes

App Engine se connecte aux instances Cloud SQL de deuxième génération à l'aide du proxy Cloud SQL. Pour en savoir plus sur le fonctionnement du proxy d'authentification Cloud SQL, consultez la page À propos du proxy d'authentification Cloud SQL.

Les journaux App Engine de Google Cloud Console peuvent vous fournir des informations sur les erreurs App Engine.

Effectuer un nettoyage

Une fois le tutoriel terminé, vous pouvez procéder au nettoyage des ressources que vous avez créées afin qu'elles ne soient plus comptabilisées dans votre quota et qu'elles ne vous soient plus facturées. Dans les sections suivantes, nous allons voir comment supprimer ou désactiver ces ressources.

Supprimer le projet

Le moyen le plus simple d'empêcher la facturation est de supprimer le projet que vous avez créé pour ce tutoriel.

Pour supprimer le projet :

  1. Dans la console Google Cloud, accédez à la page Gérer les ressources.

    Accéder à la page Gérer les ressources

  2. Dans la liste des projets, sélectionnez le projet que vous souhaitez supprimer, puis cliquez sur Supprimer.
  3. Dans la boîte de dialogue, saisissez l'ID du projet, puis cliquez sur Arrêter pour supprimer le projet.

Supprimer des instances

Pour supprimer une instance Cloud SQL :

  1. Dans la console Google Cloud, accédez à la page Instances.

    Accéder à la page "Instances"

  2. Cliquez sur le nom de instance SQL que vous souhaitez supprimer.
  3. Pour supprimer l'instance, cliquez sur Supprimer , puis suivez les instructions.

Étape suivante