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. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

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

    API を有効にする

  5. Google Cloud CLI をインストールして初期化します。
  6. Google Cloud Console の [プロジェクト セレクタ] ページで、Google Cloud プロジェクトを選択または作成します。

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

  7. Cloud プロジェクトに対して課金が有効になっていることを確認します。詳しくは、プロジェクトで課金が有効になっているかどうかを確認する方法をご覧ください。

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

    API を有効にする

  9. Google Cloud CLI をインストールして初期化します。
  10. 次の手順で認証情報を作成します。
    • コンソールで [認証情報] ページに移動します。

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

    • [認証情報を作成] をクリックし、[サービス アカウント キー] を選択します。
    • [サービス アカウント] > App Engine のデフォルトのサービス アカウントを選択します。
    • [作成] をクリックします。
    • ダウンロードしたキーを安全な場所に保存します。
  11. PHPComposer をインストールします。
  12. Cloud SQL Proxy をダウンロードして、実行可能ファイルにします。また、Cloud SQL Proxy の実行可能ファイルの場所を PATH 環境変数に追加します。
  13. 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. コンソールで [リソースの管理] ページに移動します。

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

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

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

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

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

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

    [バージョン] に移動

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

Cloud SQL インスタンスの削除

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

  1. In the 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.

次のステップ