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

WordPressではマルチサイト機能を利用することで複数のブログを構築することができます。デフォルトではマルチサイト機能は有効になっておらず、WordPressの設定ファイルwp-config.phpの編集を行ってマルチサイト機能を有効にする必要があります。
以下、Windowsのローカル環境のXAMPPでマルチサイトを構築する方法について解説します。マルチサイト機能に関する詳細情報は公式マニュアルを参照してください。

Create A Network « WordPress Codex
[URL] http://codex.wordpress.org/Create_A_Network

  • 2012/03/03: サブドメインに関して追記.
  • 2012/02/18: 追記.
  • 2012/02/15: 公開.

設定ファイルwp-config.phpを編集する

UTF-8の保存形式には、BOMありとBOMなしが存在します。BOMとはByte Order Markのことで、ファイルがどのような文字コードで記述されているのかを示すための目印に使用されます。Windowsのメモ帳ではUTF-8形式のファイルを保存する際に自動的にBOMを付けます。UTF-8(BOMなし)の保存が可能なフリーのエディタには、MeryサクラエディタURL変更のお知らせなどがあります。ファイルの編集はそれらのエディタで行い、日本語を書く場合は必ずUTF-8(BOMなし)で保存してください。なお、UTF-8(BOMなし)をUTF-8Nと表記しているWebサイトもありますが、そのような表記は一般的ではありません。UTF-8Nが出てきてもそれは説明の便宜上使用しているだけであり、何の説明もなしにUTF-8Nだけ書いても意味が通じない(UTF-8Nという形式は存在しない)ので、当たり前のようには使用しないようにしましょう。

WordPressのマルチサイト機能を有効にするため、設定ファイルであるwp-config.phpUTF-8(BOMなし)で保存が可能なエディタで開いてください。ただし、Windowsのメモ帳はBOMなしで保存することができないので使用しないでください。


<<大きい画像はこちら>>


wp-config.phpファイル内の「編集が必要なのはここまで〜」の上あたりに次の記述を追加して、マルチサイト機能の使用を許可します。


<<大きい画像はこちら>>

define('WP_ALLOW_MULTISITE', true);

WordPressサイトのネットワークを作成する

変更を行った設定ファイルwp-config.phpUTF-8(BOMなし)で保存後、管理画面にログインしてください。すでにログインしている場合は再読み込みを行ってください。すると「ツール」メニューに「ネットワークの設定」という項目が現れるので、それをクリックします。


<<大きい画像はこちら>>

サブディレクトリ形式でインストールする

サブドメイン形式でWordPressを利用するには、mod_rewriteモジュールが必要ですが、その他に必要な機能はありません。また、localhostでインストールを行った場合は、サブディレクトリ形式以外は選択できません。サブドメイン形式についてはサブドメイン形式でインストールするをご覧ください。
サイトのネットワークを構築するための必要事項を入力してください。


<<大きい画像はこちら>>

項目 説明
ネットワークのタイトル ネットワークのタイトルです
管理者のメールアドレス ネットワークを管理する権限を持つ特権管理者のメールアドレスです


WordPressの指示に従い、ディレクトリの作成やファイルの編集を行います。


<<大きい画像はこちら>>

  1. wp-contentにblogs.dirディレクトリを作成
  2. wp-config.phpファイルの編集
  3. .htaccessファイルの編集

上記の3つの操作を行った後に、再度WordPressにログインしてください。なお、.htaccessファイルはWindowsで作成しようとするとエラーになることがあります。その場合はWindowsで.htaccessを作成する方法をご覧ください。

(1)のblogs.dirディレクトリの作成は、以下のようになります。


<<大きい画像はこちら>>


(2)のwp-config.phpファイルの編集は、以下のようになります。


<<大きい画像はこちら>>

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', false );
$base = '/wordpress/';
define( 'DOMAIN_CURRENT_SITE', 'localhost' );
define( 'PATH_CURRENT_SITE', '/wordpress/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );


(3)の.htaccessファイルの編集は、以下のようになります。


<<大きい画像はこちら>>

RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [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).*) $1 [L]
RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
RewriteRule . index.php [L]

以上でマルチサイトを管理できるネットワークの作成が完了しました。これでひとつのWordPressでもネットワーク管理画面から複数のサイトやユーザーを管理することができます。

WordPress v3.3では、管理画面上部にネットワーク管理画面へのリンクが表示されます。ネットワーク管理画面に移動するには、「サイトネットワーク管理者」をクリックしてください。


<<大きい画像はこちら>>

サブドメイン形式でインストールする

サブドメイン形式でWordPressを利用するには、Apachehttpd.confファイルとWindowsのhostsファイルを編集する必要があります。サブディレクトリ形式についてはサブディレクトリ形式でインストールするをご覧ください。

設定ファイルhttpd.confを編集する

Apacheの設定ファイルを変更して、バーチャルホスト機能を有効にします。バーチャルホストに関する設定ファイルhttpd-vhosts.confを開いてください。XAMPPの場合、C:\xampp\apache\conf\extra\にあります。このディレクトリにある設定ファイルは、httpd.confを分割した外部ファイルで、Apache起動時にhttpd.confに書かれたIncludeディレクティブによって自動的に読み込まれます。

# Virtual hosts
Include "conf/extra/httpd-vhosts.conf"


<<大きい画像はこちら>>


httpd-vhosts.confファイルを開いたら、末尾に次の文を追記してください。


<<大きい画像はこちら>>

NameVirtualHost *:80

<VirtualHost *:80>
    DocumentRoot "/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/xampp/htdocs/wordpress"
    ServerName localhost.localdomain
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "/xampp/htdocs/wordpress"
    ServerName blog1.localhost.localdomain
</VirtualHost>

バーチャルホストの例 - Apache HTTP サーバ バージョン 2.2
[URL] http://httpd.apache.org/docs/2.2/ja/vhosts/examples.html

Windowsのhostsファイルを編集する

Apacheの設定ファイルに追記したドメイン名とIPアドレスを対応付けます。DNS(Domain Name System)を用いずに名前解決(name resolution)を行うため、hostsファイルを開いて編集します。Windowsの場合はC:\WINDOWS\system32\drivers\etc\にあります。


<<大きい画像はこちら>>


hostsファイルを開いたら、末尾に次の文を追記してください。


<<大きい画像はこちら>>

127.0.0.1       localhost.localdomain
127.0.0.1       blog1.localhost.localdomain
アドレスを変更する

WordPressをインストールするでインストールを行うとlocalhostになっていると思います。ただ、localhostのままだとサブディレクトリ形式しか選択できません。サブドメイン形式を有効にするため、localhost.localdomainに変更します。なお、localhost.localdomainから新たにWordPressのインストールを行う場合は、このアドレスの変更操作は必要ありません。


WordPressにログインし、左側にある「設定」メニューから「一般」を選択してしてください。

そして、「WordPressアドレス(URL)」「サイトアドレス(URL)」の2つをlocalhost/wordpressからlocalhost.localdomainに変更して保存します。

変更後は次のアドレスからログインしてください。

http://localhost.localdomain/wp-login.php



http://localhost/wordpresshttp://localhost.localdomain


<<大きい画像はこちら>>


もし外部のサーバー上で動いている場合に安易に変更を行うとWebブラウザからログインできなくなり、WordPressの設定ファイルwp-config.phpを直接変更する必要が出てくる可能性があるのでご注意ください。また、片一方のアドレスだけを変更して、ネットワークを作成しようとした場合は次のようなメッセージが表示されます。


<<大きい画像はこちら>>

ネットワークを作成する

以上でサブドメインの構築の準備が整いました。次はいよいよネットワークを作成します。サイトのネットワークを構築するための必要事項を入力してください。


<<大きい画像はこちら>>

項目 説明
ネットワーク内のサイトアドレス サブドメイン、サブディレクトリのどちらかを選択できます
ネットワークのタイトル ネットワークのタイトルです
管理者のメールアドレス ネットワークを管理する権限を持つ特権管理者のメールアドレスです


WordPressの指示に従い、ディレクトリの作成やファイルの編集を行います。


<<大きい画像はこちら>>

  1. wp-contentにblogs.dirディレクトリを作成
  2. wp-config.phpファイルの編集
  3. .htaccessファイルの編集

上記の3つの操作を行った後に、再度WordPressにログインしてください。なお、.htaccessファイルはWindowsで作成しようとするとエラーになることがあります。その場合はWindowsで.htaccessを作成する方法をご覧ください。

(1)のblogs.dirディレクトリの作成は、以下のようになります。


<<大きい画像はこちら>>


(2)のwp-config.phpファイルの編集は、以下のようになります。

<<大きい画像はこちら>>

define( 'MULTISITE', true );
define( 'SUBDOMAIN_INSTALL', true );
$base = '/';
define( 'DOMAIN_CURRENT_SITE', 'localhost.localdomain' );
define( 'PATH_CURRENT_SITE', '/' );
define( 'SITE_ID_CURRENT_SITE', 1 );
define( 'BLOG_ID_CURRENT_SITE', 1 );


(3)の.htaccessファイルの編集は、以下のようになります。


<<大きい画像はこちら>>

RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]

# uploaded files
RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule . index.php [L]

以上でマルチサイトを管理できるネットワークの作成が完了しました。これでひとつのWordPressでもネットワーク管理画面から複数のサイトやユーザーを管理することができます。

WordPress v3.3では、管理画面上部にネットワーク管理画面へのリンクが表示されます。ネットワーク管理画面に移動するには、「サイトネットワーク管理者」をクリックしてください。


<<大きい画像はこちら>>

新規サイトを追加する

Apacheの設定ファイルとWindowsのhostsファイルに記載したblog1.localhost.localdomainを用いて新たにサイトを作成するには次のようにします。


<<大きい画像はこちら>>

項目 入力内容
サイトのアドレス blog1

サイトのアドレスにblog1を入力し、blog1.localhost.localdomainになるように設定します。これ以外の項目は何を入力しても構いません。

Windows.htaccessファイルを作成する

Windowsで単純に名前を変更しようとしても.htaccessファイルを作ることができません。

ここでは.htaccessファイルを作成する方法を2つ紹介します。

メモ帳でファイル名を指定して保存する

Windowsのメモ帳を開きます。「ファイル」メニューの「名前を付けて保存」から、ファイル名に「.htaccess」、ファイルの種類に「すべてのファイル」、文字コードに「ANSI」を選択して、保存してください。


<<大きい画像はこちら>>

既存のファイルをコピーする

XAMPPのhtdocsのforbiddenフォルダに存在する.htaccessファイルをwordpress側にコピーします。その後、コピーしたファイルをエディタで開き、元の記載されている内容をすべて削除し、新しい内容を記述して保存してください。


<<大きい画像はこちら>>

おわりに

WordPress v3.0からWordPress MU(Multi-User)のマルチサイト機能が取り込まれ、別のブログを立ち上げる際にこれまで必要であったWordPressのコピーをすることなく、ひとつのWordPressで複数のブログを構築できるようになりました。v3.3ではさらに磨きがかかっています。