Apacheがログファイルを保持する場所を見つけるにはどうすればよいですか?


10

Apacheがサイトのアクセスログとエラーログ保持している場所を見つける必要があります。

何十ものサイトがホストされているサーバーにrootアクセスできます。これらのサイトの1つをデバッグしようとしています。サイトを閲覧すると、/var/logs/apache2/access.logまたはに表示されません/var/logs/apache2/error.log。(ファイルはそこにあり、他のサイトはそれらに記録されます。実際、何百もの異なるログファイルがあります)。

どちらの結果locate httpd.logも発行find . -iname httpd.logされていません/

サイトのApache構成は次のとおりです。

ServerName REDACTED.com.br
DocumentRoot /var/www/xyz/wiki
AssignUserId xyz_wiki xyz_wiki

<Directory /var/www/xyz/wiki/data>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/conf>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/bin>
order allow,deny
deny from all
</Directory>
<Directory /var/www/xyz/wiki/inc>
order allow,deny
deny from all
</Directory>

php_admin_value open_basedir /var/www/xyz/wiki/:/mnt/vdImagem/www/xyz/wiki/

6
これはだまされたものではありません。OPは質問自体で提案された複製にリンクしており/var/log/apache2/access.log、複製が示唆するものではない情報が含まれていないことを明確に述べています。
terdon

試してみてくださいsudo lsof -nP -c apache2 -c httpd | grep -i log
ステファンChazelas

回答:


4

Apacheのログファイルから彼の情報について問い合わせることができますが、実際の実行可能ファイルからこれらのことについて問い合わせることが一般的には適切です。ログの解析は注意が必要な場合があり、特定の設定がボックスでどのように行われたかをよく知らないと、間違いを犯す可能性があります。

httpd -V

$ httpd -V
Server version: Apache/2.2.15 (Unix)
Server built:   Feb 13 2012 22:31:42
Server's Module Magic Number: 20051115:24
Server loaded:  APR 1.3.9, APR-Util 1.3.9
Compiled using: APR 1.3.9, APR-Util 1.3.9
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

調べたい主な項目は次のとおりです。

  1. これにより、Apacheが参照するすべてのファイルが「ルート」ディレクトリから始まることがわかります。

     -D HTTPD_ROOT="/etc/httpd"
    
  2. ここから、構成ファイルが定義されます。このパスは#1で述べたパスからの相対パスであることに注意してください/etc/httpd/conf/httpd.conf

     -D SERVER_CONFIG_FILE="conf/httpd.conf"
    
  3. エラーログはこちらです。

     -D DEFAULT_ERRORLOG="logs/error_log"
    

    注: これは最初は少し混乱するかもしれませんが、Red Hatディストリビューションでは、このディレクトリに/etc/httpdと呼ばれるリンクがよく作成されていlogsます。

    $ ls -ld /etc/httpd/logs
    lrwxrwxrwx. 1 root root 19 Jul  9  2012 /etc/httpd/logs -> ../../var/log/httpd
    
  4. Apacheで使用される可能性のある他のログファイルは、設定ファイルでさらに定義されます/etc/httpd/conf/httpd.conf


1
httpd -VコマンドはDebian 9では機能しません
Christia

試してみるapache2 -V
Draex_

3

あなたのApache設定で文字列を探してくださいErrorLog

通常、Apacheプロセス自体に1つあります。各VirtualHostは独自のログファイルを定義することもできるので、それらもチェックしてください。

VirtualHostが独自のログファイルを定義しない場合、グローバル構成で指定されたログファイルが使用されます。正しいログファイルは見つかったが、必要な情報が表示されない場合は、を増やしてみてくださいLogLevel


1
/etc/apache2# rgrep "ErrorLog" .${APACHE_LOG_DIR}/error.sitename.log、を指定する数十の構成ファイルを表示しますが、これはそれらの1つではありません。/etc/apache2# rgrep "LogLevel" .デフォルトのファイルをいくつか取得します。
そのブラジル人のガイ

2
Debian ${APACHE_LOG_DIR}では/var/log/apache2、デフォルトで定義されています。/etc/defaults/apache2変更されていないか確認してください。
バハマート2014

LogLevel特定のVirtualHostのセットがない場合は、追加できます。
バハマ14

1

/etc/apache2/conf.d/other-vhosts-access-log含むファイルを見つけました

# Define an access log for VirtualHosts that don't define their own logfile
CustomLog ${APACHE_LOG_DIR}/other_vhosts_access.log vhost_combined

単一のファイルにvhostsからのすべてのログを組み合わせる方法のように見えます。私はチェックし、アクセスがそこで記録されていました。

ソース

そのサイトの構成ファイルにErrorLogおよびAccessLogディレクティブを挿入すると、個別のログファイルが提供されました。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.