マルチサイト(複数サイト)の作り方

Drupalは、1つのパッケージで複数サイト(マルチサイト)を構築できます。複数のDrupalサイトを運営する場合、この機能を利用することでコアパッケージやモジュール、テーマの管理・アップグレード作業を容易にすることができます。

これら複数のサイトは、それぞれ別のデータベースを利用するよう設定できるため、コンテンツや管理設定を共有させずにそれぞれ独立したサイトとして構築できます。

Drupalで複数サイト(マルチサイト)を構築する手順は下記のとおりです。
ここでは例として、下記2サイトを構築します。

  • (1つ目のサイト)www.example.com/drupal1
  • (2つ目のサイト)www.example.com/drupal2

マルチサイト(複数サイト)構築手順

  1. 1つ目のDrupalサイト構築
    通常の手順で、www.example.com/drupal1 配下に1つ目のDrupalサイトを構築します。Drupalのインストール方法はこちらを参照ください。
    ※Drupalインストールディレクトリ下の下記ファイル・ディレクトリは、2つ目のDrupalサイトインストール時にも使用するため、1つ目のDrupalサイトインストールが完了しても削除せずに、Webサーバ上に残してください。

    • install.php
    • profilesディレクトリ
  2. 2つ目のDrupalサイト用のディレクトリを作成
    2つ目のDrupalサイト用のディレクトリを作成します。
    1つ目のDrupalインストールディレクトリ下のsitesディレクトリ下に、www.example.com.drupal2ディレクトリを作成してください。

  3. 2つ目のDrupalサイト用の設定ファイルを準備
    続けて、上記で作成したディレクトリ内に、設定ファイル settings.php を用意します。
    /drupal1/sites/default/default.settings.php をコピーし、ファイル名をsettings.phpへ変更します。
    そして、このファイルを下記ディレクトリに保存します。
    /drupal1/sites/www.example.com.drupal2/

  4. パーミッションの変更
    2つ目のDrupalサイトが適切にインストールできるように、下記ファイル・ディレクトリのパーミッションを変更します。

    パーミッション設定
    ファイル・ディレクトリ名 変更後のパーミッション
    /drupal1/sites/www.example.com.drupal2/settings.php 666
    /drupal1/sites/www.example.com.drupal2 777
  5. シンボリックリンクの作成
    2つ目のDrupalサイトのURLが、1つ目のDrupalサイトのインストールディレクトリを参照しない場合、2つ目のDrupalサイトへのリクエストを、1つ目のDrupalインストールディレクトリへ転送する必要があります。
    例えばこの例では、http://www.example.com/drupal2 へリクエストがあった場合、 サーバ上の drupal1 ディレクトリへ転送させる必要があります。

    Linuxサーバでは、下記コマンドでシンボリックリンクを作成し、転送させることができます。

    ln -s drupal1 drupal2
  6. インストーラーの起動
    ブラウザから、www.example.com/drupal2へアクセスします。
    インストーラーが起動するので、通常のDrupalインストールを手順7から行ってください。
    ※パーミッションの変更を求められるディレクトリ名などが通常と異なりますが、インストーラーの指示に従い行ってください。
    インストールが完了すれば、2つ目のDrupalサイトも無事構築完了です。

複数サイト間の拡張モジュール・テーマの共有

拡張モジュール・テーマを、複数サイト間で共有したり、独立して管理したりすることができます。
sitesディレクトリ下の各ディレクトリ下に、themesディレクトリ、modulesディレクトリを作成することで、サイトごとのテーマ・モジュールの管理が行えます。

ディレクトリ名 説明
sites/all/modules 全ドメインのDrupalサイトで利用を許可するモジュールを格納します。
sites/all/themes 全ドメインのDrupalサイトで利用を許可するテーマを格納します。
sites/ドメイン名/modules ディレクトリ名で指定したドメインのDrupalサイトで利用を許可するモジュールを格納します。
sites/ドメイン名/themes ディレクトリ名で指定したドメインのDrupalサイトで利用を許可するテーマを格納します。
sites/default/modules ディレクトリ名で指定されていないドメインのDrupalサイトで利用を許可するモジュールを格納します。
sites/default/themes ディレクトリ名で指定されていないドメインのDrupalサイトで利用を許可するテーマを格納します。
Drupalでお悩みですか?
Drupalのことは株式会社OSSCにお任せください。
Drupal支援サービスのご紹介
弊社執筆書 Drupal Pro Bookのご紹介

この記事のトラックバックURL(あなたの記事にはこのページへのリンクを含めて下さい):

http://www.webgogo.jp/archives/trackback/644