WordPressのマルチサイト機能で複数のブログを管理する

ちょんまげ英語塾 > WEB制作TIPS > WordPressのマルチサイト機能で複数のブログを管理する

WordPress(ワードプレス)のマルチサイト機能とは

※WordPress の解説及びインストール方法については、WordPressをxreaにインストールするで解説していますので、まずはこちらをお読みください。

WordPress 3.0 から、いままで WordPress MU でのみ提供されていた一つの WordPress で複数のブログを管理する機能(マルチサイト機能)が統合されました。このページではデジロック社が運営している xrea や coreserver といったレンタルサーバにインストールされた WordPress でマルチサイト機能を使って複数のブログを管理・運営する方法を解説します。※他社のサーバを使ってる方へ

一言でマルチサイト機能と言ってもブログの公開URLの形式により以下の二つの方法がありますので、個別に解説していきます。

サブディレクトリ形式


http://example.com/blog1/
http://example.com/blog2/

サブドメイン形式


http://blog1.example.com/
http://blog2.example.com/

※注意

WordPress の設定ファイルである wp-config.php をローカルで編集する時は、Windows環境の場合「メモ帳」や「ワードパッド」は使わず、TeraPadサクラエディタなどのフリーの高機能エディタを使用して下さい。MacやUnix系OSの方はUTF-8を扱えるエディタならば問題ありません。

またこのページに出てくる example.com とはドメインの設定例です。すべてご自分のドメイン名に置き換えて入力や設定をしてください。

サブディレクトリ形式で複数のブログを管理する


http://example.com/
http://example.com/blog1/
http://example.com/blog2/

上記の例のような形で複数のブログを運用します。設定方法も簡単で、インストールした WordPress に少し設定をするだけでマルチサイト機能を使用する事ができます。

※既存の WordPress に公開済みの投稿がある場合はサブディレクトリ形式を選ぶ事はできません。その場合は投稿記事などの エクスポート/インポート や WordPress の再インストールを行う必要があります。

※※より正確には 2ヶ月以上前の日付の投稿がある場合はサブディレクトリ形式を選ぶ事ができない仕様になっています。ですから既存の記事の投稿日を一時的に書き換えるなどして制限を回避する事もできます。

マルチサイト機能を有効にする

まずはじめにサーバ上にある WordPress の 設定ファイルである、wp-config.php ファイルの適当な位置に以下の一行を追加してください。

define ('WP_ALLOW_MULTISITE', true);

マルチサイト機能有効化

私の場合は上の画像の様にデータベース設定と認証用ユニークキーの間に追加設定用のスペースを作って記入する様にしています。

これによりマルチサイト機能が有効になりますので、管理パネルのメニューから ツールネットワーク を選択します。

URL形式選択画面 サブディレクトリ

この時使用しているプラグインがある場合は、一度すべてのプラグインを無効化してください。

サブディレクトリ形式を選択して必要事項を記入し、インストールをクリックしてください。

ネットワーク有効化画面

するとマルチブログ機能の設定に必要な3つの作業が表示されますので、そのページを開いたままにしておいて順番に作業していきます。

まず 1番目の作業はインストールした WordPress の /wp-content ディレクトリの中に、新たに /blogs.dir というディレクトリを作成してください。※※3.5以降は仕様が変更となり、この作業に関する表示はされません。

blogs.dir 作成

ファイルマネージャーで見るとこんな感じです。

※モジュール版PHPで WordPress を運用している方は、上記の /blog.dir ディレクトリ及びその中に作成されるサイト毎のアップロードディレクトリ (例 /blog.dir/2/files) のパーミッションを 707 に設定して書き込み権限を与える必要があります。詳しくは WordPressをxreaにインストールする というページのセーフモード対策という項目で解説しています。

※※3.5からはメインサイトのアップロードディレクトリ (デフォルトは /wp-content/uploads/) の直下に /sites/2/ といった感じでサイト毎のアップロードディレクトリが作成される様に仕様が変更となりました。

2番目の作業は先ほど編集した wp-config.php をもう一度開き、先ほどのページの中ほどに表示された define( 'MULTISITE', true ); から始まる数行をコピーして、適当な場所にペーストします。

サブディレクトリ形式 wp-config.php 編集

こんな感じになります。example.com の部分はご自分のドメインになっていると思います。

3番目の作業は WordPress をインストールしたディレクトリの .htaccess ファイルに、先ほどのページの下部に表示された RewriteEngine On から始まる数行をコピーして、適当な場所にペーストします。.htaccess ファイルに他の WordPress の設定があれば、古い設定は削除してください。.htaccess ファイルが無い場合は新たに作成してください。

.htaccess 編集 サブディレクトリ形式

空の .htaccess にそのままペーストしただけですが、こんな感じです。

作業が終わった後で WordPress の管理パネルにアクセスするとログアウトされますので、再度ログインしてください。ログインに失敗する場合にはブラウザのクッキーを削除してから、もう一度ログインしてみてください。

新規ブログ追加

すると管理パネルのメニューの最上部に 特権管理者 という項目が追加されていますのでクリックし、次に サイト をクリックします。

※特権管理者の呼称は、WordPress 3.1 から ネットワーク管理者 (サイトネットワーク管理者) へと変更になりました。ネットワーク管理画面へ入るためのリンクが表示される場所も WordPress のバージョンによって違いますので適宜自分で対応してください。

ページ下部に表示される サイトを追加 の項目に必要事項を記入し、サイトを追加のボタンをクリックすれば新しいサイト(ブログ)を作成する事ができます。

サブディレクトリ形式で複数のブログを作成する解説はこれで終わりですが、特権管理者メニューの簡単な解説及びマルチサイト機能を使う場合の注意点も読んでいただければ幸いです。

サブドメイン形式で複数のブログを管理する

サブドメイン形式


http://example.com/
http://blog1.example.com/
http://blog2.example.com/

上記の例のような形で複数のブログを運用します。DNSやドメインウェブの設定など、ほんの少しですがサブディレクトリ形式よりも設定に手間がかかります。

DNSの設定

サブドメイン形式で公開する場合は、example.com のドメイン・サブドメインが全て同じサーバ上の同じ WordPress のディレクトリに転送される様に設定する必要があります。

まず WordPress を公開するドメインのDNS設定ですが、このページでは VALUE-DOMAIN での設定を例に説明をします。他社のネームサーバを利用されている方は適宜対応してください。

DNSの解説 for ビギナーというページでDNSについて簡単に解説しています。VALUE-DOMAIN以外のネームサーバを利用している方はこちらをご覧になって適宜ご自分の環境に合わせて対応して下さい。

※VALUE-DOMAINでドメインを管理していても他社のネームサーバを利用していると下記の設定例は使えません。特に一部のドメインは上位レジストラであるENOMのネームサーバに自動的に登録されている事があり、その場合はドメインの管理画面からネームサーバをVALUE-DOMAINのネームサーバに変更して下さい。

VALUE-DOMAIN の管理画面から DNSレコード/URL転送の変更 をクリックしてドメインを選択し、DNS設定を編集します。

DNS設定

そして以下の例の様に、Aレコードに *(ワイルドカード)を設定して保存し、ドメイン・サブドメインへのアクセスを全て同じサーバに向けてください。右側の数字はご自分のサーバのIPアドレスに置き換えて記入してください。


a * 192.0.2.0

上では設定の手間を省くためにワイルドカードを使っていますが、使用するドメイン・サブドメインに対して個別にAレコードを設定しても構いません。


a @ 192.0.2.0
a blog1 192.0.2.0
a blog2 192.0.2.0

 

ドメインウェブの設定

次にサーバ側のドメインウェブの設定をします。ドメインウェブの設定方法は既存の WordPress がインストールされている場所が、/public_html か、/public_html/example.com などのドメイン別のディレクトリかによって変わります。

 

では /public_html 直下に WordPress がインストールされている場合の設定から解説します。

ブラウザでサーバの管理画面にアクセスして、メニューからドメインウェブをクリックしてください。

ドメインウェブ設定01

そして一番上の Main の項目に example.com、Sub1 の項目に default.example.com と入力し、Sub1 の項目の右端にある NoDir というチェックボックスをチェックして、ドメイン設定ボタンをクリックして保存してください。

default.example.com と NoDir の設定をすると、CatchAll 機能により全てのサブドメインを Main(/public_html) に転送する事ができます。

 

次に /public_html/example.com などのドメイン別のディレクトリに WordPress がインストールされている場合の設定を解説します。

ブラウザでサーバの管理画面にアクセスして、メニューからドメインウェブをクリックしてください。

ドメインウェブ設定02

Sub*の項目のいずれかの場所にそれぞれ example.com、default.example.com と入力し、ドメイン設定ボタンをクリックして保存してください。こちらは NoDir のチェックをしないでください。

次に管理画面のメニューから、ドメインウェブの下にある同期設定をクリックしてください。

ドメインウェブ同期設定

そして ディレクトリ/public_html/ の部分に example.com と入力し、ドメイン設定(同期先) の部分では default.example.com を選択して同期させるをクリックして保存してください。

default.example.com の設定による CatchAll 機能とサーバ上に作成されるシンボリックリンクにより、全てのサブドメインを /public_html/example.com に転送する事ができます。なお設定の反映には少し時間がかかります。

 

マルチサイト機能を有効にする

ここからはサブディレクトリ形式の場合とほとんど変わりありませんが一応解説していきます。

まずはじめにサーバ上にある WordPress の 設定ファイルである、wp-config.php ファイルの適当な位置に以下の一行を追加してください。

define ('WP_ALLOW_MULTISITE', true);

マルチサイト機能有効化

私の場合は上の画像の様にデータベース設定と認証用ユニークキーの間に追加設定用のスペースを作って記入する様にしています。

これによりマルチサイト機能が有効になりますので、管理パネルのメニューから ツールネットワーク を選択します。

URL形式選択画面 サブドメイン

この時使用しているプラグインがある場合は、一度すべてのプラグインを無効化してください。

サブドメイン形式を選択して必要事項を記入し、インストールをクリックしてください。

※既存の WordPress に公開済みの投稿がある場合は自動的にサブドメイン形式が選択されます。

ネットワーク有効化画面

するとマルチブログ機能の設定に必要な3つの作業が表示されますので、そのページを開いたままにしておいて順番に作業していきます。

まず 1番目の作業はインストールした WordPress の /wp-content ディレクトリの中に、新たに /blogs.dir というディレクトリを作成してください。※※3.5以降は仕様が変更となり、この作業に関する表示はされません。

blogs.dir 作成

ファイルマネージャーで見るとこんな感じです。

※モジュール版PHPで WordPress を運用している方は、上記の /blog.dir ディレクトリ及びその中に作成されるサイト毎のアップロードディレクトリ (例 /blog.dir/2/files) のパーミッションを 707 に設定して書き込み権限を与える必要があります。詳しくは WordPressをxreaにインストールする というページのセーフモード対策という項目で解説しています。

※※3.5からはメインサイトのアップロードディレクトリ (デフォルトは /wp-content/uploads/) の直下に /sites/2/ といった感じでサイト毎のアップロードディレクトリが作成される様に仕様が変更となりました。

2番目の作業は先ほど編集した wp-config.php をもう一度開き、先ほどのページの中ほどに表示された define( 'MULTISITE', true ); から始まる数行をコピーして、適当な場所にペーストします。

サブドメイン形式 wp-config.php 編集

こんな感じになります。example.com の部分はご自分のドメインになっていると思います。

3番目の作業は WordPress をインストールしたディレクトリの .htaccess ファイルに、先ほどのページの下部に表示された RewriteEngine On から始まる数行をコピーして、適当な場所にペーストします。.htaccess ファイルに他の WordPress の設定があれば、古い設定は削除してください。.htaccess ファイルが無い場合は新たに作成してください。

.htaccess 編集 サブドメイン形式

空の .htaccess にそのままペーストしただけですが、こんな感じです。

作業が終わった後で WordPress の管理パネルにアクセスするとログアウトされますので、再度ログインしてください。ログインに失敗する場合にはブラウザのクッキーを削除してから、もう一度ログインしてみてください。

新規ブログ追加

すると管理パネルのメニューの最上部に 特権管理者 という項目が追加されていますのでクリックし、次にサイト をクリックします。

※特権管理者の呼称は、WordPress 3.1 から ネットワーク管理者 (サイトネットワーク管理者) へと変更になりました。ネットワーク管理画面へ入るためのリンクが表示される場所も WordPress のバージョンによって違いますので適宜自分で対応してください。

ページ下部に表示される サイトを追加 の項目に必要事項を記入し、サイトを追加のボタンをクリックすれば新しいサイト(ブログ)を作成する事ができます。

サブドメイン形式で複数のブログを作成する解説はこれで終わりですが、特権管理者メニューの簡単な解説及びマルチサイト機能を使う場合の注意点も読んでいただければ幸いです。

他社のサーバを使ってる方へ

このページは基本的に xrea と coreserver での設定方法を解説していますが、サブディレクトリ形式の場合の設定方法はアップロードディレクトリのパーミッションの設定を除いてほぼ同じだと思います。

サブドメイン形式の場合は上記に加えてサーバ側のドメイン受け入れの設定 (xrea ではドメインウェブ・一般的には バーチャルホスト など) が主な違いとなると思いますが、xrea や coreserver の様に管理画面からドメイン・サブドメインの詳細な設定ができないサーバでも、SSH や telnet.cgi などを利用して Unix コマンドが実行できるサーバならば、シンボリックリンクを作成してサブドメインへのアクセスを WordPress のインストールディレクトリに転送する事もできます。

もちろん xrea や coreserver よりも簡単に設定できてしまう可能性もありますので、サーバのヘルプやフォーラムをよく読んでみてください。

※但し .htaccess 及び mod_rewrite による、URLリライト機能が使えないサーバでは WordPress のマルチサイト機能は正しく動作しません。wp-config.php や .htaccess ファイルの編集はちゃんとできているのに、サブサイトや他のページにアクセスできないという方は、お使いのサーバで .htaccess 及び mod_rewrite が使えるかどうか確認してください。

特権管理者メニューの簡単な解説

※この項目に書かれているのは WordPress 3.0 での解説です。3.1 で管理画面に大幅な変更がありましたので参考程度にとどめて適宜対応してください。特権管理者も "ネットワーク管理者" と名称が変更となりました。ネットワーク管理画面に入るには、管理画面の右上に表示される "サイトネットワーク管理者" というリンクをクリックしてください。

※※ネットワーク管理画面へのリンクは 3.2 では "こんにちは、[ユーザ名] さん" と書かれたドロップダウンの下に移動されました。今後もバージョンアップ毎に細かな仕様が変更になる可能性がありますので柔軟に対応してください。

それではマルチサイト機能を有効にする事によって新たに追加される 特権管理者メニュー について簡単に解説していきます。なお特権管理者などのメニューをクリックした時に表示されるメニューのリストは Codex では サブパネル(※) と呼ばれているので、このページでもサブパネルと呼ぶ事にします。

※サブパネルの呼称は 3.2 から廃止となりました。

管理(ネーットワーク管理)

管理サブパネル

管理サブパネルではユーザーやサイトを検索する事ができます。xrea や coreserver においては検索機能を必要とするほどユーザーやサイトを追加する事はないと思われますので、あまり使わないサブパネルだと思います。

サイト

サイト・サブパネル

サイト・サブパネルでは作成されたサイトの一覧が表示されて、各サイトの設定を変更したり、サイトの管理パネルにアクセスしたりできます。また新しいサイトの追加もここで行います。

各サイトの上にマウスを置くと表示されるメニューの内、編集 をクリックするとそのサイトに関連する設定を一括で行う事ができます。また 管理パネル をクリックするとそのサイトの管理パネルにアクセスする事ができます。停止 をするとそのサイトは一時的に公開停止となり、特権管理者以外はサイトを閲覧したり管理パネルにアクセスできなくなります。アーカイブ化スパム を設定しても同じ状態となり、これら3つの違いは今のところ私には解りません。削除 はサイトを削除する時に使い、表示 はサイトを表示するリンクです。

ユーザー

ユーザー・サブパネル

ユーザー・サブパネルではユーザーの一覧が表示されて、各ユーザーの設定を変更したり、新しいユーザーを追加する事ができます。

ユーザーには権限に応じて、ネットワーク全体を管理する 特権管理者 と個別のサイトを管理する 管理者 の他に、それぞれ細かく権限の分かれた 編集者投稿者寄稿者購読者 があります。これらの権限はサイト毎に設定する事ができる様になっていますが、個別のサイトに対するユーザーの権限を設定する場合はこのサブパネルからではなく、サイト・サブパネルから 編集 をクリックして表示されるページで行った方が混乱を避ける事ができると思います。

テーマ(ネットワークのテーマ)

テーマ・サブパネル

テーマ・サブパネルではインストールされているテーマ毎にネットワークのユーザーに使用を許可するか否かを選択できます。このサブパネルで他のユーザーが使用中のテーマを無効化した場合には、ユーザーが他のテーマを選択するまでそのまま使用されます。

設定(ネットワークのオプション)

設定サブパネル

設定サブパネルではネットワーク全体の設定を変更できます。ネットワークの名称や管理者のメールアドレスの変更、自分のサイトを持たないユーザーのダッシュボードの設定、ユーザー登録に関する設定や、ユーザーのアップロードメディアやアップロードディレクトリの容量に関する設定、初期設定の言語、ユーザーのプラグインの管理メニューを有効化する設定が行えます。

プラグインについて少し解説すると、マルチサイト機能を使用している時にはプラグインのインストールは特権管理者以外は行えません。特権管理者は管理パネルのプラグインメニューから個別のサイトに対するプラグインの有効化・無効化を行える他に、ネットワーク全体のサイトに対するプラグインの有効化・無効化を行う事ができます。デフォルトの状態ではその他のユーザーはプラグインに関する設定を行う事ができませんが、ここでプラグインの管理メニューを有効化する設定を行うと、インストールされているプラグインの中で特権管理者がネットワークに対して有効化していないプラグインを個別に有効化・無効化をする事ができるようになります。

更新(ネットワークを更新)

更新サブパネル

更新サブパネルは WordPress のコアファイルをアップデートした時に、データベース情報の更新をサイト5つ毎に順次行うために使用します。更新作業をする前にはデータベースのバックアップを取っておいた方が良いでしょう。

マルチサイト機能を使う場合の注意点

WordPress のマルチサイト機能を使うと WordPress.com や他のレンタルブログの様にWEB上で利用者を募集し、他人にブログを貸し出して使用させる事ができますが、不特定多数の人間にサーバスペースを貸し出す行為は xrea や coreserver では認められていません。どうしてもやりたい場合は不特定多数への再販が許可されている専用サーバなどを利用してください。

なお家族・知人・友人などの限られた範囲での貸し出しは可能ですが、それらの人々へのサポートやそれらの人々が起こした問題には、管理者として責任を持って自分が対処する必要がある事を承知した上で貸し出しを行ってください。

※サーバスペースやCMSの不特定多数への貸し出しについては、サポート掲示板にデジロック社(webmaster)の公式見解が掲載されていますのでご自分で確認してください。

 

以上で WordPress のマルチサイト機能を使って複数のブログを管理する方法の解説は終わりです。お疲れ様でした。

▲Page Top