久しぶりのWordpressネタ。
WordPressをサブディレクトリやサブドメインで複数のサイトを運用できるマルチサイト化ってのは知ってたけど、さらにそれを複数のドメインに渡って運用できるってのを少し前に知った。
そんなわけでWordPressのマルチサイト化について少しまとめてみようと思う。
目次
WordPressマルチサイト化とは
通常WordPressを利用する場合、一つのサイトにWordPressのシステムを一つインストールするイメージだが、マルチサイト化の機能を使えば一つのシステムで簡単に複数の異なるサイトを作成できる。
これにより、プラグインの一括管理やシステムコアやセキュリティのアップデートも簡単に一括管理できる。
通常のマルチサイト
通常のマルチサイト化はこの2つがある。
- サブディレクトリ型
- www.sample.com/blog-a/
- www.sample.com/blog-b/
- サブドメイン型
- blog-a.sample.com
- blog-b.sample.com
複数ドメイン
そんで複数ドメインはこんな感じで、WordPressのシステム一つで複数ドメインにまたがった運用が可能となる。
- www.main.com
- multi.sub.com
そんなわけで手順を覚書として記しておこうと思う。
なお、手順はWordPress4.1で行っているが、WordPress3.0以降であればほぼ同じ手順で行える。
使用しているレンタルサーバー
今回の手順は下記のサーバーでの手順となっているので、レンタルサーバーによって設定が少し異なる。
もちろん、やる前にDB、画像データやテーマ、プラグインのバックアップは忘れずに取っておこう。
マルチサイト化手順
wp-config.phpをダウンロードして修正
まずは、「www.main.com」の直下にあるファイル「wp-config.php」をFTPなどでダウンロードして、下記の箇所に「define(‘WP_ALLOW_MULTISITE’, true);」を追記して再度アップロードして上書き。
//wp-config.php
define('WP_DEBUG', false);
//▼追記▼
define('WP_ALLOW_MULTISITE', true);
プラグインの停止
作業を開始する前にメインサイト(www.main.com)の管理画面でプラグインは全て停止しておこう。
ネットワークの設置
続いては、ネットワークの設置だ。
「ツール」、「ネットワークの設置」とアクセスして「サブドメイン」、「ネットワークタイトル」、「ネットワーク管理者のメールアドレス」を確認したらインストールをポチっと。
変更ができないので、間違えないように。
wp-config.phpと.htaccessのファイルを追記修正
インストールが完了したらwp-confing.phpと.htaccessファイルの修正を指示されるので、それの修正。
「define(‘DOMAIN_CURRENT_SITE’, ‘main.com’);」ここの箇所はサイトによって異なるので、管理画面のをコピーすることをお薦め。
//wp-config.php
define('WP_DEBUG', false);
define('WP_ALLOW_MULTISITE', true);
//▼追記▼
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'main.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
同様に「www.main.com」直下の.htaccessファイルをダウンロードし、テキストエディタで開いて下記の内容に丸ごと書き換えて保存。
そしたらサーバーに再度アップロードして上書き。
# .htaccess
# 全て書き換える
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
# add a trailing slash to /wp-admin
RewriteRule ^wp-admin$ wp-admin/ [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(wp-(content|admin|includes).*) $1 [L]
RewriteRule ^(.*\.php)$ $1 [L]
RewriteRule . index.php [L]
再ログイン
wp-config.phpと.htaccessのファイルを上書いたら、一旦、www.main.comのサイトをログアウトして再ログイン。
これでサイト追加の準備ができたので、次は用途別に複数ドメイン追加の方法を紹介。
サブドメインサイトの追加
ここでの設定イメージははこんな感じ。
●www.main.com(メインサイト)
└予めWordPressをインストールしている
●sub.main.com(サブドメインサイト)
└このドメインをマルチサイト化して利用する
無事に再ログインできたら、サンプルでサブドメインサイトを追加してみよう。
管理画面の左上に「参加サイト」ってのが追加されており、プルダウンメニューで「ネットワーク管理者」、「ダッシュボード」とアクセス。
続いては「サイト」、「新規追加」とアクセスし、「サイトのアドレス」、「サイトのタイトル」、「管理者メールアドレス」に必要事項を入力して「サイトを追加」。
「サイトのアドレス」は、例えば「sub.main.com」と追加したい場合には「sub」と入力するだけでOK。
ドメインウェブ設定
VALUE SERVERの管理画面。
「ドメインの利用」、「ドメインウェブの設定」とアクセスしてサブドメインを追加しておく。
シンボリックリンクの作成
続いては、シンボリックリンクの作成で一通りの設定は終わりだが、VALUE SERVERの管理画面から「ドメインの利用」、「データの同期設定」とアクセスし、ドメイン設定(同期元)とドメイン設定(同期先)を設定をすることもできるが、うまくいかなかったりするのでSSHでシンボリックリンクを作成するのが一番スムーズに進む。
SSHでアクセスしたらこのコマンド。
ln -s www.main.com sub.main.com
ここまでは同一のドメインでの設定について見てみたが、次は複数ドメインをまたがった設定を見てみようと思う。
異なる複数ドメイン運用のための設定
続いては、異なる複数ドメイン運用のための設定手順。
●www.main.com(メインサイト)
└予めWordPressをインストールしている
●multi.another.com(別ドメインサイト)
└このドメインをマルチサイト化して利用する
WordPress MU Domain Mappingっていうプラグインをインストール。
プラグインのインストールは、ネットワーク管理者のメニューからインストール、有効化する必要がある。
「参加サイト」、「プラグイン」、「新規追加」とアクセスして、「WordPress MU Domain Mapping」を検索してインストール。
インストールしたら「ネットワークで有効化」しておく。なお、プラグインによっては「ネットワークで有効化」で動かない場合があるので、その場合には個別サイトのプラグイン管理画面で有効化してやる必要がある。
sunrise.phpファイルのコピー
そうするとネットワーク管理画面の「設定」、「Domain Mapping」にアクセスするとこんなメーッセージが表示される。
Please copy sunrise.php to /wp-content/sunrise.php and ensure the SUNRISE definition is in /wp-config.php
そしたら、このファイルをダウンロードして、
/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php
ここにアップロードしておく。
/wp-content/
そんで、さらにwp-config.phpファイルに「define( ‘SUNRISE’, ‘on’ );」を追記して上書き。
//wp-config.php
define('WP_DEBUG', false);
define('WP_ALLOW_MULTISITE', true);
define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'main.com');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);
//▼追記▼
define( 'SUNRISE', 'on' );
サイトの追加
先ほどのサブドメインと同じように「multi」で追加しておく。
追加したら追加したサイトのIDを覚えておこう。
デフォルトなら「www.main.com」のIDは1、先ほどの「sub.main.com」のIDは2、今回のは3と順番に追加されるはずだ。IDを確認するには、「サイトネットワーク管理者」、「サイト」とアクセスして「編集」をマウスオーバーするとこんな風に表示される。
/wp-admin/network/site-info.php?id=3
そしたら、「設定」、「Domains」とアクセスして、先ほどのサイトID、Domainと入力して保存。
そんで、VALUE SERVERの管理画面。
「ドメインの利用」、「ドメインウェブの設定」とアクセスしてサブドメインを追加しておく。
最後にSSHでアクセスしてコマンドをポン。
データの同期設定でやると何故かデータが吹っ飛んだりしたので、SSHがお薦め。
ln -s www.sample.com mulit.another.com