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


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

目標

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

費用

始める前に

  1. Google Cloud アカウントにログインします。Google Cloud を初めて使用する場合は、アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

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

  4. 必要な API を有効にします。

    API を有効にする

  5. Google Cloud CLI をインストールします。
  6. gcloud CLI を初期化するには:

    gcloud init
  7. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

    プロジェクト セレクタに移動

  8. Google Cloud プロジェクトで課金が有効になっていることを確認します

  9. 必要な API を有効にします。

    API を有効にする

  10. Google Cloud CLI をインストールします。
  11. gcloud CLI を初期化するには:

    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. Google Cloud コンソールで、[リソースの管理] ページに移動します。

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

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

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

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

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

  1. Google Cloud コンソールで、App Engine の [バージョン] ページに移動します。

    [バージョン] に移動

  2. デフォルト以外で削除するアプリのバージョンのチェックボックスをオンにします。
  3. アプリのバージョンを削除するには、[削除] をクリックします。

Cloud SQL インスタンスの削除

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

  1. Google Cloud コンソールで、[インスタンス] ページに移動します。

    [インスタンス] に移動

  2. 削除する SQL インスタンスの名前をクリックします。
  3. インスタンスを削除するには、 [削除] をクリックして、指示に従います。

次のステップ