Written by Manabu Bannai

【DigitalOcean】同じアカウント内でマルチサイト化されたWordPressを移転する方法

PROGRAMMING WordPress

多言語のWordPressサイトを開発していてちょっと悩んだのでメモ。一緒に開発しているメンバー向けの情報共有記事でもあります。

スポンサードサーチ


状況整理

  • 環境:Digitalocean
  • ライブサイト:www.example.com(マルチサイト)
  • 開発用サイト:dev.example.com(マルチサイトじゃない)

すでに公開されているサイトを作り直す場合は、dev.example.comといったドメインに開発用サイトを公開しておき、完成したら、dev.example.comのDNSをwww.example.comに向けるのが普通ですよね。

つまりこんな感じ(DNS レコード)

ライブサイト Aレコード www.example.com 192.111.222.333
開発用サイト Aレコード dev.example.com 192.222.333.444

問題点

しかし、WordPressのマルチサイト機能だと、設定時にURLがFIXされてしまう。wp-config.phpを開くとわかりますが、下記のように記述されます。

// wp-config.php
define('DOMAIN_CURRENT_SITE', 'dev.example.com');

通常のWordPressサイトならこういったベタ書きにはなりませんが、マルチサイトだとこの仕様です。ちょっと厄介なので、WordPressのアップデートして欲しいですね・・・。

なので、dev.example.comといった開発用サイトを作って、開発用サイトで検証してからwww.example.comにDNSを移す際にエラーが発生する。

つまり、下記にするとエラーが発生する

Aレコード www.example.com 192.111.222.333
Aレコード dev.example.com 192.222.333.444

実際に試してみるとエラーで画面が真っ白になるとかではなく、www.example.comにアクセスしても、dev.example.comにリダイレクトされる状況になります。

対処方法【2点実施します】

やることは2つ。

その①:DBの特定URLを置換する

下記箇条書きですが、具体的な手順です。

  • Sequel ProでDigitalOceanのDBに接続
  • sqlファイルをダウンロード
  • sqlファイル内で、dev.example.comを検索して、www.example.comにすべて置換
  • Sequel ProでDigitalOceanのDBをアップデート(File >> Importで上書きできます)

これでDBのアップデート完了。

その②:wp-config.phpの設定ファイル書き換え

// define('DOMAIN_CURRENT_SITE', 'dev.example.com'); //これをコメントアウト
define('DOMAIN_CURRENT_SITE', 'www.example.com'); //これを追記

これで完了。よかった、よかった。

人気記事無料あり:エンジニアの僕がおすすめするプログラミングスクール3社