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.phpをUTF-8(BOMなし)で保存が可能なエディタで開いてください。ただし、Windowsのメモ帳はBOMなしで保存することができないので使用しないでください。
wp-config.phpファイル内の「編集が必要なのはここまで〜」の上あたりに次の記述を追加して、マルチサイト機能の使用を許可します。
define('WP_ALLOW_MULTISITE', true);
WordPressサイトのネットワークを作成する
変更を行った設定ファイルwp-config.phpをUTF-8(BOMなし)で保存後、管理画面にログインしてください。すでにログインしている場合は再読み込みを行ってください。すると「ツール」メニューに「ネットワークの設定」という項目が現れるので、それをクリックします。
サブディレクトリ形式でインストールする
サブドメイン形式でWordPressを利用するには、mod_rewriteモジュールが必要ですが、その他に必要な機能はありません。また、localhostでインストールを行った場合は、サブディレクトリ形式以外は選択できません。サブドメイン形式についてはサブドメイン形式でインストールするをご覧ください。
サイトのネットワークを構築するための必要事項を入力してください。
項目 | 説明 |
---|---|
ネットワークのタイトル | ネットワークのタイトルです |
管理者のメールアドレス | ネットワークを管理する権限を持つ特権管理者のメールアドレスです |
WordPressの指示に従い、ディレクトリの作成やファイルの編集を行います。
上記の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を利用するには、Apacheのhttpd.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/wordpress ↓ http://localhost.localdomain
もし外部のサーバー上で動いている場合に安易に変更を行うとWebブラウザからログインできなくなり、WordPressの設定ファイルwp-config.phpを直接変更する必要が出てくる可能性があるのでご注意ください。また、片一方のアドレスだけを変更して、ネットワークを作成しようとした場合は次のようなメッセージが表示されます。
ネットワークを作成する
以上でサブドメインの構築の準備が整いました。次はいよいよネットワークを作成します。サイトのネットワークを構築するための必要事項を入力してください。
項目 | 説明 |
---|---|
ネットワーク内のサイトアドレス | サブドメイン、サブディレクトリのどちらかを選択できます |
ネットワークのタイトル | ネットワークのタイトルです |
管理者のメールアドレス | ネットワークを管理する権限を持つ特権管理者のメールアドレスです |
WordPressの指示に従い、ディレクトリの作成やファイルの編集を行います。
上記の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では、管理画面上部にネットワーク管理画面へのリンクが表示されます。ネットワーク管理画面に移動するには、「サイトネットワーク管理者」をクリックしてください。
Windowsで.htaccessファイルを作成する
Windowsで単純に名前を変更しようとしても.htaccessファイルを作ることができません。
ここでは.htaccessファイルを作成する方法を2つ紹介します。
メモ帳でファイル名を指定して保存する
Windowsのメモ帳を開きます。「ファイル」メニューの「名前を付けて保存」から、ファイル名に「.htaccess」、ファイルの種類に「すべてのファイル」、文字コードに「ANSI」を選択して、保存してください。
おわりに
WordPress v3.0からWordPress MU(Multi-User)のマルチサイト機能が取り込まれ、別のブログを立ち上げる際にこれまで必要であったWordPressのコピーをすることなく、ひとつのWordPressで複数のブログを構築できるようになりました。v3.3ではさらに磨きがかかっています。