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

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

目標

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

費用

このチュートリアルで使用する、Cloud Platform のコンポーネント(Google Compute Engine、Cloud SQL を含む)は課金対象です。

Cloud Platform を初めてご利用の場合は、無料試用版をお使いいただけます。

始める前に

  1. Google アカウントへのログイン

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

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

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

  3. プロジェクトの課金を有効にします。

    課金の有効化

  4. 必要な API(複数)を有効にする。

    Enable the APIs

  5. Google Cloud SDK をインストールし、初期化します
  6. 新しいサービス アカウントを作成します。JSON キーファイルをダウンロードして、安全な場所に保存します。
  7. PHPComposer をインストールします。
  8. Cloud SQL プロキシをダウンロードして、実行可能にします。Cloud SQL プロキシの実行可能ファイルの場所を PATH 環境変数に追加します。
  9. 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
    
  2. インスタンスに root パスワードを設定します。

    gcloud sql instances set-root-password tutorial-sql-instance \
        --password [YOUR_SQL_ROOT_PASSWORD]
    

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

  3. Cloud SQL プロキシを実行します。

    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] はプロジェクト 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/wordpress
    
  3. 依存関係をインストールします。

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

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

    ここで:

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

    -d パラメータに 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
    
  3. サイトにアクセスして、WordPress をインストールします。

    gcloud app browse
    

    このコマンドを実行すると、ブラウザが開き、WordPress のインストール ページが表示されます。ページに表示された指示に従います。

    コマンドを入力しない場合には、ブラウザに次の URL を入力します。

    https://[YOUR_PROJECT_ID].appspot.com
    

    [YOUR_PROJECT_ID] はプロジェクト ID です。

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
    

クリーンアップ

このチュートリアルで使用するリソースについて、Google Cloud Platform アカウントに課金されないようにするには、次の手順を行います。

プロジェクトの削除

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

プロジェクトを削除する手順は次のとおりです。

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

    [プロジェクト] ページに移動する

  2. プロジェクト名の右側にある、ゴミ箱アイコンをクリックします。

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

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

アプリ バージョンを削除する手順は次のとおりです。

  1. Cloud Platform Console で、[App Engine のバージョン] ページに移動します。

    [バージョン] ページに移動する

  2. 削除したい、デフォルト以外のアプリのバージョンの横にあるチェックボックスをクリックします。
  3. ページ上部にある [削除] ボタンをクリックし、アプリのバージョンを削除します。

Cloud SQL インスタンスを削除する

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

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

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

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

次のステップ

App Engine フレキシブル環境で PHP Bookshelf サンプルを実行する方法を学習します。

Container Engine で PHP Bookshelf サンプルを実行する方法を学習します。

Compute Engine で PHP Bookshelf サンプルを実行する方法を学習します。

WordPress の詳細を学習します。

独自のドメインと Mailgun で WordPress マルチサイトを使用する方法を学習します。

Google Cloud Platform のその他の機能を試すには、チュートリアルをご覧ください。