2012-05-01 16 views
5

エラーログを別のファイルに送信したいと思う/var/www(/ var/www/app1と/ var/www/app2)に2つのディレクトリがあります。どちらも同じドメインの下にありますので、私はと考えてを別の仮想ホストの下に置くことはできません。ですから、例えば、私のようにそれらにアクセスします。Apacheサーバ - 複数のディレクトリ、異なるエラーログ

http://localhost/app1

http://localhost/app2

私は、このページに出くわした:その解決策アクセスログのために完璧に動作します

Generate access logs for different subdirectories in Apache

。しかし、 "env"引数はErrorLogディレクティブで動作しないようです。

は、この「発見」する前に、私は、これに取り組んでいた間違っ思われる:

<VirtualHost *:80> 
    ServerAdmin [email protected] 

    DocumentRoot /var/www/app1 

    <Directory /> 
    Options Indexes FollowSymLinks MultiViews 
    AllowOverride None 
    Order deny,allow 
    allow from all 
    </Directory> 

    ErrorLog ${APACHE_LOG_DIR}/app1/error.log 

    LogLevel warn 

    CustomLog ${APACHE_LOG_DIR}/app1/access.log combined 
</VirtualHost> 

私は多少私がやるべきかについて迷ってしまいました。つまり、ErrorLogを動作させる何らかの方法がある場合、または各ディレクトリの仮想ホストを設定し続ける必要がある場合です。どんな助けもありがとう!ありがとうございました!

答えて

8

VirtualHostのコンテキストでのオプションを/に設定する理由を教えてください。原因Apache ErrorLog directive docsそのコンテキストに<Directory /var/www/app1>代わりの<Directory />

を使用server config, virtual hostである - それはないDirectoryのために、サーバ全体またはVirtalHostのためのErrorLogを定義するだけで可能だということを意味しています。異なるファイルに異なるログを送信する場合は、SetEnvIfを使用してEnv変数を設定してみてください。あなたがいるディレクトリでは、SetEnvIf Request_URI ^\/a1\/ a1SetEnvIf Request_URI ^\/a2\/ !a1のようになります。その後、環境変数a1に応じてログを書き込みます。

+0

「ディレクトリ」の間違いを訂正してくれてありがとう! ErrorLogについては、アクセスログを分離するために環境がどのように機能するかを調べました。しかし、それはエラーログのために働いていないようです。私の理解は正しいのですか? (私が試してみると、Apacheが設定ファイルを解析している間にエラーが出ます)あなたが正しいと思います - エラーログはサーバまたは仮想ホスト全体です。あなたが送信したリンクに基づいて、私は別のオプションがスクリプトに各エラーログのエントリをパイプすることです...あなたの助けをたくさんありがとう! – Ray

+1

はい、これも検索しましたが、ErrorLogファイルはSetEnvIfで区切ることができないようです。どういたしまして。 –

関連する問題