NakajiJapan

餓鬼の超弩級日記


VirtualDocumentRootを利用可能にさせる

大量のドメインを管理するために「VirtualDocumentRoot」つかおうとしてたんだけど別途モジュールを組み込まないといけない
みたいだったのでそのメモがわり。

「mod_vhost_alias」が必要らしい。そこで必要になるのがDSOモジュール。このモジュールがApacheのインストール時に
組み込まれていれば、必要なモジュールをインストールしたいときに再度リコンパイルしなくても済むらしいです。

自分のApacheはあらかじめ組み込んでおいたので、組み込みたいモジュールのコンパイルだけで済みました。
確かconfigure optionは「–enable-so」だった。

# cd /usr/local/src/httpd-2.2.XX/modules/mappers
# /usr/local/apache2/bin/apxs -cia mod_vhost_alias.c

c : コンパイル
i : 出来上がったモジュールをインストール
a : 自動的に「httpd.conf」に「LoadModule」ディレクティブを追加
※下記のサイトをそのまま引用&パクリしました。ごめんなさい。。。

Apache DSOモジュールの追加方法 (2) 実例

Apxsリファレンス

No Comments »

VirtualDocumentRootとか

Apacheの設定をいじる機会がありましていろいろしることできたのでメモ。
あと考え方もちょびちょび。

・ドメインが「sub.domain.jp」でアクセスしてきた場合、「sub」部分が動的にいろいろな形でアクセスできるようにします。つまり、FQDNごとにアクセス先を違うディレクトリで分けるようにします。

このとき利用する方法としてVirtualDocumentRootの設定をします。

それが以下の設定。

# ディレクトリティブの設定

    Options -Indexes -MultiViews +ExecCGI -Includes
    AllowOverride All
    FileETag None

# すべてからのホストに対しての設定

    ServerName   %0
    VirtualDocumentRoot /home/web/%0/public_html

これによりFQDN毎にディレクトリでわけておくとその時点でディレクトリのみ見に行くようになります。
一つのドメインが追加していくごとに設定書いていくのなんてめんどくさいですもんね。
これができると楽なんだなぁと思いました。

ちなみに「%0」はFQDNの意味合いをもっているそう。あとは以下の設定項目をいろいろやれば
ドメインにURIにあわせてディレクトリ構成もいろいろできるようになるんだな。

%% insert a %
%p insert the port number of the virtual host
%N.M insert (part of) the name

0 the whole name
1 the first part
2 the second part
-1 the last part
-2 the penultimate part
2+ the second and all subsequent parts
-2+ the penultimate and all preceding parts
1+ and -1+ the same as 0

あとディレクティブの設定は別々にディレクトリを分けたのはいいけれど、時には
ある特定の条件の時には共通の処理をしたいわがままなときがあるかもしれないような気がします。。。
そのときは指定されたディレクトリ以下をアクセスできるように設定をしてから。「VirtualHost」内で
そのプログラムを実行できるようにします。

# ディレクトリティブの設定

    Options -Indexes -MultiViews +ExecCGI -Includes
    AllowOverride All
    FileETag None

# すべてからのホストに対しての設定

    ServerName   %0
    VirtualDocumentRoot /home/web/%0/public_html

    RewriteEngine On
    RewriteRule /path/to/       /var/www/test/public/index.php

こうすると指定のパスの場合だけすべて共通で「index.php」が実行されるようになる。

Apacheって便利だねー。こんなこともできるなんて最近しりますた。

DocumentRoot
VirtualHost
大量バーチャルホストの設定

No Comments »