テック・ガジェット・写真とか

WordPressマルチサイト化で異なる複数ドメインを設定する方法

久しぶりのWordpressネタ。

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);」を追記して再度アップロードして上書き。

Copy
//wp-config.php
define('WP_DEBUG', false);
//▼追記▼
define('WP_ALLOW_MULTISITE', true);

プラグインの停止

作業を開始する前にメインサイト(www.main.com)の管理画面でプラグインは全て停止しておこう。

ネットワークの設置

続いては、ネットワークの設置だ。

「ツール」、「ネットワークの設置」とアクセスして「サブドメイン」、「ネットワークタイトル」、「ネットワーク管理者のメールアドレス」を確認したらインストールをポチっと。

変更ができないので、間違えないように。

WordPressマルチサイト化

wp-config.phpと.htaccessのファイルを追記修正

インストールが完了したらwp-confing.phpと.htaccessファイルの修正を指示されるので、それの修正。

「define(‘DOMAIN_CURRENT_SITE’, ‘main.com’);」ここの箇所はサイトによって異なるので、管理画面のをコピーすることをお薦め。

Copy
//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ファイルをダウンロードし、テキストエディタで開いて下記の内容に丸ごと書き換えて保存。
そしたらサーバーに再度アップロードして上書き。

Copy
# .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でアクセスしたらこのコマンド。

Copy
ln -s www.main.com sub.main.com

ここまでは同一のドメインでの設定について見てみたが、次は複数ドメインをまたがった設定を見てみようと思う。

異なる複数ドメイン運用のための設定

続いては、異なる複数ドメイン運用のための設定手順。

●www.main.com(メインサイト)
 └予めWordPressをインストールしている
●multi.another.com(別ドメインサイト)
 └このドメインをマルチサイト化して利用する

WordPress MU Domain Mappingっていうプラグインをインストール。

プラグインのインストールは、ネットワーク管理者のメニューからインストール、有効化する必要がある。

「参加サイト」、「プラグイン」、「新規追加」とアクセスして、「WordPress MU Domain Mapping」を検索してインストール。

WordPress MU Domain Mapping

インストールしたら「ネットワークで有効化」しておく。なお、プラグインによっては「ネットワークで有効化」で動かない場合があるので、その場合には個別サイトのプラグイン管理画面で有効化してやる必要がある。

sunrise.phpファイルのコピー

そうするとネットワーク管理画面の「設定」、「Domain Mapping」にアクセスするとこんなメーッセージが表示される。

Copy
Please copy sunrise.php to /wp-content/sunrise.php and ensure the SUNRISE definition is in /wp-config.php

そしたら、このファイルをダウンロードして、

Copy
/wp-content/plugins/wordpress-mu-domain-mapping/sunrise.php

ここにアップロードしておく。

Copy
/wp-content/

そんで、さらにwp-config.phpファイルに「define( ‘SUNRISE’, ‘on’ );」を追記して上書き。

Copy
//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を確認するには、「サイトネットワーク管理者」、「サイト」とアクセスして「編集」をマウスオーバーするとこんな風に表示される。

Copy
/wp-admin/network/site-info.php?id=3

そしたら、「設定」、「Domains」とアクセスして、先ほどのサイトID、Domainと入力して保存。

ドメイン設定

そんで、VALUE SERVERの管理画面。

「ドメインの利用」、「ドメインウェブの設定」とアクセスしてサブドメインを追加しておく。

複数ドメインの追加

最後にSSHでアクセスしてコマンドをポン。

データの同期設定でやると何故かデータが吹っ飛んだりしたので、SSHがお薦め。

Copy
ln -s www.sample.com mulit.another.com

参照:http://withbe.com/?p=345