PHPスクリプトを介してログにアクセスするには?

PHPスクリプトを介してログにアクセスするには?

私のApacheサーバーに統計ファイルがあります

/var/www/vhosts/test/statistics/logs/access_log

使ってみよう

echo system('cat /var/www/vhosts/test/statistics/logs/access_log');

PHPスクリプトからアクセスしましたが、出力は出ません。

echo system('dir');

予想される dir 出力を提供します。

cat /var/www/vhosts/test/statistics/logs/access_log

しかし、Puttyを使って接続し、rootで作業してください。

PHPスクリプトを介してログにアクセスするには?

ベストアンサー1

HTTPプロセスはファイルにアクセスできません。 CentOS 6 ApacheプロセスはApacheユーザーとして実行されます。例:

[root@talara ~]# ps aux | grep httpd
root      2300  0.0  2.7 334744 28020 ?        Ss   Jul10   0:47 /usr/sbin/httpd
apache    8354  0.0  2.0 334744 20536 ?        S    Jul21   0:00 /usr/sbin/httpd
apache    8355  0.0  2.0 334744 20536 ?        S    Jul21   0:00 /usr/sbin/httpd
apache    8356  0.0  2.0 334744 20536 ?        S    Jul21   0:00 /usr/sbin/httpd

Apacheでファイルアクセスをテストするには:

[root@talara ~]# su apache
bash-4.1$ cat /var/log/messages
cat: /var/log/messages: Permission denied
bash-4.1$

Apacheがこれらのファイルに直接アクセスできるようにする私が知っているほとんどの方法は、膨大なセキュリティホールであるため、ある点で眉をひきます。しかし、セキュリティが十分であると思われる場合は、パスワードなしでsudoersファイルにapacheを追加してください(参照?非常に、非常に悪い)。次に、PHPコードを次のように変更します。

echo system('sudo cat /var/www/vhosts/test/statistics/logs/access_log');

より良いアプローチについてのコミュニティの意見を歓迎します。

おすすめ記事