Drupal のMultisite対応

Last edited on 2012/06/18 (月) - 22:48

Drupalをマルチサイト対応にする方法を書いておく。

さくらレンタルサーバは複数のドメインを使わせてもらえるので、例えば、http://example.sakura.ne.jp/ というサイトと、http://abc.chew.jp/ という別々のサイトを運営することができる。両方のサイトをともにDrupalで構築しようとするとき、Drupalのコードは1つにしてき、データベースや設定を別々にすることができる。このようにすればDrupalモジュールのアップデートなどもどちらかのサイトで1回だけ行えばよい。

その方法は以下のページに書いてある。
Multisite - Sharing the same code base

この通りの手順でやってみた。さくらレンタルサーバの場合、最初のサイトは ~/www の下にファイルを置くことになる。その後、別のドメインを取得すると、~/www/another_site の下に第二のサイト用のファイルを置くことになる。

前提として、~/www にdrupal がインストールしてあり、http://example.sakura.ne.jp/ というサイトで使用しているとする。そこへ、新たに http://abc.chew.jpというサイトを追加する場合の手順である。

  1. 新しいサイト用のデータベースを作る
  2. 'sites'の下に新しい abc.chew.jp というディレクトリを作る
  3. 'sites/default/defalt.settings.php' をabc.chew.jp の下に settings.php という名前でコピーする
  4. abc.chew.jpディレクトリのパーミションを 555 にし、abc.chew.jp/settings.php にいったんWriteパーミションを付加する
  5. www/subdirからwwwへシンボリックリンクを張る。subdir はabc.chew.jp でアクセスするときのWEBルートである。wwwディレクトリで、ln -s . subdir とすればよい。
  6. http://abc.chew.jp/install.php へアクセスしてインストールする。

これでできるはずだ。
それから、cron はサイトごとに実行しなければならない。例えば、http://example.sakura.ne.jp/cron.phphttp://abc.chew.jp/cron.php の両方を定期的に実行する必要がある。