見出し画像

WordPressのちょこっとレシピⅡ(マルチサイトの巻)-その3-

前回はサブディレクトリ型のマルチサイトをWordPressで作ってみました。今回はサブドメイン型に挑戦してみます。

【Contents】
その1)マルチサイトとは?メリット・デメリット
その2)マルチサイトの設定方法(サブディレクトリ型)
その3)マルチサイトの設定方法(サブドメイン型)

前提条件について

今回は以下のような条件となります。

・サブドメイン型とする。
・エックスサーバーを使う。
・エックスサーバーでサブドメインを作成済み。
・WordPressはルートディレクトリ直下にインストール済み。(※注)

※注:WordPressをサブディレクトリにインストールすると、サブドメイン型のマルチサイトに出来ません。ご注意ください。

序盤はその2と同様の作業となるため、内容が重複するかと思います。「わかってるよー」という方は飛ばしてご覧ください。

WordPressのマルチサイト機能を有効化

まずは、WordPressのマルチサイト機能をONにします。
ルートディレクトリ直下にある wp-config.php に下記コードを追記してください。追記する場所は、「/* 編集が必要なのはここまでです ! …」のコメントの上です。

define('WP_ALLOW_MULTISITE', true);

サイトネットワークの作成

マルチサイト機能をONにしたらワードプレスにログインし、
「ツール」>「サイトネットワークの設置」というメニューを選択してください。

その1_01

サイトネットワークの作成画面が表示されたら、サブドメインを選択し、サイトネットワーク名とアドレスを入力後、インストールボタンを押してください。
※サブドメインかサブディレクトリのどちらとするかは、後から変更できないので間違えないよう注意してください。

その3_01

サイトネットワークの有効化

インストールが終わると下記のような画面が表示されます。

その3_02

ルートディレクトリ直下にある「wp-config.php」と「.htaccess」をバックアップしたら、それぞれのファイルを編集していきます。

■ wp-config.phpの編集

先ほど、マルチサイト機能をONにしたときに追記したコードの下に、指定されたコードを追記します。

【追記するコード】

define('MULTISITE', true);
define('SUBDOMAIN_INSTALL', true);
define('DOMAIN_CURRENT_SITE', 'ドメイン名');
define('PATH_CURRENT_SITE', '/');
define('SITE_ID_CURRENT_SITE', 1);
define('BLOG_ID_CURRENT_SITE', 1);

【実際に追記したファイル】

その3_03

■ .htaccessの編集

こちらは、「# BEGIN WordPress」~「# END WordPress」の中にある<IfModule mod_rewrite.c>~</IfModule>の部分を指定されたコードに書き換えます。

【変更前】

# BEGIN WordPress
# `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress

【変更後】

# BEGIN WordPress
# `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は
# 動的に生成され、WordPress フィルターによってのみ修正が可能です。
# これらのマーカー間にあるディレクティブへのいかなる変更も上書きされてしまいます。
<IfModule mod_rewrite.c>
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]
</IfModule>
# END WordPress

2つのファイルの編集が終わったら、再度WordPressにログインしてください。左上に「参加サイト」が表示されたらマルチサイト化の準備が完了です。

その1_04

サブドメインの新規サイトを追加する

続いて、サブドメインのサイトをWordPressに追加します。前提条件にも書きましたが、サブドメインはエックスサーバーの管理画面で事前に作成しておいてください。
下記画面のように、作成したサブドメインに【反映待ち】の表示が消えていれば大丈夫です。

その3_05

エックスサーバー側でサブドメインができたら、WordPress側に追加していきます。「参加サイト」>「サイトネットワーク管理」>「サイト」でサイト一覧画面を開きます。

その1_05

開いたら、新規作成ボタンを押します。

その3_07

サイトの追加画面が表示されるので、必要な情報を入力してください。サイトアドレスのサブドメイン名には、エックスサーバーで作成した名前を入れてください。今回は「blog」というサブドメインになります。
必須項目を入力したら「サイトを追加」ボタンを押します。

その3_08

新しいサイトを追加したら一覧画面で確認してみましょう。
左目メニューの「サイト」>「すべてのサイト」で一覧開くと、メインサイトの下に先ほど追加したサブサイトが増えているかと思います。

その3_09

この状態でサブドメインサイトを見てみましょう。「参加サイト」>「表示したいサイト」>「サイトを表示」でサイトを開いてみてください。

おそらく、下記のように「このウェブスペースへは、まだホームページがアップロードされていません。」という画面が表示されるかと思います。

その3_11

エックスサーバーの場合、サブドメインを作成するとサーバーのpublic_html直下にサブドメイン名のフォルダが作成され、上記画面のindex.htmlが置かれます。
そのままですと、サブドメインはそちらのフォルダにアクセスしてしまうため、WordPressにアクセスできません。

その3_12-2

最後にこの問題を解決していきましょう。

サブドメインのシンボリックリンクをpublic_htmlに張る

サブドメインにアクセスした時、ルートディレクトリにアクセスするように、シンボリックリンクというものを設定します。
シンボリックリンクについてはこちらのサイトが分かりやすかったので気になる方はご覧ください。ここでは、ざっくりリンクを貼るのだなと理解してもらえれば大丈夫です。

ではシンボリックリンクを貼る手順を説明していきます。

■ サブドメイン名のフォルダをリネーム

まず先に、public_html直下にあるサブドメイン名のフォルダを削除するか、リネームしておいてください。

その3_13

■ エックスサーバーのSSH設定

続いて、シンボリックリンクを貼るためにエックスサーバーにSSH接続をします。
SSH接続をするための準備として、エックスサーバーのサーバーパネルからSSH設定をONにし、公開鍵の認証用キーというものを生成する必要があります。

詳細は下記エックスサーバーの公式ページに記載されていますので、ご参照ください。

エックスサーバーのSSH設定

SSHソフトからサーバー接続

エックスサーバー側の準備が終わったら、SSHソフトの準備をして実際に接続してみましょう。今回はTera Termを使って接続してみます。
Tera Termをお持ちでない方はこちらよりダウンロードしてインストールしてください。

インストールが終わったら、先ほど生成したキーを登録し、接続情報を入力するとエックスサーバーに接続できます。
Tera Termの設定と接続方法は下記ページをご参照ください。

Tera Termの設定・接続方法

シンボリックリンクの設定

サーバーに接続すると下記のような画面が表示されるので、シンボリックリンクをするためのコマンドを入力していきましょう。

その3_14

まずは自分のいるディレクトリをpublic_htmlに変更します。下記コマンドを入力してください。

cd /home/サーバーID/ドメイン名/public_html

続けてシンボリックリンクを貼ります。下記2行を入力してください。

ln -s /home/サーバーID/ドメイン名/public_html /home/サーバーID/ドメイン名/public_html/サブドメイン名
ll

すべて入力すると下記のような画面が表示されます。

その3_18

これでシンボリックリンクの登録完了です。
それでは、改めてサブドメインサイトを見てみましょう。

その3_19

今度はちゃんとブログサイトが表示されましたね。
これでサブドメイン型のマルチサイト化の完成です。

------

以上、WordPressのちょこっとレシピⅡでした。

マルチサイトは確かに構築コストや運用コストが下がるというメリットがありますが、障害が発生時、場合によっては全サイトに影響が出てしまうという怖い面もあります。
マルチサイトにするべきか、よく検討した上で使いたいですね。

------

参考にさせていただいたサイト

エックスサーバーでサブドメイン型のワードプレスマルチサイトを設定する方法

[第三章]WordPressのサブドメイン型マルチサイト化について(エックスサーバー編)

**

今日は以上です。

Twitterではブログに書いていないこともつぶやいているので、ぜひフォローしてください。
https://twitter.com/HAMA3san


ストリートアカデミーで毎月講座を開催中。
https://www.street-academy.com/steachers/198346

note専用コミュニティへの招待について

https://note.mu/hamasan918/n/ne4d98f9db9ec

note専用コミュニティ、作成しました。コミュニティでは質問などを受け付けています。毎月500円となります。


この記事が気に入ったらサポートをしてみませんか?