web-dev-qa-db-ja.com

Apacheログファイルをapacheで読み取り可能にする方法

Apacheアクセスログファイルをwww-data(Webサーバーを実行しているユーザー)が読み取れるようにして、HTTPS経由で提供できるようにし、チェックするたびにサーバーにSSHで接続する手間を省きます。

chmod o+r access.logを試しましたが、権限が自動的に-rw-r----- 1 root admにリセットされているようです。

3
Ofri Raviv

新しいログファイルのアクセス許可も設定するlogrotateを実行している場合は、変更を加えるのに適した場所である可能性があります。たとえば、これはUbuntuサーバーのデフォルトのApache2ログローテーションです。

andreas@halleck:~$ Sudo cat /etc/logrotate.d/Apache2
/var/log/Apache2/*.log {
    weekly
    missingok
    rotate 52
    compress
    dateext
    delaycompress
    notifempty
    create 640 root adm
    sharedscripts
    postrotate
        if [ -f "`. /etc/Apache2/envvars ; echo ${Apache_PID_FILE:-/var/run/Apache2.pid}`" ]; then
            /etc/init.d/Apache2 reload > /dev/null
        fi
    endscript
}

ご覧のとおり、createという設定がありますか?新しいログファイルに持たせたいモードと所有権に自由に変更してください。また、logrotate(8)manファイルでcreateオプションがどのように記述されているかを次に示します。

モード所有者グループを作成する

ローテーションの直後(ローテーション後のスクリプトが実行される前)に、ログファイルが作成されます(ローテーションしたばかりのログファイルと同じ名前で)。 modeはログファイルのモードを8進数で指定し(chmod(2)と同じ)、ownerはログファイルを所有するユーザー名を指定し、groupはログファイルが属するグループを指定します。ログファイルの属性はどれも省略できます。その場合、新しいファイルのこれらの属性は、省略された属性の元のログファイルと同じ値を使用します。このオプションは、nocreateオプションを使用して無効にできます。

9
andol

ファイルの所有権を変更することでこれを機能させました(自動的にリセットされないようです)。それは正しい方法ですか?

0
Ofri Raviv