Closed2

gcpでwordpressデプロイ

noznoz

基本はこれ

下記でデプロイする。途中、compute engineの設定で性能を選べるのでコスト削減のため低いやつにした。

https://g-gen.co.jp/useful/google-service/10853/

http, httpsのアクセスを許可するオプションはオンで。wordpressのssl化の時にバグる。

ssl化の時にaptのアップデートを忘れずに。あと、下段が記事とは微妙に違う形でうまくいった。

sudo apt-get update
sudo apt-get install certbot python3-certbot-apache

参考にしたサイト

独自ドメインを使う設定はこちらがちょっと詳しい

https://qiita.com/hiro404/items/6d3e8dcd2829e40cfae8

google workspace用にすでに作成済みのドメインを使う

https://support.google.com/cloudidentity/answer/7538152?hl=ja#

noznoz

詳細 Gemini先生のまとめ

GCP(Google Cloud Platform)のClick to Deployで作成したWordPressサイトを、Squarespaceで管理しているGoogle Workspaceのドメインで公開するための設定手順をご説明します。

この設定は、大きく分けて以下の4つのステップで進めます。

  1. GCPでの準備: WordPressサイトのIPアドレスを固定します。
  2. GCPでのDNS設定: 独自ドメインの窓口(DNS)をGCPに設定します。
  3. Squarespaceでの設定: ドメインの管理をGCPに向ける設定をします。
  4. WordPressとSSL化: サイトのURLを独自ドメインに変更し、通信を暗号化します。

## 1. GCP: 静的IPアドレスの割り当て

まず、WordPressが稼働しているGCPの仮想マシン(VMインスタンス)のIPアドレスを固定します。デフォルトではIPアドレスが変動する可能性があるため、独自ドメインで安定してアクセスできるように静的な(固定の)IPアドレスを割り当てます。

  1. Google Cloudコンソールにログインします。
  2. ナビゲーションメニュー()から [VPCネットワーク] > [IPアドレス] を選択します。
  3. WordPressインスタンスに割り当てられている「エフェメラル」と表示されているIPアドレスを見つけます。
  4. そのIPアドレスの右側にあるメニュー(︙)から [静的IPアドレスに昇格] をクリックします。
  5. 任意の名前(例: wordpress-static-ip)を入力し、[予約] をクリックします。
  6. 種類が「静的」に変わったことを確認し、このIPアドレスをメモしておきます。

## 2. GCP: Cloud DNSの設定

次に、GCPのCloud DNSサービスを使って、あなたのドメイン(例: your-domain.com)のDNSゾーンを作成します。ここに、どのドメインへのアクセスをどのIPアドレスに向けるかの設定(レコード)を記述します。

  1. ナビゲーションメニューから [ネットワーク サービス] > [Cloud DNS] を選択します。
  2. [ゾーンを作成] をクリックします。
  3. ゾーン名に任意の名前(例: your-domain-zone)、DNS名にSquarespaceで管理しているあなたのドメイン名(例: your-domain.com)を正確に入力し、[作成] をクリックします。
  4. 作成したゾーンの詳細ページで、[標準を追加] をクリックして、Aレコードを2つ作成します。
    • Aレコード (ルートドメイン用)
      • DNS名: 空欄のままにします。
      • IPv4アドレス: ステップ1でメモした静的IPアドレスを入力します。
      • [作成] をクリックします。
    • Aレコード (www用)
      • DNS名: www と入力します。
      • IPv4アドレス: ステップ1でメモした静的IPアドレスを入力します。
      • [作成] をクリックします。

このドメインでGoogle WorkspaceのGmailを利用している場合、メールが正しく受信できるようにMXレコードをCloud DNSに設定する必要があります。これを忘れるとメールが届かなくなります。

  1. ゾーンの詳細ページで [標準を追加] をクリックします。
  2. リソースレコードのタイプ[MX] を選択します。
  3. Google WorkspaceのMXレコード値を設定します。通常、以下の5つのレコードを追加します。
優先度 値 / 応答 / 参照先
1 ASPMX.L.GOOGLE.COM.
5 ALT1.ASPMX.L.GOOGLE.COM.
5 ALT2.ASPMX.L.GOOGLE.COM.
10 ALT3.ASPMX.L.GOOGLE.COM.
10 ALT4.ASPMX.L.GOOGLE.COM.

最後に、作成したゾーンの詳細ページの上部に表示されているNSレコード(例: ns-cloud-a1.googledomains.com. など4つ)をメモしておきます。これは次のステップで使います。


## 3. Squarespace: ネームサーバーの変更

Squarespaceのドメイン管理画面で、ドメインの名前解決をGCPのCloud DNSで行うように、ネームサーバーの情報を書き換えます。

  1. Squarespaceにログインし、ドメインの管理パネルに移動します。
  2. DNS設定のセクションを探し、[ドメインネームサーバー] を開きます。
  3. [Squarespaceのデフォルトネームサーバーを使用] から [カスタムネームサーバーを使用] に切り替えます。
  4. 入力欄に、先ほどGCPのCloud DNSでメモした4つのNSレコードをすべて入力し、設定を保存します。

この設定変更がインターネット全体に反映されるまでには、数時間から最大で72時間程度かかる場合があります。


## 4. WordPressの設定とSSL化

DNS設定の反映が完了したら、最後にWordPress側の設定と、セキュリティを強化するためのSSL化を行います。


### 4.1. サーバーの準備とドメイン設定

目的: ドメイン名でサーバーにアクセスできるようにする。

  1. 静的IPアドレスの取得: GCPのVMインスタンスに静的(固定)IPアドレスを割り当て、メモする。
  2. DNSレコードの設定: ドメインを管理しているサービス(今回はSquarespace)で、{example.comなどあなたのドメイン}www.{example.comなどあなたのドメイン} の両方のAレコードを、上記で取得した静的IPアドレスに向ける。

### 4.2. SSL化の試行錯誤と正しい手順の特定

目的: SSL化ツールの種類を特定し、インストールする。

  1. 環境の特定: 当初、Bitnami環境専用のSSL化ツール(bncert-tool)を試したが、command not foundエラーが発生。これにより、使用しているサーバーがBitnami製ではないことが判明した。
  2. 正しいツールの採用: 上記の結果から、Linuxの標準的なSSL化ツールであるcertbotを使用する方針に決定した。
  3. ツールのインストール: 以下のコマンドでcertbotとApache連携用のプラグインをインストールした。
    sudo apt-get update
    sudo apt-get install certbot python3-certbot-apache
    

### 4.3. SSL証明書の取得とトラブル解決

目的: certbotを実行し、発生した問題を解決しながら証明書を取得・設定する。

  1. 最初の実行 → ファイアウォールエラー:

    • 問題: certbot実行後、Timeout during connect (likely firewall problem)というエラーが発生。Let's Encryptのサーバーがこちらのサーバーにアクセスできない状態だった。
    • 解決策: GCPのVMインスタンス編集画面で**「Allow HTTP traffic」と「Allow HTTPS traffic」のチェックボックスを有効化**し、ファイアウォールのポート(80, 443)を開放した。
  2. 二度目の実行 → 設定ファイルの競合エラー:

    • 問題: 証明書のダウンロードには成功したが、Apacheへの自動設定に失敗The selected vhost would conflictというエラーが表示された。
    • 解決策: 自動設定を諦め、手動でApacheの設定ファイルを編集した。
      1. sudo nano /etc/apache2/sites-available/wordpress-https.conf を実行。
      2. SSLCertificateFileSSLCertificateKeyFileのパスを、ダウンロードされた正しい証明書(/etc/letsencrypt/live/t-goto-usa.com/配下のファイル)に書き換えた。
      3. ServerName t-goto-usa.com を追記した。

### 4.4. 仕上げ

目的: 設定を反映させ、サイトを完全にHTTPS化する。

  1. Apacheの再起動: 編集した設定を反映させるため、sudo systemctl restart apache2 を実行。
  2. WordPress設定変更: WordPressの管理画面にログインし、「設定」>「一般」でサイトのURLを http:// から https:// に変更。

以上が、今回の一連の流れです。お疲れ様でした!

このスクラップは16日前にクローズされました