App Engine スタンダード環境の Cloud SQL で phpMyAdmin を使用する

App Engine スタンダード環境に phpMyAdmin をインストールする方法を確認します。ウェブで Cloud SQL を管理するには、phpMyAdmin を使用します。

このチュートリアルは次のような方の参考になります。

  • App Engine でアプリケーションを実行する。
  • Cloud SQL をデータベースとして使用する。
  • phpMyAdmin を MySQL に対するインターフェースとして使用する、またはウェブ インターフェースをデータベース管理に使いたい。

Google Compute Engine を使用している場合は、開発スタックのいずれか、またはクリック デプロイで入手できる製品を使用することを検討してください。LAMPLEMP などの MySQL を含むスタックや、Drupal などのプロダクトをデプロイする際は、その過程で phpMyAdmin をインストールすることもできます。

目標

  • App Engine スタンダード環境に Symfony をデプロイする。

料金

このチュートリアルでは、以下を含む、Cloud Platform の有料コンポーネントを使用します。

  • App Engine
  • Cloud SQL

料金計算ツールを使うと、予想使用量に基づいて費用の見積もりを出すことができます。 Cloud Platform を初めて使用する方は、無料トライアルをご利用いただけます。

始める前に

  1. Google アカウントにログインします。

    Google アカウントをまだお持ちでない場合は、新しいアカウントを登録します。

  2. GCP プロジェクトを選択または作成します。

    [リソースの管理] ページに移動

  3. プロジェクトに対して課金が有効になっていることを確認します。

    課金を有効にする方法について

  4. Cloud SDK をインストールして初期化します。
  5. Cloud SQL 第 2 世代インスタンスを作成します。
  6. (省略可)Cloud SQL インスタンスを使用する App Engine アプリケーションをデプロイするか、または既存のアプリケーションを選択します。

    たとえば、ゲストブック サンプルを作成してデプロイします。phpMyAdmin 単独でデプロイすることもできますが、実際のシナリオでは通常、App Engine アプリケーションと共に使用します。

phpMyAdmin のソースコードをダウンロードする

phpMyAdmin は App Engine アプリケーションのサービスとしてデプロイするので、phpMyAdmin のソースコードをダウンロードする必要があります。手順は次のとおりです。

  1. ターミナル ウィンドウで次のコマンドを入力して、phpMyAdmin バージョン 4.6.3 のソースコードをダウンロードします。

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

    別のバージョンの phpMyAdmin を使用するには、phpMyAdmin ダウンロード ページで使用可能なバージョンのリンクを使用してください。

  2. 新しいディレクトリを作成します。後でこのディレクトリにファイルを抽出します。

    mkdir phpMyAdmin
    
  3. 新しいディレクトリにアーカイブからファイルを抽出します。

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

ファイルのデプロイを準備する

phpMyAdmin をデプロイするには、次の 3 つのファイルを作成する必要があります。app.yaml には、App Engine の設定情報を格納します。config.inc.php には、phpMyAdmin の設定情報を格納します。php.ini には、PHP 用のアプリケーション固有の設定を格納します。

app.yaml を作成する

App Engine 設定ファイルでは、URL パスがリクエスト ハンドラと静的ファイルにどのように対応するのかを指定します。また、アプリケーション ID や最新バージョンの ID など、アプリケーション コードについての情報も記載します。ファイルを作成するには次のようにします。

  1. 作成した phpMyAdmin という名前のディレクトリに、app.yaml という名前の新しいファイルを作成します。

    cd phpMyAdmin
    touch app.yaml
    
  2. 適当なエディタを使用して、次のテキストを 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. phpMyAdmin が App Engine にデプロイする最初で唯一のアプリケーションの場合は、service の値を phpmyadmin から default に変更します。

    通常は、phpMyAdmin を既存アプリケーションのサービスとしてデプロイし、サービスの名前を指定します。ただし、アプリケーションをまだデプロイしていない場合は、サービス名として "default" を使用する必要があります。App Engine で phpMyAdmin を試すことだけが目的の場合は、このチュートリアルではこれで十分です。

    このチュートリアルは、App Engine 標準環境でのみ使用できます。

  4. ファイルを保存します。

config.inc.php を作成する

phpMyAdmin 設定ファイルを作成するには次のようにします。

  1. config.inc.php という名前の新しいファイルを作成します。

    touch config.inc.php
    
  2. 適当なエディタを使用して、次のテキストを 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. ウェブブラウザで、Blowfish Secret Generator を開きます

  4. そのページで生成した一意の Blowfish Secret をコピーします。
    生成されたシークレットではなく、誤ってシークレットの例をコピーしないよう注意してください。

  5. config.inc.php{{your_secret}}に代えて新しいシークレットを貼り付けます。

  6. GCP Console で [Cloud SQL インスタンス] ページに移動します。

  7. [Cloud SQL インスタンス] をクリックして、[インスタンスの詳細] ページを表示します。

  8. {{your_connection_string}}の値($host 変数内)を [インスタンス接続名] プロパティに置き換えます。

  9. ファイルを保存します。

php.ini を作成する

phpMyAdmin のコードには、App Engine ではデフォルトで無効になっている関数が使用されています。App Engine でこれらの関数を再び有効にするため、以下の手順に沿って php.ini ファイルを追加します。

  1. phpMyAdmin ディレクトリでファイルを作成します。

    touch php.ini
    
  2. ファイルを編集して次の行を追加します。

    google_app_engine.enable_functions = "php_uname, getmypid"
    
  3. ファイルを保存します。

アプリケーションをデプロイする

アプリケーションを App Engine にデプロイするには、次のコマンドを使用します。

  1. gcloud コンポーネントの更新を確認します。

    gcloud components update
    
  2. app.yaml ファイルが置かれている phpMyAdmin ディレクトリ内から次のコマンドを実行して、アプリケーションのデプロイを行います。

    gcloud app deploy
    

    このコマンドは、app.yaml ファイルの指定どおりに、アプリを phpMyAdmin サービスにデプロイします。別のサービスとしてデプロイすると、phpMyAdmin はメイン アプリケーションと同じデータセンターで実行されるようになり、パフォーマンスが向上します。コマンドラインからのアプリのデプロイの詳細については、PHP アプリをデプロイするをご覧ください。

phpMyAdmin にログインする

phpMyAdmin にログインできる状態になっています。デプロイした config.inc.php ファイルにより、パスワードなしでログインできます。次のセクションでパスワードを設定するまでは、このログイン方法を使用します。

  1. ウェブブラウザで、phpMyAdmin の URL を入力してウェルカム ページを開きます。実際のアプリ ID を使うように URL を変更してください。

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. [ユーザー名] に「root」と入力します。

  3. root アカウントの構成時に指定した root パスワードを入力します。

  4. [実行] をクリックします。

App Engine アプリをデプロイするときは、忘れずに、Cloud SQL のデータベースにアクセスするために作成するすべてのユーザー アカウントをパスワードで保護してください。

トラブルシューティング

App Engine では、Cloud SQL Proxy を介して、Cloud SQL 第 2 世代インスタンスへの接続が行われます。プロキシの仕組みについて詳しくは、Cloud SQL Proxy についてをご覧ください。

Google Cloud Platform ConsoleApp Engine ログでは、App Engine のエラーに関する情報を確認できます。

クリーンアップ

チュートリアル(ドキュメント タイプのテンプレートのチュートリアル)が終了したら、GCP で作成したリソースをクリーンアップして、今後料金が発生しないようにします。次のセクションで、このようなリソースを削除または無効にする方法を説明します。

プロジェクトの削除

課金を停止する最も簡単な方法は、チュートリアル用に作成したプロジェクトを削除することです。

プロジェクトを削除するには:

  1. GCP Console で [プロジェクト] ページに移動します。

    プロジェクト ページに移動

  2. プロジェクト リストで、削除するプロジェクトを選択し、[削除] をクリックします。
  3. ダイアログでプロジェクト ID を入力し、[シャットダウン] をクリックしてプロジェクトを削除します。

インスタンスを削除する

Cloud SQL インスタンスを削除する手順は次のとおりです。

  1. GCP Console の [SQL インスタンス] ページに移動します。

    [SQL インスタンス] ページに移動

  2. 削除したい SQL インスタンスの名前をクリックします。
  3. ページの上部にある、[削除] ボタンをクリックし、インスタンスを削除します。

次のステップ

このページは役立ちましたか?評価をお願いいたします。

フィードバックを送信...