Web制作を始めたばかりのころ、色んなことの知識が足りなくて、今考えると何でこんなことをしてしまったのだろうということが、たくさんあります。
その中の一つが、サブドメイン+ワードプレスのマルチサイト化です。
ずっと気になっていて、いつかマルチサイトを解除したいと思っていて、お盆休みに入ったことで時間的に余裕が持てたので、マルチサイトの解除をすることにしたのですが、結局2日がかりで、最後は思わぬところで苦労したので、その状況を備忘録として残しておきます。
Web制作を始めて、最初に購入したドメインは、今の会社のホームドメインとなる ‘futureship.jp’ です。
ドメイン費用は、年間数千円程度ですが、購入して維持するために毎年お金が必要です。
少しでもセーブしようと考えて、サブドメインというのを作れば、メインのドメイン費用だけで追加のお金なしに複数のドメインを持つことが出来ることをネットで知ります。
‘xxxx.futureship.jp’ という形で、メインのドメインとも関連したドメインであることになるし、これは好都合だと思ったのです。
しかも、一つのワードプレスで、メインドメインとサブドメインを一括で扱えるマルチサイト化ということもネットで知ります。
今、考えるとサブドメインもマルチサイトもやめておくべきでした。理由は、別記事「サブドメインを勧めない理由」を参照ください。
今回、対象となるサイトは、
- メイン : https://futureship.jp/
- サブ1 : https://business.futureship.jp/
- サブ2 : https://mail-utilize.futureship.jp/
になります。
作業手順は、大まかに以下のようになります。
- サブドメイン1のサーバー内での引っ越し
- サブドメイン2のサーバー内での引っ越し
- メインドメインのワードプレスでマルチサイト解除
すべての手順をお話ししていると長くなるので、一番肝心のマルチサイトの解除でトラブった内容をまずは説明します。
マルチサイト解除の落とし穴
ワードプレスのマルチサイトの解除は、サブドメインの引っ越し後に行います。
引っ越したら、ワードプレスのサイトネットワークの設定で、サブドメインのサイトを削除します。(削除しなくても良いとは思いますが、私は削除しました。)
ネットで「ワードプレス、マルチサイト、解除」で検索すると、たくさんのサイトに手順が説明されています。
例えば
などがありました。
どれを読んでも、とても簡単そうにみえます。トラブルところなんて無さそうでしたが。。。
手順をまとめると
- データベースのバックアップ
- プラグインを停止
- wp-config.php を修正
- .htaccess を変更
- プラグインを有効にする
- マルチサイトで作られたデータベースの削除
- アップロードファイルの整理
1は念のためのバックアップで、2はやらなくても大丈夫という話もありました。
6と7は、マストではないようです。
ということは、3と4が肝ということですね。
ワードプレスにもマルチサイトとして使うときに、wp-config と .htaccess に以下を追記しなさいと書いてあります。
wp-config
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true); define('SUBDOMAIN_INSTALL', true); define('DOMAIN_CURRENT_SITE', 'example.com'); define('PATH_CURRENT_SITE', '/example/'); define('SITE_ID_CURRENT_SITE', 1); define('BLOG_ID_CURRENT_SITE', 1);
.htaccess
# BEGIN WordPress RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] RewriteRule . index.php [L] # END WordPress
つまり、マルチサイトを解除するときには、上記を削除することと、.htaccess に関しては、シングルサイトにするための記載と入れ替えなさい、ということです。
マルチサイトにするときに.htacessの上記記載になっているところを下記に置き換えます。
# 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
色んなサイトを参照する上では、これでうまく行くはずだったのですが、ワードプレスにログイン、あるいはメインのサイトにアクセスすると、
真っ白な画面に、「データベース接続確立エラー」という表示が出てきます。
ネットで調べると、実はこれもまた同じ悩みを持つ人がたくさんいることがわかります。
一番わかりやすかったのが下記のサイト。
データベースサーバの名称やパスワードなどが違っているという可能性があることの説明も多かったのですが、wp-config や .htaccess をマルチサイトの状態に戻すとちゃんと動くので、これが原因ではなさそう。
ワードプレスのインストールディレクタの問題などもあり得そうで、pathの設定などを色々とやってみてもダメでした。
作業を始めて2日目の夕方、困り果ててt、wp-config や .htaccess をじっと眺め続けていて、wp-config の中のある一行が気になり始めました。
define( ‘SUNRISE’, ‘on’ );
これは何だろうと、この記述をそのまま検索にかけたら、マルチサイト化するときに追加するものだと判明しました。
マルチサイト解除についての説明にはなかったのですが、マルチサイト化するというページには、この一行の必要性について記載がありました。
つまり、私がワードプレスを使い始めたころ、マルチサイト化するときに、この記述を追加していたということで、シングルサイトに戻すときには、これも削除する必要があったということです。
define( ‘SUNRISE’, ‘on’ );
この記載の削除で、ほぼ丸一日はつぶれました。
ということで、この記載を消去して、無事にマルチサイトの解除が完了しました。
以下、ついでなので、サブドメインの引っ越しについても少しだけ触れておきます。
サブドメインの引っ越し
手順1、2のサブドメインの引っ越しは同じことをやるだけなので、一度で説明します。
まず、すべての作業の前にバックアップを取ります。
さくらインターネットの場合、FTPソフトを使わなくともマネージャでファイル編集やファイルの移動、コピーなどが出来るので、それを使ってワードプレスをインストールしたフォルダー下のファイルを別のフォルダーにバックアップしておきます。
https://(サーバー申し込み時のドメイン)/wp の下にap-admin、wp-content、wp-includesというフォルダーとその他のファイルがあるので、それらを念のため、別フォルダー(wp_bkなど)に退避させておきます。
本来は、SQLデーターベースもコピーをして、移動するべきなのだと思いますが、今回、サブドメインの引っ越しではデーターベースは引っ越ししませんでした。(結果、ほとんど何も問題なく復元できました。)
引っ越し手順
- 記事やコンテンツをエクスポート(xml形式)
- Export Featured Imagesプラグインでアイキャッチのxmlをエクスポート
postを選択してエクスポートする - サーバー内の別のフォルダーに新たなワードプレスをインストール
- 移動元のwp-content/uploads に入っているメディアファイルを移動先にコピー
フォルダー構造を同じにする。
サブドメインのメディアは、uploads/sites/※(サブドメインに割り振られた番号)の下にある - 記事やコンテンツのxmlをインポート
- アイキャッチのxmlをインポート
- データーベースを移動してないので、細かな調整作業をやって完了
ヘッダー画像、ウィジェット、メニューなどを再設定する必要があった
データベースをコピーするとか、共有するとか、もしかすると色々と手があったかもしれません。
今回、メインドメインは会社の重要なサイトで、他の2つのサブドメインのサイトは、ワードプレスを始めたころの、練習用のサイトであったり、当時、英語の通信教育事業をやろうと思っていたので、そのためのサイトであったので、今となってはほとんど更新もしていないサイトということで、優先度はあまり高くなかったのです。
とにかく、メインサイトを安全な状態にしたい、活性化させたいというのが最大の目的でしたので、サブドメインのサイトは、形だけだけでも生き残ってくれればというのがありました。
結果的には、3つのサイトともに生き残っています。
データベースをいじるというところまで、踏み込めなかったというのがこの顛末の大前提ではありますが、同様の悩みがあるかたの一助になれば幸いです。
コメント