この記事は最終更新日から2年以上経過しており、内容が古くなっている可能性があります。
ご理解の上、記事を閲覧いただければと思います。
今回は、さくらインターネットの共有サーバで、WordPressの「サブドメイン(マルチドメイン)型」のマルチサイトを構築する方法を紹介します。
WordPressのマルチサイトとは
WordPressには、一度のインストールで複数のサイト・ブログを運用することができる「マルチサイト」という機能があります。
マルチサイトには、「サブディレクトリ型」と、「サブドメイン(マルチドメイン)型」の2つのタイプがあり、URLの一例を示すと以下のようになります。
- サブディレクトリ型の場合、以下URLのサイトを1つのWordPressで運用できる
-
- https://web-generalist.com/
- https://web-generalist.com/blog/
- サブドメイン(マルチドメイン)型の場合、以下URLのサイトを1つのWordPressで運用できる
-
- https://web-generalist.com/
- https://blog.web-generalist.com/
- https://web-g.com/
それぞれ、管理画面やユーザーなども別々に作成でき、あたかも複数のWordPressをインストールしているかのように運用できます。
ただし、共有レンタルサーバの場合は、共有サーバの制約上サブドメイン(マルチドメイン)型は構築できないことが多いです。
しかし、さくらインターネットの共有サーバ(スタンダード以上)では、「WordPress MU Domain Mapping」というプラグインを使うことで、サブドメイン(マルチドメイン)型のマルチサイト構築が可能です。
ということで、この記事では「WordPress MU Domain Mapping」プラグインを使い、さくらインターネットの共有サーバでサブドメイン(マルチドメイン)型WordPressのマルチサイト構築する手順を説明します。
※ただし、マルチサイト化には注意点やデメリットもありますので安易なオススメはしません。
注意点やデメリットについては最後に紹介しています。
マルチサイト化の手順
1. WordPressのインストール場所とプラグインの無効化
- サーバーのルート(さくらの場合「/home/*****/www」)にWordPress本体をインストール
- すべてのプラグインは無効化しておく
※WordPressの画面はバージョン3.7で説明しています。
2. WordPressのマルチサイト設定をする
-
WordPressフォルダ内にある「wp-config.php」ファイルに以下記述を追記します。
(コメントの記載については入れなくてもかまいません)/* マルチサイト化 */ define('WP_ALLOW_MULTISITE', true);
- 上記を記載した「wp-config.php」をアップロードし、WordPressの管理画面を表示するメニュー「ツール」に「ネットワークの設置」が表示されることを確認します。
- 「ネットワークの設置」クリック後、表示された画面で「サブドメイン」を選択、ネットワークのタイトルと管理者のメールアドレスを記入し「インストール」をクリック。
- (※WordPressのバージョン3.4以前の場合のみ)WordPressの「wp-content」フォルダの中に「blogs.dir」フォルダを作成します。
※3.5からはメインサイトのアップロードディレクトリ (デフォルトは /wp-content/uploads/) の直下に /sites/2/ といった感じでサイト毎のアップロードディレクトリが作成される様に仕様が変更となりました。
- 続いて、画面に表示されている内容を「wp-config.php」に追記します。
- 同様に、画面に表示されている内容をWordPressを設置した階層(ディレクトリ)にある「.htaccess」に追記します。
※「wp-config.php」「.htaccess」の書き換えを失敗するとサイトが表示されなくったりします。
それぞれ必ずバックアップをとって作業するようにしてください。 - 上記の作業を終えたら、再度WordPressにログインします。
すると、ダッシュボード画面上部に「サイトネットワーク管理者」という項目が追加されていますので、ダッシュボードをクリック。
-
「サイト」→「新規追加」をクリックすると、以下の画像のように「****.jp/」のドメイン名の後にディレクトリ名を入れる「サブディレクトリ」形式になっています。
「作りたいのはサブディレクトリ型じゃなくてサブドメイン(マルチドメイン)型だ・・・!」と、思うかもしれませんが、ひとまずはこれで大丈夫です。
「サイトのアドレス」が空欄だと進めませんので、ひとまず適当に入力し「サイトを追加」しておきます。
3. さくらサーバのコントロールパネルでマルチドメインの設定をする
ここで、マルチドメイン型で運用したい「独自ドメイン」をさくらサーバのコントロールパネルで追加します。
-
下記のように「ドメイン詳細設定」から「wwwを付与せずマルチドメインとして使用する(上級者向け)」を選択し、 「指定フォルダ」を「/」のみの記載にしておきます。
-
ドメイン一覧で、メインのドメインとサブドメインが同じパスになっていることを確認します。
4. WordPress MU Domain Mappingプラグインをインストールして設定する
- 続いて、マルチドメイン化のキモとなる「WordPress MU Domain Mapping」プラグインを 「サイトネットワーク管理者」の画面からインストールします。
-
プラグインをインストール後、「設定」→「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に追記してください。」と表示されていますので、両方の作業を行いましょう。
- 「sunrise.php」をwp-contentディレクトリにコピーした後、 「wp-config.php」の「/*編集が必要なのはここまでです*/」の行の上辺りに下記を追加します。
define( 'SUNRISE', 'on' );
- Domain Mappingの画面をリロードし、下記の画面が表示されれば成功です。
-
続いて、「設定」→「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になりますが、サイトを消去すると永久欠番になります。 - ドメインが追加されると、下記の画面になります。
- 最後に、WordPressメニューの「サイト」→「すべてのサイト」から、追加したドメインの設定を編集します。
プラグイン導入前は、サブディレクトリ型でしか入力できなかったのですが、以下のようにサブドメイン(マルチドメイン)型に変更できるようになっていますので、任意のサブドメインを入力して「変更を保存」をクリックします。
以上で設定は完了です。
それぞれのサイトのドメイン以下に「/wp-login.php」のURLをつけてアクセスすることでWordPressの管理画面へログインできるようになります。
マルチドメイン化の注意点とデメリット
マルチドメイン化には、以下の注意点やデメリットがあるので、事前に把握した上で、マルチドメインを構築するかを検討しましょう。
マルチドメイン化の注意点
- 【注意点1】メインサイトのパーマリンク設定が、「デフォルト」以外の場合、「/blog」が付与されて変わってしまう
-
図にすると下記のようになります。
これは、運営上はとくに問題ないのですが画面表示上のバグがあり、「メインサイト」のパーマリンクの設定画面を変更すると「/blog」が付いて元にもどってしまいます。
(以下、参考)これにはバグがあるっぽい。特権管理者ではなく、通常の「設定」にある「パーマリンク」には”blog”が残ってしまっており、このメニューからパーマリンクを変更すると、”blog”がまたパーマリンクに追加されてしまいます。
※「特権管理者」は「サイトネットワーク管理者」のことです。WordPressのバージョンによって名称が変わりました。
- 【注意点2】マルチサイトのプラグインは、「サイトネットワーク」から追加する
-
マルチサイト化すると、プラグインは「サイトネットワーク」から追加する仕様になります。
ただ、各サイトの管理画面にも「プラグイン」メニューがあり、ここには基本的に上位のネットワークで【有効化されていないプラグイン】が表示されるので、各サイトの管理画面で、「どのプラグインが有効化されているのか」がチェックしづらくなります。
なので、「ネットワーク管理者」の方で一度設定したら、メインサイトの方のパーマリンクの設定画面は触らないでおきましょう。
マルチドメイン化のデメリット
- 【デメリット1】マルチサイトに対応していないプラグインがある
-
有名なプラグインでも、マルチサイトに対応しておらずうまく動作しないプラグインがあります。
【参考】WordPressで人気記事を表示させるプラグイン「Popular Posts」がマルチサイトで動作しない場合の対応方法|ふにろぐそれらのプラグインを使いたい場合は、自力でカスタマイズする必要があります。
- 【デメリット2】サイト引っ越しの際などに手間がかかる
-
マルチサイトをやめてサイトを別々のWordpressにしたい時など、 データベースはひとつであるため、一括で記事をエクスポートするなどカンタンな引っ越し作業ができない場合があります。
場合によってはデータベースを直接編集したり、地道に手作業で記事を分けるなどの労力が必要になるかもしれません。
以上、さくらインターネットの共用サーバで、サブドメイン(マルチドメイン)型のマルチサイトを構築する方法をお伝えしました。
(マルチサイト化の注意点やデメリットも把握いただいた上で)マルチサイト構築の参考になれば幸いです。
今まではサブディレクトリ型でしか構築したことが無かったので、是非参考にさせて頂こうかと思っています。
一つ伺いたいのですが、さくらサーバーでサブドメインでのマルチサイトを構築する場合、レンタルサーバ(プラン)側の制限でサブドメインを作ることができる数に制限があるようなので(さくらのサポートサイトで記載がありました:スタンダードプランは20個までだとか)
それ以上の子サイトを作りたい場合はあきらめてサブディレクトリ型にするしかないかと思ったのですが、その辺はご存じないでしょうか?
もしご存知でしたら教えて頂けると大変うれしいです。
よろしくお願いいたします!
>オカソンさん
コメントありがとうございます!
私はせいぜい数個しか作ったことがないので、リミットの20を超えたことはないのですが、恐らくそうなるかと思います!
ただ、さくらスタンダードは内部メモリがあまり多くないので、たくさんのサイトや記事をひとつのサーバで運用すると、500エラーも多くなりそうです。