- PR -

apache2のバーチャルサーバで特定のドメインだけ、挙動がおかしい

1
投稿者投稿内容
amatoto
常連さん
会議室デビュー日: 2004/08/02
投稿数: 30
投稿日時: 2008-03-19 19:29
お世話になります。

Debian-Linux3.1 上で、apache2のバーチャルサーバ設定で、
特定のドメインだけ、挙動がおかしくなり、質問です。


設定ファイルは、Debianのルールに基づき、バーチャルサーバごとに1ファイルを
作成して、a2ensiteで /etc/apache2/sites-enabled へシンボリックリンクを
追加していく方法を採用しています。

ただし、apacheの再起動をせず、サブドメインの追加を即時反映させたいので、
Mod_vhost_aliasを利用した設定ファイルを用意して、1ドメインにつき、
設定ファイルを2つ用意しています。

これを、Web画面からドメイン追加を行なえるよう環境を作り、
100以上のドメインが、この仕組みで正常に動作しています。


問題になっているドメインは、どの階層、ファイルへアクセスしても、
「Object not found!」の404エラーが表示されます。

この時に、気になったのが、apache2のエラーログで、
以下の行が出力されていました。

http://ex-sample.net/ へアクセスした時のエラーログ(ドメイン名は仮のものです)

[Wed Mar 19 15:54:12 2008] [error] [client xxx.xxx.xxx.xxx] File does not exist: /home/ex-sample.net/ex-sample

この場合、「ex-sample.net」のドキュメントルートは
「/home/ex-sample.net/public_html/」が設定されていて、
「/home/ex-sample.net/ex-sample」が存在しないのは理解できるのですが、
「/home/ex-sample.net/ex-sample」を参照させる設定を一切行なっていないこと、
他のドメインは、ドメイン名だけを置換した設定ファイルで、期待通りの動作をしていて、
このドメインだけが、おかしな動作をする理由が分かりません。

また、この症状が起こってから、別のドメインを同様の仕組みで追加して、
こちらは問題なく動作しています。
すでに100を超えるドメインが動作していますが、このことから、
サーバで動作させられるドメインの上限を超えている、とは
考えにくいと思われます。

今回問題が起きたのが、「.net」のドメインですが、
他のドメインで「.net」のものもあり、これらは正常に動作しています。

ドメインの文字列がおかしいのか、と疑いましたが、
文字列内に特殊な文字などはなく、ハイフンが含まれているものの、
「.com」ドメインでは、ハイフンが含まれたドメインが正常に動作しています。

同様の症状を経験した方、解決方法をご存知の方、
ご教授いただければ幸いです。

404エラーページに表示された内容から、
apache2のバージョンは以下の通りです。

Apache/2.2.3 (Debian) mod_python/3.2.10 Python/2.4.4 PHP/5.2.0-8+etch10 mod_ssl/2.2.3 OpenSSL/0.9.8c mod_perl/2.0.2 Perl/v5.8.8


このドメインの設定ファイルは、以下の通りです。

# ドメイン「ex-sample.net」用
#cat /etc/apache2/sites-available/ex-sample.net
NameVirtualHost *:80
<VirtualHost *>

ServerName ex-sample.net
ServerAlias www. ex-sample.net
DocumentRoot /home/ex-sample.net/public_html/

<Directory /home/ex-sample.net/public_html/>
Options -Indexes FollowSymLinks MultiViews ExecCGI
AddHandler cgi-script .cgi
AllowOverride AuthConfig FileInfo Indexes
Order allow,deny
allow from all
</Directory>

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

# CustomLog /var/log/apache2/access.log combined
# ServerSignature On
CustomLog /var/log/apache2/access.log vhost
ErrorLog /var/log/apache2/error.log

</VirtualHost>



# サブドメイン「xxx.ex-sample.net」対応(再起動なしに、サブドメイン追加を認識するよう設定)
# cat /etc/apache2/sites-available/var. ex-sample.net
NameVirtualHost *:80
<VirtualHost *>

# ServerAdmin
UseCanonicalName Off
VirtualDocumentRoot /home/ex-sample.net/%1/public_html/
ServerName web-singer.net
ServerAlias *.web-singer.net

<Directory /home/ex-sample.net/%1/public_html/>
Options -Indexes FollowSymLinks MultiViews ExecCGI
AddHandler cgi-script .cgi
AllowOverride AuthConfig FileInfo Indexes
Order allow,deny
allow from all
</Directory>

<Directory /home/ex-sample.net>
Options -Indexes
AllowOverride AuthConfig FileInfo Indexes
Order allow,deny
allow from all
</Directory>

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel debug

# CustomLog /var/log/apache2/access.log combined
# ServerSignature On
CustomLog /var/log/apache2/access.log vhost
ErrorLog /var/log/apache2/error.log

</VirtualHost>


よろしくお願いします。
1

スキルアップ/キャリアアップ(JOB@IT)