今回は、さくらインターネットの共有サーバで、WordPressの「サブドメイン(マルチドメイン)型」のマルチサイトを構築する方法を紹介します。
WordPressには、一度のインストールで複数のサイト・ブログを運用することができる「マルチサイト」という機能があります。
マルチサイトには、「サブディレクトリ型」と、「サブドメイン(マルチドメイン)型」の2つのタイプがあり、URLの一例を示すと以下のようになります。
それぞれ、管理画面やユーザーなども別々に作成でき、あたかも複数のWordPressをインストールしているかのように運用できます。
ただし、共有レンタルサーバの場合は、共有サーバの制約上サブドメイン(マルチドメイン)型は構築できないことが多いです。
しかし、さくらインターネットの共有サーバ(スタンダード以上)では、「WordPress MU Domain Mapping」というプラグインを使うことで、サブドメイン(マルチドメイン)型のマルチサイト構築が可能です。
ということで、この記事では「WordPress MU Domain Mapping」プラグインを使い、さくらインターネットの共有サーバでサブドメイン(マルチドメイン)型WordPressのマルチサイト構築する手順を説明します。
※ただし、マルチサイト化には注意点やデメリットもありますので安易なオススメはしません。
注意点やデメリットについては最後に紹介しています。
※WordPressの画面はバージョン3.7で説明しています。
WordPressフォルダ内にある「wp-config.php」ファイルに以下記述を追記します。
(コメントの記載については入れなくてもかまいません)
/* マルチサイト化 */define('WP_ALLOW_MULTISITE', true); ※3.5からはメインサイトのアップロードディレクトリ (デフォルトは /wp-content/uploads/) の直下に /sites/2/ といった感じでサイト毎のアップロードディレクトリが作成される様に仕様が変更となりました。
「サイト」→「新規追加」をクリックすると、以下の画像のように「****.jp/」のドメイン名の後にディレクトリ名を入れる「サブディレクトリ」形式になっています。
「作りたいのはサブディレクトリ型じゃなくてサブドメイン(マルチドメイン)型だ・・・!」と、思うかもしれませんが、ひとまずはこれで大丈夫です。
「サイトのアドレス」が空欄だと進めませんので、ひとまず適当に入力し「サイトを追加」しておきます。
ここで、マルチドメイン型で運用したい「独自ドメイン」をさくらサーバのコントロールパネルで追加します。
プラグインをインストール後、「設定」→「Domain Mapping」のメニューが表示され、クリックすると下記のメッセージが表示されます。
Please copy sunrise.php to /home/****/www/wp-content/sunrise.php and ensure the SUNRISE definition is in /home/****/www/wp-config.php
プラグインディレクトリの「wordpress-mu-domain-mapping にある sunrise.php をwp-contentディレクトリにコピーし、SUNRISE definition をwp-config.phpに追記してください。」と表示されていますので、両方の作業を行いましょう。
define( 'SUNRISE', 'on' );
続いて、「設定」→「domains」から「Site ID」と、サブドメインとなる「Domain」を以下画面で入力します。
サブドメインサイトの「Site ID」の確認方法は、WordPressのメニュー「すべてのサイト」→「編集」でマウスオーバーすれば、下記のようにURLパラメータに表示されます。
(以下であればid=2の部分)
https://*****.jp/wp-admin/network/site-info.php?id=2
※ちなみに、Site IDは連番で振られ、変更不可能となっています。
なので、マルチサイトで新規に運用する2番目の「Site ID」は2になりますが、サイトを消去すると永久欠番になります。
以上で設定は完了です。
それぞれのサイトのドメイン以下に「/wp-login.php」のURLをつけてアクセスすることでWordPressの管理画面へログインできるようになります。
マルチドメイン化には、以下の注意点やデメリットがあるので、事前に把握した上で、マルチドメインを構築するかを検討しましょう。
図にすると下記のようになります。
これは、運営上はとくに問題ないのですが画面表示上のバグがあり、「メインサイト」のパーマリンクの設定画面を変更すると「/blog」が付いて元にもどってしまいます。
(以下、参考)
これにはバグがあるっぽい。特権管理者ではなく、通常の「設定」にある「パーマリンク」には”blog”が残ってしまっており、このメニューからパーマリンクを変更すると、”blog”がまたパーマリンクに追加されてしまいます。
※「特権管理者」は「サイトネットワーク管理者」のことです。WordPressのバージョンによって名称が変わりました。
なので、「ネットワーク管理者」の方で一度設定したら、メインサイトの方のパーマリンクの設定画面は触らないでおきましょう。
マルチサイト化すると、プラグインは「サイトネットワーク」から追加する仕様になります。
ただ、各サイトの管理画面にも「プラグイン」メニューがあり、ここには基本的に上位のネットワークで【有効化されていないプラグイン】が表示されるので、各サイトの管理画面で、「どのプラグインが有効化されているのか」がチェックしづらくなります。
有名なプラグインでも、マルチサイトに対応しておらずうまく動作しないプラグインがあります。
【参考】WordPressで人気記事を表示させるプラグイン「Popular Posts」がマルチサイトで動作しない場合の対応方法|ふにろぐ
それらのプラグインを使いたい場合は、自力でカスタマイズする必要があります。
マルチサイトをやめてサイトを別々のWordpressにしたい時など、 データベースはひとつであるため、一括で記事をエクスポートするなどカンタンな引っ越し作業ができない場合があります。
場合によってはデータベースを直接編集したり、地道に手作業で記事を分けるなどの労力が必要になるかもしれません。
以上、さくらインターネットの共用サーバで、サブドメイン(マルチドメイン)型のマルチサイトを構築する方法をお伝えしました。
(マルチサイト化の注意点やデメリットも把握いただいた上で)マルチサイト構築の参考になれば幸いです。
View Comments
今まではサブディレクトリ型でしか構築したことが無かったので、是非参考にさせて頂こうかと思っています。
一つ伺いたいのですが、さくらサーバーでサブドメインでのマルチサイトを構築する場合、レンタルサーバ(プラン)側の制限でサブドメインを作ることができる数に制限があるようなので(さくらのサポートサイトで記載がありました:スタンダードプランは20個までだとか)
それ以上の子サイトを作りたい場合はあきらめてサブディレクトリ型にするしかないかと思ったのですが、その辺はご存じないでしょうか?
もしご存知でしたら教えて頂けると大変うれしいです。
よろしくお願いいたします!
>オカソンさん
コメントありがとうございます!
私はせいぜい数個しか作ったことがないので、リミットの20を超えたことはないのですが、恐らくそうなるかと思います!
ただ、さくらスタンダードは内部メモリがあまり多くないので、たくさんのサイトや記事をひとつのサーバで運用すると、500エラーも多くなりそうです。