Drupalのマルチサイト設定


前提

マルチサイトにしたいサーバーでDrupalが既に構築されている事を前提にします。
(以降、メインサイトと呼び、新しく構築するサイトをサブサイトと呼びます。)

確認方法はPCのhostsに追加して、確認しています。
説明の中では、以下のようなドメインを利用した想定で進めます。

ドメイン名
メインサイト dev.hoge.jp
サブサイト dev.fuga.jp

Apacheの設定

Apacheでも他のWebサーバーでもやることは一緒です。
ドキュメントルートをメインサイトと同じにすること。それだけです。

ApacheのVirtual Host設定例

メインサイトの設定

<VirtualHost *:80>
  DocumentRoot /var/www/dev
  ServerName dev.hoge.jp
  ErrorLog logs/dev-hoge-error_log
  CustomLog logs/dev-hoge-access_log common
  <Directory "/var/www/dev">
    AllowOverride All
  </Directory>
</VirtualHost>

サブサイトの設定

<VirtualHost *:80>
  DocumentRoot /var/www/dev
  ServerName dev.fuga.jp
  ErrorLog logs/dev-fuga-error_log
  CustomLog logs/dev-fuga-access_log common
  <Directory "/var/www/dev">
    AllowOverride All
  </Directory>
</VirtualHost>

どちらもDocumentRootはメインサイトの「/var/www/dev」を指定してます。

Drupalの設定

サブサイトの設定を保存するディレクトリを作ります。

cd /var/www/dev/sites 
mkdir dev.fuga.jp

ポイント
sites配下にサブサイトのドメインでディレクトリを作成します。
「dev.fuga.jp」ディレクトリの中は、sites/default と同じような構成にします。

cd /var/www/dev/sites/dev.fuga.jp
cp ../default/files .
cp ../default/default.settings.php ./settings.php

filesディレクトリをコピー、settings.phpもdefault.settings.phpからコピーします。

cd /var/www/dev/sites/dev.fuga.jp
chmod 755 ./settings.php

settings.phpは権限設定も変更してください。


ここで、http://dev.fuga.jp へアクセス、
Drupalのインストール画面が出てきたら・・・成功です。
メインサイトをインストールしたときと同じように、進めれば完了です。

ポイント

モジュールがインストールされているかのように進みますが、そんなことはないです。
メインサイトと同じモジュールが利用できます。
DBが別になるので、モジュールの利用設定は、サイトごとに設定可能です。

思ったよりあっさり出来るので、
実験でDrupalのモジュールを管理画面上でごちゃごちゃ触りたいときにおススメです。