Because We Love Happy Coding

フリーライターからエンジニアへ。発信力だけあり余ってる感じ

WordPressマルチサイトの移行で上手くいった手順

仕事で更新を依頼されたサイトがWordPressマルチサイトだった。

だいぶ複雑に手を加えられた迷宮状態だったので構造を理解するのにも時間がかかったんだけど、開発環境を構築するのにもえらい時間がかかった。

シングルサイトのWordPressならファイルとデータベースをインポートして、ドメイン名を少し弄ればなんとかなる。ところが、マルチサイトはそうはいかなかった。元サイトがトップドメイン運用で、開発サーバーではサブディレクトリ運用だったのも混乱に拍車をかけた。

リダイレクトループに始まり、404エラーもあり、500番代のエラーもあり、もうたいへん。

Web の情報を元にあれこれ試したが決定打がないまま、二度クリーンインストールし直した。

動いた手順

クリーンインストールを繰り返しておぼろげにわかったのは、本番マルチサイトの設定をなんとか再現しようとしてデータベースを読み込むうちに、たぶんサーバー固有の設定を組み込んでしまっている、ということだ。

だから、できるだけ、開発サーバーの設定を残した方がいいに違いない、と推測した。

だから、大雑把にこんな手順でやってみた。メモを取っていなかったので細部間違っているかもしれない。

一度途中で「注意: 既存の WordPress ネットワークを検出しました。」が表示された。どうやって対処したんだったか忘れたけど……。

手順など

あちこち参考になる記事はあるけれど、こちらの記事にリストがあるので参考に。

Moving Multisite to a New Domain (Without Errors!) - WPMU DEV

項目 http trailing slash sample
wp\\\#options > siteurl http必要(http://foobar.com/wp/hoge
wp\\\#options > home http必要(http://foobar.com/wp/hoge
wp_blogs > domain 不要 不要 foobar.com
wp_blogs > path - /必要 /wp/
wp_options > siteurl http必要 不要 http://foobar.com/wp
wp_options >home http必要 不要 http://foobar.com/wp
wp_site > domain 不要 不要 http://foobar.com
wp_site > path - /必要 /wp/
wp_sitemeta > siteurl 不要 /必要 foobar.com/wp/

wp_#_options > fileupload_urlという項目が私が見た範囲では存在しないんだけど、これは廃止されたってことなんだろうか?

wp_blogsのドメインとパス

これは罠だった。

どや!?あなたも躓くかもしれない「ワードプレスマルチサイトでのドメイン変更」の手順書 | デザインどや!?

上記ブログの「サブディレクトリにWordPressをインストールした場合」というところにあるのだけれど、サブディレクトリをサブドメインドメイントップにする方法は割とあちこちに情報がある。

ところが、サブドメイントップにインストールされたWordPressをサブディレクトリのWordPressに移行する情報はあまりなくて、けっこう面倒なのだ。

私は結局諦めて、開発環境に一つサブドメインを切ることにした。この方がだいぶ早かった。

やはり開発環境は本番環境そっくりというのが理想だ。

参考記事