- - PR -
apache2のバーチャルサーバで特定のドメインだけ、挙動がおかしい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 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