App Engine フレキシブル環境での WordPress のホスティング


このチュートリアルでは、小規模な WordPress サイトを App Engine フレキシブル環境にデプロイする方法を示します。

目標

  • Cloud SQL 第 2 世代インスタンスを作成する。
  • WordPress のサンプルサイトを構成する。
  • WordPress のサンプルサイトを App Engine フレキシブル環境にデプロイする。

費用

始める前に

  1. Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  3. Make sure that billing is enabled for your Google Cloud project.

  4. Enable the required APIs.

    Enable the APIs

  5. Install the Google Cloud CLI.
  6. To initialize the gcloud CLI, run the following command:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Go to project selector

  8. Make sure that billing is enabled for your Google Cloud project.

  9. Enable the required APIs.

    Enable the APIs

  10. Install the Google Cloud CLI.
  11. To initialize the gcloud CLI, run the following command:

    gcloud init
  12. 次の手順で認証情報を作成します。
    • Google Cloud コンソールで、[認証情報] ページに移動します。

      API の認証情報ページを開く

    • [認証情報を作成] をクリックし、[サービス アカウント キー] を選択します。
    • [サービス アカウント] > App Engine のデフォルトのサービス アカウントを選択します。
    • [作成] をクリックします。
    • ダウンロードしたキーを安全な場所に保存します。
  13. PHPComposer をインストールします。
  14. Cloud SQL Proxy をダウンロードして、実行可能ファイルにします。また、Cloud SQL Proxy の実行可能ファイルの場所を PATH 環境変数に追加します。
  15. MySQL クライアントをインストールし、mysql 実行可能ファイルの場所が PATH 環境変数に含まれていることを確認します。

Cloud SQL 第 2 世代インスタンスの作成と構成

  1. Cloud SQL 第 2 世代インスタンスを作成します。

    gcloud sql instances create tutorial-sql-instance \
        --activation-policy=ALWAYS \
        --tier=db-n1-standard-1 \
        --region=us-central1
    
  2. インスタンスに root パスワードを設定します。

    gcloud sql users set-password root --instance tutorial-sql-instance \
        --password [YOUR_SQL_ROOT_PASSWORD] \
        --host %
    

    [YOUR_SQL_ROOT_PASSWORD] は任意の安全なパスワードです。

  3. Cloud SQL Proxy をダウンロードして実行します。

    wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
    cloud_sql_proxy \
        -dir /tmp/cloudsql \
        -instances=[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance=tcp:3306 \
        -credential_file=[PATH_TO_YOUR_SERVICE_ACCOUNT_JSON]

    ここで

    • [YOUR_PROJECT_ID] はユーザーの Google Cloud プロジェクト ID です。

    • [PATH_TO_YOUR_SERVICE_ACCOUNT_JSON] は、前にダウンロードしたサービス アカウント JSON ファイルのパスです。

    次の出力は、新しい接続に対してプロキシの準備ができていることを示します。

    Listening on 127.0.0.1:3306 for [YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance
    Ready for new connections
    
  4. 別のターミナル ウィンドウで、新しいデータベースとユーザーを作成します。

    mysql -h 127.0.0.1 -u root --password=[YOUR_SQL_ROOT_PASSWORD]
    mysql> create database tutorialdb;
    mysql> create user 'tutorial-user'@'%' identified by '[YOUR_DATABASE_PASSWORD]';
    mysql> grant all on tutorialdb.* to 'tutorial-user'@'%';
    mysql> exit

    ここで

    • [YOUR_SQL_ROOT_PASSWORD] は、Cloud SQL インスタンスの root パスワードです。
    • [YOUR_DATABASE_PASSWORD] は、任意の安全なパスワードです。

WordPress プロジェクトの設定

  1. サンプル リポジトリのクローンを作成します。

    git clone https://github.com/GoogleCloudPlatform/php-docs-samples.git
    
  2. サンプルコードのあるディレクトリに移動します。

    cd php-docs-samples/appengine/flexible/wordpress
    
  3. 依存関係をインストールします。

    composer install
    
  4. ヘルパー スクリプトを実行します。

    php wordpress.php setup -n \
        --dir=./wordpress-project \
        --db_instance=tutorial-sql-instance \
        --db_name=tutorialdb \
        --db_user=tutorial-user \
        --project_id=[YOUR_PROJECT_ID] \
        --db_password=[YOUR_DATABASE_PASSWORD]

    ここで

    • [YOUR_PROJECT_ID] はプロジェクト ID です。
    • [YOUR_DATABASE_PASSWORD] はデータベース パスワードです。

    -dir パラメータは、WordPress プロジェクトの場所を指定します。

  5. ヘルパー スクリプトは wordpress-project/wordpress/wp-config.php に情報を書き込みます。wp-config.php の内容を調べて、名前、プロジェクト ID、データベース パスワードが正しいことを確認します。

    if ($onGae) {
        /** Production environment */
        define('DB_HOST', ':/cloudsql/[YOUR_PROJECT_ID]:us-central1:tutorial-sql-instance');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    } else {
        /** Local environment */
        define('DB_HOST', '127.0.0.1');
        /** The name of the database for WordPress */
        define('DB_NAME', 'tutorialdb');
        /** MySQL database username */
        define('DB_USER', 'tutorial-user');
        /** MySQL database password */
        define('DB_PASSWORD', '[YOUR_DATABASE_PASSWORD]');
    }

App Engine フレキシブル環境への WordPress プロジェクトのデプロイ

  1. WordPress のプロジェクト ディレクトリに移動します。

    cd wordpress-project
    
  2. WordPress プロジェクトをデプロイします。

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    
  3. ブラウザに次の URL を入力します。

    https://PROJECT_ID.REGION_ID.r.appspot.com

    以下を置き換えます。

WordPress、プラグイン、テーマの更新

WordPress、プラグイン、テーマは常に最新の状態に保つことが重要です。wp ツールを使用して、これらのアイテムを最新の状態に更新できます。更新後に、WordPress プロジェクトを再デプロイする必要があります。

  1. WordPress 自体を更新します。

    vendor/bin/wp core update --path=wordpress
    
  2. プラグインを更新します。

    vendor/bin/wp plugin update --all --path=wordpress
    # Just in case it updates any of the dropins, copy the files:
    cp wordpress/wp-content/plugins/batcache/advanced-cache.php \
        wordpress/wp-content/plugins/memcached/object-cache.php \
        wordpress/wp-content
    
  3. テーマを更新します。

    vendor/bin/wp theme update --all --path=wordpress
    
  4. プロジェクトを再度デプロイします。

    gcloud app deploy \
        --promote --stop-previous-version app.yaml cron.yaml
    

クリーンアップ

このチュートリアルで使用したリソースについて、Google Cloud アカウントに課金されないようにするには、リソースを含むプロジェクトを削除するか、プロジェクトを維持して個々のリソースを削除します。

プロジェクトの削除

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

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

  1. In the Google Cloud console, go to the Manage resources page.

    Go to Manage resources

  2. In the project list, select the project that you want to delete, and then click Delete.
  3. In the dialog, type the project ID, and then click Shut down to delete the project.

アプリのデフォルト以外のバージョンの削除

プロジェクトを削除しない場合、アプリのデフォルト以外のバージョンを削除すると、コストを抑えることができます。

アプリのバージョンを削除するには:

  1. In the Google Cloud console, go to the Versions page for App Engine.

    Go to Versions

  2. Select the checkbox for the non-default app version that you want to delete.
  3. アプリのバージョンを削除するには、[削除] をクリックします。

Cloud SQL インスタンスの削除

Cloud SQL インスタンスを削除するには:

  1. In the Google Cloud console, go to the Instances page.

    Go to Instances

  2. Click the name of the SQL instance you that want to delete.
  3. To delete the instance, click Delete, and then follow the instructions.

次のステップ