【DigitalOcean】同じアカウント内でマルチサイト化された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'); //これを追記
これで完了。よかった、よかった。
※P.S:無料メルマガで発信中:過去の僕は「ブログ発信で5億円」を稼ぎました。次は「30億円」を目指します。挑戦しつつ、裏側の思考を「メルマガ」から発信します。不満足なら1秒で解約できます。無料登録は「こちら」です。