phpMyAdmin mit Cloud SQL in der App Engine-Standardumgebung verwenden


Hier erhalten Sie Informationen dazu, wie Sie phpMyAdmin in der App Engine-Standardumgebung installieren können. Sie können phpMyAdmin verwenden, um Cloud SQL über das Web zu verwalten.

Diese Anleitung ist hilfreich, wenn Sie:

  • Anwendungen in App Engine ausführen
  • Cloud SQL als Datenbank verwenden
  • phpMyAdmin als Oberfläche für MySQL oder eine Weboberfläche für die Datenbankverwaltung verwenden

Wenn Sie Google Compute Engine verwenden, ist es sinnvoll, einen der Entwicklungsstapel oder eines der Produkte zu verwenden, die über "Click to Deploy" verfügbar sind. Bereitstellungen von Pakten mit MySQL wie LAMP und LEMP sowie Produkte wie Drupal bieten eine Option zur Installation von phpMyAdmin als Teil der Bereitstellung.

Ziele

  • phpMyAdmin in der App Engine-Standardumgebung bereitstellen

Kosten

In dieser Anleitung werden kostenpflichtige Komponenten der Cloud Platform verwendet, darunter:

  • App Engine
  • Cloud SQL

Der Preisrechner kann eine Kostenschätzung anhand Ihrer voraussichtlichen Nutzung generieren. Neuen Cloud Platform-Nutzern steht möglicherweise eine kostenlose Testversion zur Verfügung.

Hinweis

  1. Melden Sie sich bei Ihrem Google Cloud-Konto an. Wenn Sie mit Google Cloud noch nicht vertraut sind, erstellen Sie ein Konto, um die Leistungsfähigkeit unserer Produkte in der Praxis sehen und bewerten zu können. Neukunden erhalten außerdem ein Guthaben von 300 $, um Arbeitslasten auszuführen, zu testen und bereitzustellen.
  2. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  3. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  4. Installieren Sie die Google Cloud CLI.
  5. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  6. Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines.

    Zur Projektauswahl

  7. Die Abrechnung für das Google Cloud-Projekt muss aktiviert sein.

  8. Installieren Sie die Google Cloud CLI.
  9. Führen Sie folgenden Befehl aus, um die gcloud CLI zu initialisieren:

    gcloud init
  10. Erstellen Sie eine Cloud SQL-Instanz der zweiten Generation.
  11. (Optional) Stellen Sie eine App Engine-Anwendung bereit, die die Cloud SQL-Instanz verwendet, oder wählen Sie eine vorhandene Anwendung aus.

    Sie können beispielsweise das Test-Gästebuch erstellen und bereitstellen. Zwar ist die eigenständige Bereitstellung von phpMyAdmin ebenfalls möglich, für ein realistisches Szenario wird es jedoch eher mit einer App Engine-Anwendung eingesetzt werden.

phpMyAdmin-Quellcode herunterladen

Damit Sie phpMyAdmin als Dienst Ihrer App Engine-Anwendung bereitstellen können, müssen Sie den Quellcode für phpMyAdmin herunterladen. Gehen Sie so vor:

  1. Geben Sie den folgenden Befehl in ein Cloud Shell-Terminal ein, um den Quellcode für phpMyAdmin Version 4.9.5 herunterzuladen:

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

    Wenn Sie eine andere Version von phpMyAdmin verwenden möchten, finden Sie die Links zu den verfügbaren Versionen auf der phpMyAdmin-Downloadseite.

  2. Erstellen Sie ein neues Verzeichnis. Die Dateien werden in diesem Verzeichnis entpackt.

    mkdir phpMyAdmin
    
  3. Entpacken Sie die Dateien aus dem Archiv in das neue Verzeichnis.

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

Dateien für die Bereitstellung vorbereiten

Zum Bereitstellen von phpMyAdmin müssen Sie drei Dateien erstellen: app.yaml mit den Konfigurationsinformationen für App Engine, config.inc.php mit den Konfigurationsinformationen für phpMyAdmin und php.ini mit der anwendungsspezifischen Konfiguration für PHP.

app.yaml erstellen

Die App Engine-Konfigurationsdatei gibt an, wie URL-Pfade Anfrage-Handlern und statischen Dateien entsprechen. Darüber hinaus sind Informationen zum Anwendungscode, wie etwa die Anwendungs-ID und die aktuellste Versions-ID, enthalten. So erstellen Sie die Datei:

  1. Erstellen Sie in dem erstellten phpMyAdmin-Verzeichnis eine neue Datei mit dem Namen app.yaml.

    cd phpMyAdmin
    touch app.yaml
    
  2. Fügen Sie den folgenden Text mit Ihrem bevorzugten Editor in app.yaml ein.

    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. Wenn Sie phpMyAdmin als erste und einzige Anwendung in App Engine bereitstellen, ändern Sie den Wert für service von phpmyadmin in default.

    Normalerweise würde phpMyAdmin als Dienst einer vorhandenen Anwendung bereitgestellt und ein Name für den Dienst angeben werden. Wenn Sie jedoch noch keine Anwendung bereitgestellt haben, müssen Sie den Dienstnamen "default" verwenden. Dies ist völlig in Ordnung, wenn Sie den Einsatz von phpMyAdmin auf App Engine im Rahmen dieser Anleitung testen möchten.

    Diese Anleitung funktioniert nur mit der App Engine-Standardumgebung.

  4. Speichern Sie die Datei.

config.inc.php erstellen

So erstellen Sie die phpMyAdmin-Konfigurationsdatei:

  1. Erstellen Sie eine neue Datei mit dem Namen config.inc.php.

    touch config.inc.php
    
  2. Fügen Sie den folgenden Text mit Ihrem bevorzugten Editor in config.inc.php ein.

    <?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. Öffnen Sie Google Cloud Shell und führen Sie den folgenden Befehl aus, um einen zufälligen String für Ihren Blowfish zu erhalten:

    php -r "echo password_hash(uniqid(), PASSWORD_BCRYPT).PHP_EOL;"
    
  4. Fügen Sie das neue Secret anstelle von {{your_secret}} in config.inc.php ein.

  5. Rufen Sie in der Google Cloud Console die Seite Cloud SQL-Instanzen auf.

  6. Klicken Sie auf die Cloud SQL-Instanz, um die Instanzdetailseite anzuzeigen.

  7. Ersetzen Sie den Wert von {{your_connection_string}} in der Variablen $host durch das Attribut Name der Instanzverbindung.

  8. Speichern Sie die Datei.

php.ini erstellen

phpMyAdmin verwendet Funktionen in seinem Code, die standardmäßig in App Engine deaktiviert sind. Gehen Sie so vor, um eine php.ini-Datei hinzuzufügen, damit App Engine die Funktionen wieder aktiviert:

  1. Erstellen Sie die Datei im Verzeichnis phpMyAdmin.

    touch php.ini
    
  2. Bearbeiten Sie die Datei und fügen Sie die folgende Zeile hinzu:

    google_app_engine.enable_functions = "php_uname, getmypid"
    
  3. Speichern Sie die Datei.

Anwendung bereitstellen

Verwenden Sie die folgenden Befehle, um Ihre Anwendung auf App Engine bereitzustellen.

  1. Suchen Sie nach Aktualisierungen für Ihre gcloud-Komponenten.

    gcloud components update
    
  2. Stellen Sie die Anwendung bereit. Führen Sie dazu den folgenden Befehl aus dem Verzeichnis phpMyAdmin aus, in dem sich Ihre Datei app.yaml befindet:

    gcloud app deploy
    

    Mit diesem Befehl wird die Anwendung wie in der Datei app.yaml angegeben für den phpMyAdmin-Dienst bereitgestellt. Durch die Bereitstellung an einen separaten Dienst lässt sich besser prüfen, dass phpMyAdmin im gleichen Rechenzentrum wie Ihre Hauptanwendung ausgeführt wird und dadurch eine höhere Leistung bringt. Weitere Informationen zum Bereitstellen einer Anwendung über die Befehlszeile finden Sie unter PHP-Anwendung bereitstellen.

phpMyAdmin-Anmeldung

Sie können sich jetzt bei phpMyAdmin anmelden.

  1. Geben Sie in Ihrem Webbrowser die URL für phpMyAdmin ein, um auf die Willkommensseite zu gelangen. Ändern Sie dabei die URL so, dass Ihre App-ID verwendet wird.

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. Geben Sie root als Nutzername ein.

  3. Geben Sie das Root-Passwort ein, das Sie bei der Konfiguration des Root-Kontos vergeben haben.

  4. Klicken Sie auf Los.

Denken Sie bei der Entwicklung Ihrer App Engine-Anwendung daran, alle Nutzerkonten mit einem Passwort zu schützen, die Sie mit Zugriff auf Datenbanken in Cloud SQL erstellen.

Fehlerbehebung

App Engine verwendet den Cloud SQL Auth-Proxy, um eine Verbindung zu Cloud SQL-Instanzen der zweiten Generation herzustellen. Weitere Informationen über die Funktionsweise des Cloud SQL Auth-Proxys finden Sie unter Informationen zum Cloud SQL Auth-Proxy.

Die App Engine-Logs in der Google Cloud Console können Informationen über App Engine-Fehler enthalten.

Bereinigen

Nachdem Sie die Anleitung abgeschlossen haben, können Sie die erstellten Ressourcen bereinigen, damit sie keine Kontingente mehr nutzen und keine Gebühren mehr anfallen. In den folgenden Abschnitten erfahren Sie, wie Sie diese Ressourcen löschen oder deaktivieren.

Projekt löschen

Am einfachsten vermeiden Sie weitere Kosten durch Löschen des für die Anleitung erstellten Projekts.

So löschen Sie das Projekt:

  1. Wechseln Sie in der Google Cloud Console zur Seite Ressourcen verwalten.

    Zur Seite „Ressourcen verwalten“

  2. Wählen Sie in der Projektliste das Projekt aus, das Sie löschen möchten, und klicken Sie dann auf Löschen.
  3. Geben Sie im Dialogfeld die Projekt-ID ein und klicken Sie auf Shut down (Beenden), um das Projekt zu löschen.

Instanzen löschen

So löschen Sie eine Cloud SQL-Instanz:

  1. Rufen Sie in der Google Cloud Console die Seite Instanzen auf.

    Zur Seite „VM-Instanzen“

  2. Klicken Sie auf den Namen Die SQL-Instanz, die Sie löschen möchten.
  3. Klicken Sie zum Löschen der Instanz auf Löschen und folgen Sie der Anleitung.

Nächste Schritte