WordPressのマルチサイトを解体したときの作業メモ

3 min

便利と思ってWordPressをマルチサイト化して運用していましたが、諸事情で解体したので作業手順を残しておきます。

前段取り

マルチサイトを解体する前に、必要最低限のことはやっておきましょう。

媚びぬ!退かぬ!省みぬ!という方はスルーしてもよいですよ。

バックアップ

大きな作業をする前は、必ずバックアップをとっておきます。

ConoHaでは一発でバックアップイメージの作成ができるので、活用しました。

子サイトを分離

マルチサイトをそのまま解除すると、子サイトは消えてしまいます。

なので解除前に別ドメインなどに避難しておきましょう。

消えてもいいならそのままで……。

ちなみにマルチサイトをバラす工程で一番苦戦したところです。

マルチサイトを解体

さて、いよいよ本題に入ります。

といっても、これまでの作業に比べたら拍子抜けするくらいあっという間に終わりました(笑)

子サイトを削除

やらなくてもいい手順かもしれませんが、気持ちを切り替える為にあえて子サイトを削除しました。

[サイトネットワーク管理]->[サイト]から

子サイトの[削除]を選択して

[確認]を押して……あっあっ

(^p^)…あうあwwwwwwぱしへろんだすwwwwwww

けっこう心臓に悪い作業……。

プラグインを停止

僕はうっかり停止しないで進めてしまいましたが、色々な不具合のリスクを考えると停止しておいた方がいいかも。

一応、そのまま進めてもJetpackの連携含めて問題なく稼動しています(今のところ)。

MEMO

解体後のWordPressでは、「サイトネットワークで有効」になっていたプラグインのみ有効化されていました。

ここから先はマルチサイト化した時の作業を元に戻していきますよ。

wp-config.phpを編集

サーバーにあるwp-config.phpから、以下の記述を削除かコメントアウト。

define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', false);
define('DOMAIN_CURRENT_SITE', '【ドメイン名】');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

リライトルールの変更

サーバー環境によって異なります。

Apache

Apacheの人は.htaccessを編集した覚えがあると思います。

これを元に戻してあげましょう。

例として、XサーバーでルートディレクトリにインストールしたWordPressはこんな感じでした。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

nginx

nginxのマルチサイト設定はWordPressから作業指示がありませんので、どんな作業をしたかは人によって違います。

ここでは特に触れませんが、マルチサイト化した時に書き加えたディレクティブを削除するなりで対応しましょう。

KUSANAGIの設定ファイル群を見てみると、/etc/nginx/templates.d/以下にmultisite.confなる設定ファイルがありました。

中身はこんな感じ。

rewrite /files/$ /index.php last;
set $cachetest "$document_root/wp-content/cache/ms-filemap/${host}${uri}";
if ($uri ~ /$) {
set $cachetest "";
}
if (-f $cachetest) {
rewrite ^ /wp-content/cache/ms-filemap/${host}${uri} break;
}
if ($uri !~ wp-content/plugins) {
rewrite /files/(.+)$ /wp-includes/ms-files.php?file=$1 last;
}
if (!-e $request_filename) {
rewrite ^/[_0-9a-zA-Z-]+(/wp-.*) $1 last;
rewrite ^/[_0-9a-zA-Z-]+.*(/wp-admin/.*\.php)$ $1 last;
rewrite ^/[_0-9a-zA-Z-]+(/.*\.php)$ $1 last;
}

データベースの整理

マルチサイト化に伴ってデータベース構造はぐっちゃぐちゃになってると思いますので、気持ち悪ければ不要なテーブルは削除してしまいましょう。

プレフィックスが【wp_】とすると、【wp_2_】とかなっているテーブルが子サイトの残骸です。

さいごに

意外と簡単にシングルサイトに戻すことができましたね。

マルチサイトは決して悪いことばかりではありません。

とても便利で、画期的なシステムと今でも思っています(またマルチサイト化する機会もあるかもしれない)。

一度のログインで複数のサイトを触れるのは非常に大きなメリットですよ。

最後まで悩みましたが、僕のケースだとメリットを活かしきれず、しかも抱えていた子サイトがクセモノすぎたので泣く泣く解体するに至りました。

未経験からITエンジニアになりました!

今までは趣味としてプログラミングを独学してきたけど、やっぱりこれを仕事にしたい……!

そう思い立ったはいいものの、世間の情勢などもあり未経験でのエンジニア職の中途採用が絶望的な状況

大手転職エージェントを通して何社も面接を受けては落ちてを繰り返し、諦めかけていたのですが……。

気分転換で登録した転職サービスで、とある企業から内定をいただくことができました

同じように未経験からITエンジニアを目指している方へ、どんなに厳しくても可能性がゼロではないことを伝えたい。

ポイントは、IT業界に精通した転職サービスを利用すること。
これだけで少なくとも面接へ進める可能性がグッと高くなります。

あなたがもしIT特化の転職サービスに未登録で苦しんでいるなら、ぜひ利用してみてください。きっと可能性が広がりますよ!

\無料のIT系転職サービス/

はるしか

はるしか

ゲーム・漫画・クルマ・ガジェットなど多趣味な雑食系。
モノづくりが楽しくてプログラミングをポチポチしてたら本業エンジニアになってしまったASPの中の人。
動物占いは子鹿。
忘れっぽい自分へのメモ代わりの記事が多めです。

FOLLOW

カテゴリー:
関連記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です