Utilizza phpMyAdmin con Cloud SQL nell'ambiente standard di App Engine


Scopri come installare phpMyAdmin nell'ambiente standard di App Engine. Puoi utilizzare phpMyAdmin per amministrare Cloud SQL sul web.

Questo tutorial è utile se:

  • Eseguire applicazioni su App Engine.
  • Utilizza Cloud SQL come database.
  • Utilizza phpMyAdmin come interfaccia per MySQL oppure preferisci un'interfaccia web per l'amministrazione del database.

Se usi Compute Engine, valuta la possibilità di utilizzare uno degli stack o dei prodotti di sviluppo disponibili tramite clic per il deployment. I deployment di stack che includono MySQL, come LAMP e LEMP, o prodotti come Drupal, offrono un'opzione per installare phpMyAdmin nell'ambito del deployment.

Obiettivi

  • Esegui il deployment di phpMyAdmin nell'ambiente standard di App Engine.

Costi

Questo tutorial utilizza i componenti fatturabili di Cloud Platform, tra cui:

  • App Engine
  • Cloud SQL

Utilizza il Calcolatore prezzi per generare una stima dei costi in base all'utilizzo previsto. I nuovi utenti di Cloud Platform potrebbero essere idonei per una prova gratuita.

Prima di iniziare

  1. Accedi al tuo account Google Cloud. Se non conosci Google Cloud, crea un account per valutare le prestazioni dei nostri prodotti in scenari reali. I nuovi clienti ricevono anche 300 $di crediti gratuiti per l'esecuzione, il test e il deployment dei carichi di lavoro.
  2. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  3. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  4. Installa Google Cloud CLI.
  5. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  6. Nella pagina del selettore di progetti della console Google Cloud, seleziona o crea un progetto Google Cloud.

    Vai al selettore progetti

  7. Assicurati che la fatturazione sia attivata per il tuo progetto Google Cloud.

  8. Installa Google Cloud CLI.
  9. Per initialize gcloud CLI, esegui questo comando:

    gcloud init
  10. Crea un'istanza Cloud SQL di seconda generazione.
  11. (Facoltativo) Esegui il deployment di un'applicazione App Engine che utilizza la tua istanza Cloud SQL o seleziona un'applicazione esistente.

    Ad esempio, crea ed esegui il deployment dell'esempio di guestbook. Anche se puoi eseguire il deployment di phpMyAdmin autonomamente, probabilmente vorrai usarlo con un'applicazione App Engine nel tuo scenario reale.

Scarica il codice sorgente di phpMyAdmin

Eseguirai il deployment di phpMyAdmin come servizio della tua applicazione App Engine, quindi dovrai scaricare il codice sorgente per phpMyAdmin. Segui questi passaggi:

  1. In un terminale Cloud Shell, inserisci questo comando per scaricare il codice sorgente per phpMyAdmin versione 4.9.5:

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

    Per utilizzare una versione diversa di phpMyAdmin, utilizza i link alle versioni disponibili nella pagina dei download di phpMyAdmin.

  2. Crea una nuova directory. Estrai i file in questa directory.

    mkdir phpMyAdmin
    
  3. Estrai i file dall'archivio nella nuova directory.

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

Prepara i file per il deployment

Il deployment di phpMyAdmin richiede la creazione di tre file: app.yaml, che contiene le informazioni di configurazione per App Engine; config.inc.php, che contiene le informazioni di configurazione per phpMyAdmin, e php.ini, che contiene la configurazione specifica dell'applicazione per PHP.

Crea app.yaml

Il file di configurazione di App Engine specifica in che modo i percorsi degli URL corrispondono ai gestori di richieste e ai file statici. Contiene anche informazioni sul codice dell'applicazione, come l'ID applicazione e l'identificatore della versione più recente. Per creare il file:

  1. Nella directory creata, denominata phpMyAdmin, crea un nuovo file denominato app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. Utilizzando il tuo editor preferito, incolla il seguente testo in 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. Se esegui il deployment di phpMyAdmin come prima e unica applicazione in App Engine, modifica il valore per service da phpmyadmin a default.

    Normalmente, eseguiresti il deployment di phpMyAdmin come servizio di un'applicazione esistente e fornire un nome per il servizio. Tuttavia, se non hai ancora eseguito il deployment di un'applicazione, devi utilizzare il nome di servizio "default". Ai fini di questo tutorial, non è un problema se stai provando phpMyAdmin su App Engine.

    Questo tutorial funziona solo per l'ambiente standard di App Engine.

  4. Salva il file.

Crea config.inc.php

Segui questi passaggi per creare il file di configurazione phpMyAdmin.

  1. Crea un nuovo file denominato config.inc.php.

    touch config.inc.php
    
  2. Utilizzando il tuo editor preferito, incolla il seguente testo in 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. Apri Google Cloud Shell ed esegui questo comando per ottenere una stringa casuale per il tuo pesce blowfish:

    php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).PHP_EOL;"
    
  4. Incolla il nuovo secret al posto di {{your_secret}} in config.inc.php.

  5. Vai alla pagina Istanze Cloud SQL nella console Google Cloud.

  6. Fai clic sull'istanza Cloud SQL per visualizzare la relativa pagina dei dettagli.

  7. Sostituisci il valore di {{your_connection_string}} (all'interno della variabile $host) con la proprietà Nome connessione istanza.

  8. Salva il file.

Crea php.ini

Nel codice, phpMyAdmin utilizza funzioni disattivate per impostazione predefinita in App Engine. Segui questi passaggi per aggiungere un file php.ini in modo che App Engine abiliti nuovamente le funzioni:

  1. Crea il file nella directory phpMyAdmin.

    touch php.ini
    
  2. Modifica il file e aggiungi la riga seguente:

    google_app_engine.enable_functions = "php_uname, getmypid"
    
  3. Salva il file.

Esegui il deployment dell'applicazione

Utilizza i comandi seguenti per eseguire il deployment della tua applicazione in App Engine.

  1. Verifica la presenza di aggiornamenti per i componenti di gcloud.

    gcloud components update
    
  2. Esegui il deployment dell'applicazione eseguendo questo comando all'interno della directory phpMyAdmin in cui si trova il file app.yaml:

    gcloud app deploy
    

    Questo comando esegue il deployment dell'app nel servizio phpMyAdmin, come specificato nel tuo file app.yaml. Il deployment su un servizio separato garantisce che phpMyAdmin sia eseguito nello stesso data center dell'applicazione principale, migliorando così le prestazioni. Per scoprire di più sul deployment dell'app dalla riga di comando, vedi Deployment di un'app PHP.

Accedi a phpMyAdmin

Ora puoi accedere a phpMyAdmin.

  1. Nel browser web, inserisci l'URL di phpMyAdmin per aprire la pagina di benvenuto, cambiando l'URL in modo da utilizzare il tuo ID app.

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. In Nome utente, inserisci root.

  3. Inserisci la password root che hai fornito al momento della configurazione dell'account root.

  4. Fai clic su Go (Vai).

Durante lo sviluppo dell'app App Engine, ricordati di proteggere tramite password tutti gli account utente che crei per accedere ai database in Cloud SQL.

Risolvere i problemi

App Engine utilizza il proxy di autenticazione Cloud SQL per connettersi alle istanze Cloud SQL di seconda generazione. Per saperne di più sul funzionamento del proxy di autenticazione Cloud SQL, consulta Informazioni sul proxy di autenticazione Cloud SQL.

I log di App Engine nella console Google Cloud possono fornire informazioni sugli errori di App Engine.

Esegui la pulizia

Al termine del tutorial, puoi eseguire la pulizia delle risorse che hai creato in modo che smettano di utilizzare la quota e smettano di essere addebitati. Le sezioni seguenti descrivono come eliminare o disattivare queste risorse.

Elimina il progetto

Il modo più semplice per eliminare la fatturazione è eliminare il progetto che hai creato per il tutorial.

Per eliminare il progetto:

  1. Nella console Google Cloud, vai alla pagina Gestisci risorse.

    Vai a Gestisci risorse

  2. Nell'elenco dei progetti, seleziona il progetto che vuoi eliminare, quindi fai clic su Elimina.
  3. Nella finestra di dialogo, digita l'ID del progetto e fai clic su Chiudi per eliminare il progetto.

Elimina le istanze

Per eliminare un'istanza Cloud SQL:

  1. Nella console Google Cloud, vai alla pagina Istanze.

    Vai a Istanze

  2. Fai clic sul nome l'istanza SQL che vuoi eliminare.
  3. Per eliminare l'istanza, fai clic su Elimina, quindi segui le istruzioni.

Passaggi successivi