Apacheのカスタムログ記録障害について

このQ&Aのポイント
  • ホスティングサーバのApacheで発生しているカスタムログの記録障害について質問します。
  • バーチャルドメインのアクセスログが記録されず、中身に書き込まれない状態です。
  • 質問者はホスティング管理ソフトのメーカーと連絡を取りましたが、最終的にはApacheの問題とされました。原因を探しています。
回答を見る
  • ベストアンサー

Apacheのカスタムログ記録障害について

はじめまして。現在、以下の環境でホスティングサーバを運用しております。 稼働開始から半年ほど問題なく動いていたのですが、各バーチャルドメインのWebのアクセスログが記録されないという状態になってしまいました。アクセスすると、ファイルのタイムスタンプは最終アクセス日時に更新されるのですが、中身に書き込まれない状態です。 OS:RedHat EnterPrise Linux 4 ES 6.1 Kernel:kernel-2.6.9-55.EL WebServer:Apache(httpd-2.0.52-32.ent) 管理ソフト:HDE Controller4 ISP Edition ◎Apacheの設定ファイル ■/etc/httpd/conf/httpd.confの一部 Include vhosts/*.conf ◎VirtualDomain設定ファイル ■/etc/httpd/vhost/directory_hogehoge.jp.conf <Directory "/home/lcvirtualdomain/hogehoge.jp/htdocs/"> Options -Includes -ExecCGI #LCControlDomain "hogehoge.jp" #AuthName "" #AuthType Basic #AuthUserFile "/home/lcvirtualdomain/hogehoge.jp/htdocs/.htpasswd" #Require valid-user </Directory> ■/etc/httpd/vhost/virtual_hogehoge.jp.conf <VirtualHost *:80> UserDir disabled ServerName "hogehoge.jp" ServerAdmin "webmaster@hogehoge.jp" #LCControlDomain "hogehoge.jp" ScriptAlias /cgi-bin/ /home/lcvirtualdomain/hogehoge.jp/htdocs/cgi-bin/ AliasMatch ^/~([^/]+)/(.*) /home/lcvirtualdomain/hogehoge.jp/users/$1/public_html/$2 ServerAlias www.hogehoge.jp DocumentRoot "/home/lcvirtualdomain/hogehoge.jp/htdocs/" CustomLog /home/lcvirtualdomain/hogehoge.jp/logs/access.log combined env=!imgfile ErrorLog /home/lcvirtualdomain/hogehoge.jp/logs/error.log Hostnamelookups "on" </VirtualHost> ドメインは「hogehoge.jp」と架空のものに書き換えております。 ホスティング管理ソフト(HDE Controller)のメーカーとやり取りしていたのですが、最終的に「apacheの問題と思われる」との回答で終わってしまい、困っています。 何か考えられる、原因はないでしょうか。 足りない情報がありましたら、追って補足いたします。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • junkUser
  • ベストアンサー率56% (218/384)
回答No.2

>chown apache:apache access.log >としたところ、書き込まれるようになりました。 >その後 >chown root:root access.log >で元に戻しても問題なく書き込まれるようになりました。 なんとも言い難い事象ですね。 アクセス権を戻しても正常に書き込まれることから、アクセス権の問題ではないように思えます。 サービスの再起動のコマンドはどのようにしていますか? バーチャルホストを追加した際に、 service httpd reload を使用したのではないでしょうか。

creamstew8
質問者

補足

ご回答ありがとうございます。 >サービスの再起動のコマンドはどのようにしていますか? >バーチャルホストを追加した際に、 >service httpd reload バーチャルホスト追加はHDEControllerを使用しているので どのようにサービスを再起動しているか不明なのですが、 今回私が、試していた時にしていたのは /etc/init.d/httpd restart でやっていました。

その他の回答 (1)

  • junkUser
  • ベストアンサー率56% (218/384)
回答No.1

すでに調査済みかもしれませんが、現在の情報から羅列。 1.ユーザーディレクトリのquota超え 2.rootにquotaをかけている 3.env=!imgfile にすべてのログがヒット   とりあえず、env=!imgfile を外してから確認してみてはいかがでしょうか。 エラーログは記録されますか? アクセスログが記録された最後の日付でなにか作業はなかったのでしょうか?

creamstew8
質問者

お礼

とりあえず、現在は正常に機能しておりますので様子を見ることにします。 ありがとうございました。

creamstew8
質問者

補足

早速のご回答ありがとうございます。 1.ユーザーディレクトリのquota超え 特にかけていません 2.rootにquotaをかけている 特にかけておりません。 3.env=!imgfile にすべてのログがヒット   とりあえず、env=!imgfile を外してから確認してみてはいかがでしょうか。 変えた上で、httpを再起動しましたが変化なしでした。 >エラーログは記録されますか? はい、エラーログは記録されいます。 しかも、バーチャルドメインではなく、大本のwebサービスのaceess.logとerror.logは /var/log/httpd/ 配下になるのですが、こちらは両方、正常に書き込まれています。 先ほどから調査していてわかったことがあります。 各バーチャルドメインのログは /home/lcvirtualdomain/hogehoge.jp/logs/ 配下に格納されいてls -laコマンドで確認すると drwxr-xr-x 2 root root 4096 May 5 14:55 . drwxr-xr-x 7 lcvirtualdomain lcvirtualdomain 4096 Sep 21 2007 .. -rw-r--r-- 1 root root 1123 May 5 21:43 access.log -rw-r--r-- 1 root root 8192 May 5 21:43 error.log となっていて所有権がrootとなっています。HDEのメーカーはこれで正常だということだったのですが、httpd.confの中に User apache Group apache という記述があったため、ログもapacheユーザとして書きこんでいるのではないかと思い、 chown apache:apache access.log としたところ、書き込まれるようになりました。 その後 chown root:root access.log で元に戻しても問題なく書き込まれるようになりました。 もともと、所有権はrootだったはずで、動いていたはずなのですが なぜなのでしょうか。 最悪、前バーチャルドメインに対して前述の処理を行えば解決できそうですが、原因が分からないため気持ち悪いところです。 とりあえず、現在の状況を報告いたします。 なにか、お分かりになることがあればアドバイスいただけると幸いです。 よろしくお願いします。

関連するQ&A

  • ApacheでのVirtual Hostの設定

    RedHatLinux9.0/Apache2.0 動的IPのADSLでhn.orgのDDNSを使い、サーバを立てました。 ドメインを持っているため、それを割り当てようと/etc/httpd/conf/httpd.confでVirtual Hostの設定をしたのですが、外部からドメインで接続しても指定したディレクトリを読みに行ってくれず、ディフォルトの/var/www/htmlのディレクトリが表示されていまいます。 DNS(bind?)をこちらで動かしてないのですが、それが原因なのでしょうか? httpd.confはこのようにしています。 # # Use name-based virtual hosting. # NameVirtualHost 127.0.0.1 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for requests without a known # server name. # <VirtualHost 127.0.0.1> ServerAdmin admin@自分のドメイン.biz DocumentRoot /home/ff/www/ ServerName www.自分のドメイン.biz ServerAlias 自分のドメイン.biz ErrorLog logs/ff/error_log CustomLog logs/ff/access_log common </VirtualHost> また、NameVirtualHost 127.0.0.1と<VirtualHost 127.0.0.1>を、NameVirtualHost *と<VirtualHost *>に変えるとすべてのアクセスがForbiddenになってしまいます。 ログをみたところ、どういうわけかIE6.0なのにHTTP/1.0で繋がっているみたいなのですが、やはりそれなのでしょうか・・・? すみません。アドバイスよろしくお願いいたします。m(_ _)m

  • apacheのvirtualhostについて

    Apache/1.3.22のname virtual hostについておたずねします。 httpd.confの記述で NameVirtualHost 219.***.***.*** <VirtualHost 219.***.***.*** ServerName www.********.co.jp DocumentRoot /home/web/docs ScriptAlias /cgi-bin/ /home/web/cgi-bin/ ErrorLog /home/web/logs/error_log CustomLog /home/web/logs/access_log combined </VirtualHost <VirtualHost 219.***.***.*** ServerName test.********.co.jp DocumentRoot /home/web/test ScriptAlias /cgi-bin/ /home/web/test-cgi-bin/ ErrorLog /home/web/logs/test-error_log CustomLog /home/web/logs/test-access_log combined </VirtualHost としているのですがVirtualHostが反映されません。 また、LAN内のサーバーですのでnamed.confはviewを使用し、zoneファイルは2通り用意しており外部からも内部からも正常に正引きできます。 どのような原因が考えられるでしょうか? また、対処法はどのようにすればよいのでしょうか? ご教授いただきますようお願いいたします。

  • apacheのVirtualHostでの振り分けについて(SSL)

    VirtualHostを使って同一サーバーでのSSLの対応または非対応の振り分けをしています。 WinXP Apache 2.0.55 C:\Apache3 Tomcat 4.1 C:\Program Files\Apache Group\Tomcat 4.1 OpenSSL C:\OpenSSL apacheとtomcatは連携させています。 apache httpd.confの最後に以下を追加するとApacheが起動しません。 <VirtualHost localhost:80> ServerAdmin webmaster@dummy-host.example.com DocumentRoot "C:/Apache3/htdocs"   SSLDisable # ServerName dummy-host.example.com # ErrorLog logs/dummy-host.example.com-error_log # CustomLog logs/dummy-host.example.com-access_log common </VirtualHost> SSLDisableを削除すると、問題なく起動しますがhttp,httpsと両方でアクセス出来てしまいます。 何がいけないんでしょうか? 最終的には、デフォルトでSSL不可にしておいてVirtualHostで 指定したディレクトリにSSLを施したいです。

  • Apache Virtual Hostでの認証

    Apache の Virtual Host で認証をかけることはできますか? 以下のように設定したのですが、Apache起動時に Syntax error on line 1066 of /usr/local/apache2/conf/httpd.conf: AuthType not allowed here といわれます。 .htacessを使えば実現できるようですが、VirtualHostディレクティブ内で設定する方法はないでしょうか? <VirtualHost *:80> ServerAdmin test@example.com DocumentRoot /home/test ServerName test.example.com ErrorLog logs/test-error_log CustomLog logs/test-access_log common AuthType Basic AuthName "Restricted Files" AuthUserFile /home/test/.htpasswd Require user test </VirtualHost> よろしくお願いします。

  • バーチャルホストの設定について

    http://test.com →/usr/local/apache/htdocs http://www.test.com →/usr/local/apache/htdocs http://user.test.com →/home/user/public_html としたいのですが、DNSの設定とhttpd.confの設定はどのようにしたらよいでしょうか? DNSはワイルドカード有効にしてあります。 <VirtualHost *:80> ServerAdmin webmaster@test.com DocumentRoot /usr/local/apache/htdocs Servername www.test.com ErrorLog logs/www.test.com-error_log CustomLog logs/www.test.com-error_log common </VirtualHost> <VirtualHost *:80> ServerAdmin user@test.com DocumentRoot /home/user/public_html Servername user.test.com ErrorLog logs/user.test.com-error_log CustomLog logs/user.test.com-error_log common </VirtualHost> <VirtualHost *:80> ServerAdmin webmaster@test.com DocumentRoot /usr/local/apache/htdocs Servername test.com ErrorLog logs/test.com-error_log CustomLog logs/test.com-error_log common </VirtualHost> このように設定したところ http://test.comでアクセスするとhttp://user.test.comと同じページが表示されてしまいます。

  • Apacheのエラーログ【Directory index forbidden by rule】

    質問いたします。 Apacheのエラーログで Directory index forbidden by rule: /test/img/, referer: http://test.jp/ と頻繁に出ます。 もともと/test/img/ディレクトリにはimageファイル以外は入れていないので、そもそもindexを捜しに来る時点でhttpd.confの設定が間違っていると思います。 DocumentRootはhome/testです。 VirtualHostで設定しており、 <VirtualHost *:80> ServerName test.jp ServerAlias www.test.jp DocumentRoot /test/www </VirtualHost> と設定しています。 httpd.confのどのへんに問題があるのか教えてください。

  • apacheのバーチャルホストの設定について

    XAMPPを一通りインストールして、apacheでバーチャルホストの設定を行っております。 環境:Windows2003server ApacheFriends XAMPP (Basispaket) version 1.7.1 + Apache 2.2.11 固定のグローバルIPアドレスは1つ持っており、仮に111.222.333.444としておきます。 バーチャルホストのドメイン名は2つ設定したいと思っており、 aaa.hogehoge.net bbb.hogehoge.net 他業者のDNSにて111.222.333.444をAレコードの値として、それぞれ割り当てしました。 ちなみに、hogehoge.netのAレコードは別のサーバーを当てています。 そこで、携帯から直接 http://aaa.hogehoge.netとhttp://bbb.hogehoge.net をアクセスしましたら、自社サーバーのC:/xampp/htdocs/にあるindex.htmが表示されました。 一応、名前解決は成功したとして、、、 念のため、Windowsのhostsに 111.222.333.444  aaa.hogehoge.net  bbb.hogehoge.net を追加しました。 apacheのメイン設定-httpd.conf ------------------------------ ServerRoot "C:/xampp/apache" Listen 80 ServerAdmin admin@localhost ServerName localhost:80 DocumentRoot "C:/xampp/htdocs/" ↓バーチャルホストのファイルをインクルード Include conf/extra/httpd-vhosts.conf ----以下、httpd-vhosts.confの中身 ホスト名を2つ設定 NameVirtualHost 111.222.333.444:80 <VirtualHost 111.222.333.444:80> ServerAdmin admin@aaa.hogehoge.net DocumentRoot C:/xampp/htdocs/aaa.hogehoge.net ServerName aaa.hogehoge.net ServerAlias www.aaa.hogehoge.net <Directory "C:/xampp/htdocs/aaa.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> <VirtualHost 111.222.333.444:80> ServerAdmin admin@bbb.hogehoge.net DocumentRoot C:/xampp/htdocs/bbb.hogehoge.net ServerName bbb.hogehoge.net ServerAlias www.bbb.hogehoge.net <Directory "C:/xampp/htdocs/bbb.hogehoge.net"> Options FollowSymLinks Includes ExecCGI AllowOverride None Order allow,deny Allow from all </Directory> </VirtualHost> 設定後、apacheを再起動して、再度携帯電話からhttp://aaa.hogehoge.netとhttp://bbb.hogehoge.netにアクセスしたのですが、C:/xampp/htdocs/にあるindex.htmが表示されてしまい、C:/xampp/htdocs/aaa.hogehoge.net/index.htm、C:/xampp/htdocs/aaa.hogehoge.net/index.htmが表示されません。それぞれのパーミッション自体は766になっているので、こちらは違うと思うのですが、バーチャルホストの設定が悪いのか何処が悪いのか、何か設定が悪いのか全くわからなくなりました。参考書のマニュアルを見ると、「バーチャルホストを設定すると、メインホストの設定が無効になる」と書いてあったので、それでもメインのホストが表示されてしまうということは、バーチャルホストの設定に問題があるのだと自分なりに察知しております。 どなたか、考えられる原因や心当たりある事がございましたら、ご教授をお願いします。

  • apache の設定

    ホームページを置いているディレクトリで、index.html がない場合に ディレクトリの中身が見えてしまうので、httpd.conf を修正しました。  <Directory /home/hogehoge> Options All </Directory> から  <Directory /home/hogehoge> Options Includes FollowSymLinks ExecCGI </Directory> で、Indexes をとったつもりで、apache をリスタート させたのですが、それでもディレクトリの中身が見えてしまいます。 何か、勘違いしているのでしょうか??? また他に行うことがあるのでしょうか。 教えて頂けますでしょうか。 よろしくお願い致します。

  • バーチャルホストで、同htmlファイルが表示される

    バーチャルホストを作成しました。 http://wp.yat-net.com/?p=2400 http://likealunatic.jp/2008/05/16_xampp.php の様のページを参考にし、バーチャルドメインを設定しました。 【1.httpd.conf】  Include "conf/extra/httpd-vhosts.conf" ←有効 【2.httpd-vhosts.con :2つのバーチャルホスト作成】 <VirtualHost *:80>  DocumentRoot C:/xampp/htdocs  ServerName localhost  ErrorLog "logs/error.log"  CustomLog "logs/error.log" common </VirtualHost> <VirtualHost *:80>  DocumentRoot C:/xampp/htdocs/test/doc  ServerName wordpress.localhost  ErrorLog "logs/error.log"  CustomLog "logs/error.log" common </VirtualHost> 【3.hostsの設定】  127.0.0.1 localhost  127.0.0.1 wordpress.localhost 【4.index.htmlを作成】   C:/xampp/htdocs/index.html ⇒ aaaaa と記述したもの   C:/xampp/htdocs/test/doc ⇒ eeeee と記述したもの 【5.ブラウザからアクセス】  http://wordpress.localhost/index.html  http://localhost/index.html 【6.結果】 「http://wordpress.localhost/index.html」「http://localhost/index.html」のどちらでアクセスしても、 「C:/xampp/htdocs/index.html」の内容(aaaaa)が表示されます。 <質問> なぜ、「http://wordpress.localhost/index.html」でアクセスした際に、eeeeのindex.htmlファイルが 表示されないのでしょうか…。 環境は「Win7、Xampp1.7.7で Apache/2.2.21 」になります。

  • PHPの教本の説明などで質問があります。

    http://www.amazon.co.jp/dp/4774144371  以上教本の、P28~P29の質問です。  以下中身です。 ■ドキュメントの設定 ドキュメントルールをC:\xampp\htdocs\study.localhostに設定します。まずはディレクトリを作成します。  次にApacheのバーチャルホストを設定します。C:\xampp\apache\conf\conf\extra\http-vhost.conf を開き次の設定を追加してください。<VirtualHost>で囲まれた部分がバーチャルホストの設定です。ServerNameにWeb ブラウザからアクセスする際のドメイン名(study.localhost)、DocumentRootおよび<Directory>にドキュメントルートへの パスを指定します。 (パソコン側のファイルを以下のプログラムに修正しろと言うことでしょう!?)  NameVirtualHost *:80 <Virtualhost *80> ServerName study.localhost DocumentRoot C:\xampp\htdocs\study.localhost DirectoryIndex index.php index.html <Directory “C:\xampp\htdocs\study.localhost”> AllowOverride All Allow from All </Directory> </VirtualHost> ---------------------------------------------------------- 以上が教本の中身です。 そこで質問があります! 第一の質問  教本では C:\xampp\apache\conf\conf\extra\http-vhost.confですが! パソコン側に存在するファイルは httpd-vhosts.confです。 教本のhttp-vhost.confではなくて、httpの部分がパソコン側では httpdと成っていて、dが多いです! ファイル名が違うことで、設定後何か支障はありますか!? 第二の質問  以下が、httpd-vhosts.conf  ファイルのプログラム全文を以下表示しましたが、 ##NameVirtualHost *:80が二個存在していて、どちらのプログラムを 修正すればいいのでしょうか!?  以上二件よろしくお願いします。 # Virtual Hosts # # Required modules: mod_log_config # If you want to maintain multiple domains/hostnames on your # machine you can setup VirtualHost containers for them. Most configurations # use only name-based virtual hosts so the server doesn't need to worry about # IP addresses. This is indicated by the asterisks in the directives below. # # Please see the documentation at # <URL:http://httpd.apache.org/docs/2.4/vhosts/> # for further details before you try to setup virtual hosts. # # You may use the command line option '-S' to verify your virtual host # configuration. # # Use name-based virtual hosting. # ##NameVirtualHost *:80 # # VirtualHost example: # Almost any Apache directive may go into a VirtualHost container. # The first VirtualHost section is used for all requests that do not # match a ##ServerName or ##ServerAlias in any <VirtualHost> block. # ##<VirtualHost *:80> ##ServerAdmin webmaster@dummy-host.example.com ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com" ##ServerName dummy-host.example.com ##ServerAlias www.dummy-host.example.com ##ErrorLog "logs/dummy-host.example.com-error.log" ##CustomLog "logs/dummy-host.example.com-access.log" common ##</VirtualHost> ##<VirtualHost *:80> ##ServerAdmin webmaster@dummy-host2.example.com ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com" ##ServerName dummy-host2.example.com ##ErrorLog "logs/dummy-host2.example.com-error.log" ##CustomLog "logs/dummy-host2.example.com-access.log" common ##</VirtualHost>

    • 締切済み
    • PHP