在 App Engine 標準環境中將 phpMyAdmin 與 Cloud SQL 搭配使用

瞭解如何在 App Engine 標準環境中安裝 phpMyAdmin。您可以使用 phpMyAdmin 來透過網路管理 Cloud SQL。

如果您執行下列操作,會發現這份教學課程非常有幫助:

  • 在 App Engine 上執行應用程式。
  • 使用 Cloud SQL 做為您的資料庫。
  • 使用 phpMyAdmin 做為 MySQL 的介面,或者您偏好使用網路介面執行資料庫管理。

如果您使用 Google Compute Engine,請考慮使用透過「點擊部署」提供的其中一種開發堆疊或產品。部署包括 MySQL 的堆疊 (例如 LAMPLEMP) 或產品 (例如 Drupal),可讓您選擇在部署中安裝 phpMyAdmin。

目標

  • 在 App Engine 標準環境中部署 phpMyAdmin。

費用

本教學課程使用 Cloud Platform 可計費元件,包括:

  • App Engine
  • Cloud SQL

使用 Pricing Calculator 可根據您的預測使用量來產生預估費用。 初次使用 Cloud Platform 的使用者可能符合免費試用的資格。

事前準備

  1. 登入您的 Google 帳戶。

    如果您沒有帳戶,請申請新帳戶

  2. 選取或建立 Google Cloud Platform 專案。

    前往「Manage resources」(管理資源) 頁面

  3. 請確認您已啟用 Google Cloud Platform 專案的計費功能。

    瞭解如何啟用計費功能

  4. 安裝並初始化 Cloud SDK
  5. 建立 Cloud SQL 第二代執行個體
  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 需要您建立三個檔案:app.yaml,包含 App Engine 的設定資訊;config.inc.php,包含 phpMyAdmin 的設定資訊;以及 php.ini,包含 PHP 的應用程式專屬設定。

建立 app.yaml

App Engine 設定檔可指定網址路徑對應於要求處理常式和靜態檔案的方式。它同時包含應用程式程式碼的相關資訊,例如應用程式 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 密鑰產生器

  4. 複製頁面產生的專屬 blowfish 密鑰。
    請注意,您應複製產生的密鑰,而不是範例密鑰。

  5. 貼上新密鑰,取代 config.inc.php 中的 {{your_secret}}

  6. 前往 GCP 主控台的「Cloud SQL instances」(Cloud SQL 執行個體) 頁面

  7. 按一下 Cloud SQL 執行個體,顯示「Instance details」(執行個體詳細資料) 頁面。

  8. {{your_connection_string}} 的值 (在 $host 變數中) 取代為執行個體連線名稱屬性。

  9. 儲存檔案。

建立 php.ini

phpMyAdmin 會在程式碼中使用預設在 App Engine 中停用的函式。 請按照以下步驟新增 php.ini 檔案,使 App Engine 再次啟用這些函式:

  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 的網址來開啟歡迎頁面,進而將網址變更為使用您的應用程式 ID。

        https://phpmyadmin-dot-[YOUR_APP_ID].appspot.com
    
  2. 針對「Username」(使用者名稱),輸入 root

  3. 輸入在您設定 root 帳戶時提供的 root 密碼。

  4. 按一下 [Go] (前往)

在您部署 App Engine 應用程式時,請記得以密碼保護您建立來存取 Cloud SQL 中資料庫的任何使用者帳戶。

疑難排解

App Engine 使用 Cloud SQL Proxy 連線至 Cloud SQL 第二代執行個體。 如要進一步瞭解 Proxy 的運作方式,請參閱關於 Cloud SQL Proxy 一文。

Google Cloud Platform 主控台中的 App Engine 記錄可提供關於 App Engine 錯誤的資訊。

清除所用資源

完成教學課程文件類型範本教學課程後,您可以清除在 GCP 上建立的資源,這樣資源就不會占用配額,而您日後也無須為其付費。下列各節將說明如何刪除或停用這些資源。

刪除專案

如要避免付費,最簡單的方法就是刪除您為了本教學課程所建立的專案。

刪除專案:

  1. 前往 GCP 主控台的「Projects」(專案) 頁面。

    前往專案頁面

  2. 在專案清單中選取要刪除的專案,然後按一下 [Delete] (刪除)
  3. 在對話方塊中輸入專案 ID,按一下 [Shut down] (關閉) 即可刪除專案。

刪除執行個體

刪除 Cloud SQL 執行個體:

後續步驟

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
MySQL 適用的 Cloud SQL