1つのDrupalで複数サイト管理

adminさんのユーザアバター

1つのDrupalで複数のサイトを管理できるということでチャレンジしてみたのですが、どうも上手く行きませんでした。

そんな試行錯誤についてご紹介します。

別ディレクトリのdrupalをどのように呼び出すのか

この運用の私にとってのポイントは、シンボリックリンクにあったように思います。

別のディレクトリに設置したdrupalをどうやって、別のディレクトリから起動するのか?

これが、最大のテーマでした。

私の試行錯誤

はじめは、drupalを導入していない別のディレクトリに、drupalのルートにあるファイル(index.php、install,php,update.phpなどなど)を設置し、各ソースのincludeファイルのパスを書き換えで稼動確認をしてみたのですがダメでした。

settings.phpを、別ディレクトリに導入したりdrupalと同じディレクトリ構造を作って導入したりしてもダメでした。

で、まず、ここでの私の結論なのですが

drupalの複数サイト運用は、シンボリックリンクが前提として提供される機能である

シンボリックリンクというのは、簡単に言えば、ただのリンクです。それは、ただのリンクなだけで、ファイルなどは一切保持しません。
そして、durupalはシンボリックリンクによってインターフェイスされたことを検知して、Drupal本体が設置されているサイトとは別のサイトとして挙動するような仕組みになっているのです。

それが分かって、「これで解決した!」と思いました。
しかし、ページの終わりに記載している『参考リンク』にして

ln -s drupalディレクトリ シンボリックリンクの名称

とコマンドを打ち込んでもダメでした。

どのようにダメかというと

  • 既にあるディレクトリにシンボリックリンク作成のコマンドを実行すると、ディレクトリの中に、drupalディレクトリへのシンボリックリンクが作成されてしまう。
  • かつ、そのリンクは、fffttpなどのソフトではたどれるのですが、ブラウザを経由してアクセスしようとしても無効になってしまう。(404 NOT FOUND)

色々試してみて、私のサーバー環境では、次の条件のときのみ、ブラウザでアクセスしても有効なシンボリックリンクの設置が可能であるような感じでした。

  • 公開ディレクトリの最上位の階層にシンボリックリンクを設置する
  • シンボリックリンクには、既存ではない新しい名称を指定する

私の使っているサーバーでは、サブドメインを作成すると、そのサブドメインと関連付けられたディレクトリが公開ディレクトリの下位に作成されるため、

公開ディレクトリで

ln -s drupalディレクトリ シンボリックリンクの名称( = サブドメインのディレクトリの名称)

のコマンドを打つと、サブドメインのディレクトリの中にシンボリックリンクが作成されてしまうので上手く行きませんでした。(かつ、このシンボリックリンクは、fffttpなどのソフトではたどれるのですが、ブラウザを経由してアクセスしようとしても無効になってしまうものです。)

公開ディレクトリの上位に、wwwを公開ディレクトリに関連付けるシンボリックリンクがあるので、同様に、サブドメイン名称でシンボリックリンクを作ってみたのですがうまく行きません。(サブドメインの関連付けが、公開ディレクトリのサブドメイン名称のディレクトリになされているため、新たに作ったシンボリックリンクは有効にならないのだろうと想像しています。)

参考リンクによると、サブドメインでも問題なく稼動するとのことなので、私の知識や作業の問題か、サーバー環境の問題によって、現在のところ、サブドメインでの運用は不可能という結論に至っています。

まとめ

で、私のサーバー環境(レンタルサーバーなので詳しいことは分かりません)においては、次の条件のとき、1つのdrupalで複数のサイトの運用が可能という結論に至りました。(いまのところ・・・)

たぶん、サブ・ドメインとシンボリックリンクを関連付けることができるツールが公開されているレンタルサーバーでは問題なく稼動させることができるのではないかと、想像しています。

以下の記述は、私のレベルと、現在使用中のレンタルサーバー環境におけるものです。全ての方に有効なものではありません。
もし、この記事を読んで、間違っている点、この状態でのDrupal複数サブドメイン運用の実現方法を教えていただける方は、是非、コメントをお願いします。

(複数のdrupalを管理するのは、やっぱり、めんどうです(^_^;)・・・・)

  • サブドメインを使った複数サイト運用はできない。
  • 公開ディレクトリの最上位階層に、シンボリックリンクは設置する。
  • シンボリックリンクは、既存ではない新しい名称を使用する。

既存のサイトを1つのdrupalで運用するように変更する場合

次のことを前提とするしかないのかな・・・と、今は、思っています。

  • もし、サブドメインを使用していた場合は、サブドメインの運用を諦める(やめる)
  • 作業は、失敗することを前提とし、いつでも、作業前の状態に戻せるように考えながら、作業を進める

サブディレクトリの名称を変更しても構わない場合

  1. 新たな名称のシンボリックリンクを作成する。
  2. drupalディレクトリに、旧ディレクトリのsettings.phpの内容を生かしつつ、ベースURLを変更(参考リンクの記述を参考)、settings.phpを設置する。
  3. 新しいサブディレクトリにアクセスし稼動確認する。
  4. 問題なければ、旧ディレクトリのデータを削除する。

サブディレクトリの名称を変えたくない場合

  1. drupalディレクトリに、旧ディレクトリのsettings.phpの内容を生かしつつ、ベースURLを変更(参考リンクの記述を参考)、settings.phpを設置する。
  2. 一旦、バックアップをとって、サブディレクトリを削除する。
  3. サブディレクトリと同じ名称のシンボリックリンクを作成する。
  4. 新しいサブディレクトリにアクセスし稼動確認する。

参考リンク

Trackback URL

http://homepage.ok-jp.com/trackback/133
No votes yet
Tags: