★★★ たった "1日" でできるWordPressブログの作り方講座 ★★★ はじめてみる

【XAMPP】WPマルチサイトをローカル環境に構築する手順まとめ

XAMPP WordPress マルチサイト化

WordPressでデザインとか機能は統一したいけど別々のサイトを作りたい・・・

そんなときに役立つのがWordPressのマルチサイト機能です。

この機能を有効にするとサイト内のドメインやサブディレクトリに対してWordPressをインストールしなおすことなく、同じテーマやプラグインを共有することが可能になります

ただこの機能をいきなり本番環境で試す前にローカル環境でどのようなものか一通り確認したい、という場合もあるかもしれません。

そこでここではXAMPPを使って自分のWindowsPC(ローカル環境)上にWordPressマルチサイトを構築する手順について紹介していきます。

マルチサイトとは

まずWordPressのマルチサイト機能って何?ということですが、これは1つのWordPressで複数のサイトを運営するための機能のことです。

例えばあるサイトの日本語版と英語版と中国語版をそれぞれ作りたいとします。

この時全く別々のサイトとして作った場合サイトを追加する度にWordPressをインストールしなおしてテーマやプラグインを入れなおさなくてはならなくなります

この方法だと上の図にもあるように全て最初からテーマやプラグインをインストールしてデザインや機能を合わせる、となるととても面倒ですよね...

そこでWordPressのマルチサイト機能が役に立ちます。

この機能を使うと次の図のように1つのWordPressで例えば日本語版、英語版、中国語版のように複数サイトを管理できます

1つのWordPressで全てのサイトが管理でき、テーマやプラグインが全てのサイトで共通に使えるのでデザインや機能を手動で合わせる必要もありません。

そしてこのマルチサイト機能には作り方によって次の2つのタイプがあります。

  • サブディレクトリ型
    例えばexample.comというサイトなら「example.com/ja」「example.com/en」などのサブディレクトリを作ってその中で各サイトを管理するタイプ
  • サブドメイン型
    ja.example.com」「en.example.com」などのように各サブドメインに1つのサイトを結びつけるタイプ

マルチサイトを作る場合はこの2つの内から1つのタイプが選べます。

この2つの違いは例えるとするならサブディレクトリは「同じ家の中の部屋」、サブドメインの場合は「親戚関係のある分家」というようなイメージですね。

ではこの2つをどう使い分ければいいのでしょうか?

絶対にこのようにしなくてはならない、という訳ではないですが用途や目的によって次のように使い分けることが多いです。

  • 各サイトで似たテーマを扱う場合⇒サブディレクトリ型
    例えば「Android」と「iPhone」のような共通点の多いテーマならサブディレクトリとして管理した方が一元化できて便利です。
  • 各サイトで全く扱うテーマが違う場合⇒サブドメイン型
    例えば「アウトドア」と「ダイエット」のような全然違う題材の場合は異なるドメインでサイト運営すると管理しやすくなります。

似たテーマなら「サブディレクトリ型」、全くジャンルが異なるテーマなら「サブドメイン型」にすると管理しやすくなるのではないでしょうか。

ただしマルチサイト化には1つ注意点があります。

それはある程度長い間運営されているサイトではサブドメイン型しか選べず、サブディレクトリ型が選べないということです。

その点に注意が必要なので、もし導入するならサイトを作る前にある程度テーマを決めておいてその上で最初にマルチサイト化しておくのが良いと思います。

XAMPPでマルチサイト化する手順

ではXAMPPを使ってローカル環境上にマルチサイト(サブドメイン型)を作る手順を紹介します。

その大まかな手順は次の通りです。

  1. XAMPPのインストール
  2. localhostにWordPressをインストール
  3. localhost.localdomainとそのサブドメインの追加
  4. WordPress側の前準備
    1. WordPressアドレスとサイトアドレスを変更
    2. 全てのプラグインを一時停止
  5. WordPress側でマルチサイト有効化
  6. サイトの追加

この6つの手順を紹介していきます。

XAMPPのインストール

XAMPPとはサーバー環境の構築に必要なApache」「MySQL」「PHP」「Perl」...などのソフトウェアをまとめてインストール・管理してくれる便利なソフトウェアです。

もしまだXAMPPをインストールしていないなら次の記事でその手順を解説してあるので、最初にインストールしておきましょう。

テスト環境でサイト構築をしてみたいという時にとても便利なのが「XAMPP」というソフトウェアです。本来サーバー環境をローカルに構築するには大変手間がかかりますが、XAMPPを使えばこれ1つだけで今使っているコンピュータ上で簡単に開発から運用ができてしまいます。そこでここではXAMPPをまだ使ったことがない人向けに一からインストールする手順について紹介します。

ただインストールするだけなので数十分もかからないと思います。

localhostにWordPressインストール

次に「localhost」という自分のPCを表すドメインにWordPressをインストールします。

その手順については次の記事で詳しく紹介してあるので、インストールしてWordPressにログインできる状態にしておきましょう。

WordPressはレンタルサーバーを使わなくても「XAMPP」というソフトウェアを使えば、ローカル(自分のPC)環境でインストールしてサイトやブログが作成できます。しかもXAMPPはインストールするだけでサーバー周りのソフトウェアを自動でインストール・管理できるので特別な知識も要りません。ただしその手順を知らないとどうしようもないので、ここではXAMPPを使ってローカル環境にWordPressサイトを構築する方法について紹介します。

ただしサブドメイン型の場合はバーチャルホスト機能を使って作った他のドメインではなく必ず「localhost」上にインストールしてください

もし「localhost」以外にインストールした場合はマルチサイト機能でサブディレクト型しか選べなくなるので注意が必要です。

localhost.localdomainとサブドメインの追加

次に「localhost.localdomain」というドメインとその下にサブドメインを追加します。

localhost.localdomainというのはとりあえずlocalhostの別名だと思ってください。これを追加しておかないとローカル環境上でサブドメイン型のマルチサイトを作ることができません。

そしてここではそのドメイン上に次の図で示した2つのサブドメイン( sub1、sub2 )を追加してそれをマルチサイト化することにします。

では次の手順でその設定をしていきましょう。

サブドメインフォルダの作成

まず「C:\xampp\htdocs」以下に次のようにサブドメイン用の2つのフォルダを作成します。

ここでは「sub1.localhost」「sub2.localhost」と名付けていますが、この名前はどのようなものでも問題ありません。手順を説明するために分かりやすい名前にしています。

httpd-vhosts.confにドメイン追加

では次に「C:\xampp\apache\conf\extra」フォルダ以下にある「httpd-vhosts.conf」を適当なエディタで開きましょう。

そのファイルを開いたらまず次の行を探してください。

##NameVirtualHost *:80

先頭に「##」がついているので、次のようにそれを消してコメントアウトを解除します。

NameVirtualHost *:80

これでApacheのバーチャルホスト機能が有効になり、複数ドメインを追加できるようになりました。

次に「httpd-vhosts.conf」は開いたままでそのファイルの最後に次のような内容を追加しましょう。

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/xampp/htdocs/wordpress"
    ServerName localhost.localdomain
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs/wordpress"
  ServerName sub1.localhost.localdomain
</VirtualHost>
<VirtualHost *:80>
  DocumentRoot "C:/xampp/htdocs/wordpress"
  ServerName sub2.localhost.localdomain
</VirtualHost>

このような内容を追加したら保存してください。

ちなみにこのファイル内ではVirtualHostタグ内で次の2つの値を設定することでドメインについての情報を追加しています。

  • DocumentRoot
    ドメインのルートディレクトリ(一番上のフォルダ)のパスを指定
  • ServerName
    追加したいドメイン名をここに指定

hostsファイルにドメイン追加

次にWindows上でIPアドレスとドメインの対応付けをしているhostsファイルに今追加したドメインとIPアドレスを次の手順で追加します

まず「Windowsキー + Rキー」を同時押しして次のような「ファイル名を指定して実行」ダイアログを開きましょう。

そして「名前」の横にある欄に「cmd」と入力してOKボタンを押します。

するとコマンドプロンプト(背景が黒いウィンドウ)が出てくるので次のコマンドを入力してhostsファイルをメモ帳で開きましょう。

powershell -NoProfile -ExecutionPolicy unrestricted -Command "start notepad C:\Windows\System32\drivers\etc\hosts -verb runas"

メモ帳が起動したらその最後に次のような内容を追加します。

127.0.0.1 localhost

127.0.0.1 localhost.localdomain
127.0.0.1 sub1.localhost.localdomain
127.0.0.1 sub2.localhost.localdomain

追加したらファイルを保存しましょう。

これでPC上で「localhost.localdomain」とそのサブドメインである「sub1.localhost.localdomain」「sub2.localhost.localdomain」が利用できるようになります。

WordPressアドレスとサイトアドレスの変更

次にlocalhostにインストールしたWordPressにログインしてください。

ログインができたら左のWordPressメニューから「設定」ー>「一般」を開きます。

一般を開いたら次の図のように「WordPressアドレス(URL)」と「サイトアドレス(URL)」の2つの項目を見てください。

このようにアドレスが設定されていると思うので、この2つのアドレスのどちらにも「http://localhost.localdomain」を設定しましょう。

変更するとサイトアドレスが変わってログインできなくなってしまうので、再度WordPressにログインするには次の新しいURLからログイン画面にアクセス可能です。

http://localhost.localdomain/wp-login.php

全てのプラグインを一時停止

次にWordPress内でプラグインが有効化されているなら全てのプラグインを一時停止させましょう。そうしないとマルチサイト化できません。

ではまずメニューから「プラグイン」ー>「インストール済みプラグイン」を開きます。

プラグイン画面が開いたら次の画像のようにプラグイン」の横にあるチェックボックスにチェックを付けて全てのプラグインを選択します。

そして「一括操作」ー>「停止」を選んで適用ボタンを押してください。

これで全てのプラグインが停止状態になります。

マルチサイト化が完了するまでプラグインは有効化できないので、必ずどのプラグインが有効でどのプラグインが無効だったかを覚えておいてください。

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

ではいよいよ次にWordPress側でマルチサイト機能を有効化してみましょう。

ただしここでは「C:\xampp\htdocs\wordpress」にWordPressをインストールしているという前提で手順を説明していきます。

有効化するにはWordPressのインストールされているフォルダにアクセスして「wp-config.php」という名前のファイルを開きます。

開いたらエディタ上で /* 編集が必要なのはここまでです ! WordPress でブログをお楽しみください。 */ と書かれた行を探してください。(下の画像の選択されている部分)

そして次の2行をこの行の前に追加します。

/** マルチサイト機能を有効化 */
define('WP_ALLOW_MULTISITE', true);

ファイルを保存するとWordPressでマルチサイト機能が有効になります。

マルチサイト機能の設定

マルチサイト機能を有効化したら次にその機能を使えるように設定していきます。

その手順ですがマルチサイトを有効にするとメニューに「サイトネットワークの設置」が追加されているのでそれを開きましょう。

開くと次のような画面が表示されます。

その画面でまずは「サイトネットワーク内のサイトアドレス」からサブドメイン型にするのかサブディレクトリ型にするか選びましょう

今回はサブドメイン型のマルチサイトにするので「サブドメイン」を選んでおけば問題ありません。

次に「サイトネットワークの詳細」でサイトネットワーク名やメールアドレスに不備がないか確認し、問題なければ「インストール」ボタンを押すとインストールが開始されます。

しばらく待つと「WordPressサイトネットワークの作成」画面が表示されます。

ここでは画面に従って次の2つのファイルの内容を追加したり書き換える必要があります。

  • wp-congig.php
  • .htaccess

ファイルを書き換えることになるので必ずこの2つのファイルのバックアップはとっておきましょう

この2つのファイルの書き換え方ですが、まず「wp-config.php」については指示通りにコードを追加するだけなので問題はないと思います。

問題なのは「.htaccess」の方で、画面では次のようにファイルの内容を置き換えるように指示されています。

.htaccessの場合は「追加する」ではなく、「置き換える」となっていることに注意してください。

じゃあどこを置き換えればいいのか?という話ですが、次の図のように# BEGIN WordPress」の下の行から「# END WordPress」の上の行を全て書き換えてください

ファイルの書き換え・置き換えが済んだら設定を保存しましょう。

これでマルチサイト機能が完全に使えるようになり、サブドメインにサイトを追加できるようになります。

サイトの追加

マルチサイト機能を使ってサブドメインにサイトを追加する手順は次の通りです。

まず管理画面左上の「参加サイト」から「サイトネットワーク管理」ー>「サイト」をクリックして開きます。

開くとネット―ワークに参加しているサイト一覧を管理する画面が表示されるので、サイトを追加するには「新規追加」ボタンを押します。

すると次の画像のようなサイトの追加画面が表示されるので、次のオレンジ色の枠で囲った項目を入力して「サイトを追加」ボタンを押すと新たにサブドメイン上にサイトが追加されます。

各項目に入力しなくてはならない内容はそれぞれ次の通りです。

  • サイトアドレス
    ここにサブドメイン名を入力します。例えば先ほど作成した「sub1.localhost.localdomain」を追加したいならサブドメイン名である「sub1」を入力しましょう。
  • サイトのタイトル
    その名の通りサイトタイトルのことです。この名前はあとから変更可能なので暫定的なものでも構いません。
  • サイトの言語
    WordPressサイトや管理画面で使う言語です。
  • 管理者メールアドレス
    登録されていないメールアドレスを入力すると新規にWordPressユーザーが追加されます。

追加されたサイトは管理画面の参加サイトに一覧表示され、サイト名をクリックすることで切り替えが可能です。

以上がWordPressでのマルチサイトの作り方です。

長かったですがお疲れ様でした!

もしサイトが追加できないときは...

最後にサイトを追加できたけどアクセスできないという場合の対処法を少し紹介します。

アクセスできない場合は「.htaccess」の内容に原因があることが多いです。

例えばマルチサイト化するとき、.htaccessの内容を次のように置き換えたと思います。

# BEGIN WordPress
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).*) wordpress/$1 [L]
RewriteRule ^(.*\.php)$ wordpress/$1 [L]
RewriteRule . index.php [L]
# END WordPress

もしもこれでアクセス時にエラーが出るようなら.htaccessを次のように書き換えましょう。

# BEGIN WordPress
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]
# END WordPress

太字で強調した行が変更点で、「wordpress/$1」⇒「$1」のようにWordPressをインストールしたフォルダ名を削除してあります。

この内容で保存して追加サイトにアクセスできるかどうか試してみてください。

もしこれでもアクセス不可ならドメインやサブドメインの追加方法が本当に正しい手順で行えていたかどうかも確認してみましょう。

まとめ

いきなり本番環境でマルチサイトを作るのは不安・・・という場合はXAMPPを使ってまずは自分のPC上(ローカル環境)でマルチサイトを試してみるのがいいと思います。

ローカルだから本番環境のサイトを壊すことなくテーマやプラグインのインストールもできるので、安全にテストできるはずです。

以上、XAMPPでローカル環境にWPマルチサイトを構築する手順についてでした。

The following two tabs change content below.

フク郎

昔はプログラミングに熱中していたが、ブログとWordPressに興味を持ち始め今はサイト・ブログ作りが生きがい。自分の「好き」をブログに変えたい、情報発信したい人に役立つWordPress術・サイト構築術を発信中。一日一歩楽しんでブログ構築できるように読みやすい&楽しい記事作りを心がけています。