サブドメイン型のマルチサイトを作成してみましたので、その備忘録です。
ConoHaのサーバーの場合、パーミッションの関係で他のサーバーより少しだけ面倒です。
マルチサイトの特徴
マルチサイトの特徴を端的に書いておきます。
このサイトの仕組みは多言語サイトや支店を持つサイト等に使われます。
- 1つのデータベースに複数のサイトを格納する
- 複数のサイトに対して、テーマ、プラグイン、ユーザー、設定をまとめて管理できる
- サブディレクト型、サブドメイン型、そして別ドメイン型でも管理できる
マルチサイトのメリット
メリットとしては、テーマ、プラグイン、ユーザーをまとめて管理できるので、
複数サイトを横展開する時に設定周りが効率よく管理できます。
マルチサイトのデメリット
1つのデータベースに複数のサイトを格納する関係で、バックアップや復元が普通のプラグインだと難しいです。
またマルチサイトの設定も初心者には難しい点があります。
マルチサイトの設定方法(共通部分)
まずはWordPress側の設定をします。
サブドメイン・サブディレクトのマルチサイトの設定方法ですが、FTPとコードを追加するという作業が発生します。
FTPを使って、WordPressのデータにアクセスします。
ドメイン名のフォルダの直下wp-config.phpをテキストエディタで開いて、一番下に下記のコードを追加します
/** Multisite */
define('WP_ALLOW_MULTISITE', true);
これでマルチサイトの設定がONになりました。
管理画面のツールからWordPress サイトネットワークの作成というメニューが追加されているのを確認できます。
WordPress サイトネットワークの作成のページから下記の情報を入力してインストールします。
- サブドメインまたはサブディレクトを選択
- サイトネットワーク名(命名はなんでもいいです。あとから命名の変更もできます。)
今回はやや設定がめんどくさいサブドメインを選んでみました。
インストール後、2つのコードが表示されます。
まず先ほど編集したwp-config.phpを開いて
/* That's all, stop editing! Happy publishing. */
/* 編集が必要なのはここまでです。 それでは、WordPress をお楽しみください。 /*
と書かれたコメントの上にコードを貼りつけましょう。
続いて.htaccessですが、WordPressサイトを作りたてだと、生成されてなかったりしますので
管理画面 > 設定 >パーマリンクから、設定を変えずに空保存とhtaccessが生成されます。
あとは先ほどと同じく表示されたコードを追記しましょう。
元から記述されているコードに対して上書きしましょう。
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index\.php$ - [L]
2つのファイルのコードを追記して、FTPで更新が終えたら再ログインします。
再ログインすると管理画面にサイトというメニューが追加されます。
サブディレクトであればここで子サイトの設定が完了しますが、
サブドメインを選んだ場合はまだ表示されません。
サブドメインと親サイトのデータとの繋ぎこみが必要になります。
サブドメイン型のマルチサイトの設定
サブディレクトと違い、サブドメインでのマルチサイトの設定は少し難易度があがります。
SSH接続をしてシンボリックリンクを作成するというサブドメインとドメインの繋ぎこみが必要になります。
ドメインの設定
Googleドメインの場合は特に設定は必要ないです。
ほかのドメインの場合はレコードの追加設定が必要です。
サブドメインの場合はアスタリスクを追加したAレコードを追加してあげます。
*.exsample.com A 3600 123.45.67.89
SSHの接続設定
またConoHaのサイトでもやり方が確認できます。
SSH接続するための必要な情報は下記の通り
- ホスト(www.000.conoha.ne.jp)
- ポート番号(0000)
- アカウント名(c1234567)
- パスフレーズ(サーバーログイン時のパスワード)
- 秘密鍵(xxxx.pem)
Tera Termを使って、SSH接続をして設定をします。
以下のようなテキストが表示されれば接続成功です。
ConoHa Wingサーバーの場合
黒い画面からコマンドをシンボリックリンクを作成して、親サイトのドメインとサブドメインを接続してあげるだけです。
本来、下記のコマンドで済むのですが…
ln -s /home/アカウント名(c1234567)/public_html/ドメイン(exsample.com) /home/アカウント名(c1234567)/public_html/サブドメイン(sub.esample.com)
ConoHa Wingサーバーの場合、サブドメイン登録時にsub.esample.comのようなフォルダが自動生成されてしまいます。
ですので、まずこのフォルダを消す必要がありますが、パーミッションの関係で普通では消えません。
ですので、パーミッションの変更とフォルダの削除のコマンドを打ってから、シンボリックリンクを作成をします。
ドメインフォルダの親にあるpublic_htmlのフォルダのパーミッションの権限を変更
chmod 755 ~/public_html
サブドメインのフォルダを削除
rmdir ~/public_html/sub.exsample.com
シンボリックリンクを作成
ln -s /home/c1234567/public_html/exsample.com /home/c1234567/public_html/sub.exsample.com
以上で、サブドメインにドメインへのシンボリックリンクが作成作成できました。
これでサブドメインの管理画面にアクセスできるはずです。
エックスサーバーの場合
しらこさんの記事が詳しいので、そちらを参考にしてみてください。
基本ConoHaの時で解説したものと一緒です。
まとめ
1つのデータベースでまとめて複数サイトを管理できるマルチサイト。
テーマやプラグインをまとめて管理できるとはいえ、初心者にはおすすめしません。
複数のサイトをまたいだ情報の管理をしたい場合など、カスタマイズが得意な方には一つの良い方法かもしれません。