文档根目录下的自定义 apache 错误日志

文档根目录下的自定义 apache 错误日志

我遇到了这个问题,在 Google 上搜索了一下,找到了一些解决方案,但它不太可能正常工作。有人能给出解决方案吗?

我在 Ubuntu 14.04 机器上运行 Apache2。其中只运行一个虚拟主机,并且在/var/www/html我们的根目录下有一个文档根目录。

在 html 目录中,我们的代码包含子目录。例如 dir1、dir2。我需要自定义错误日志,例如与 dir1 下的代码相关的所有错误日志都应位于 dir1 内,对于 dir2 也是如此。

我如何自定义错误日志?

答案1

根据这篇文章https://stackoverflow.com/questions/10395043/apache-server-multiple-directories-different-error-logs

错误日志无法实现,因为 ErrorLog 指令仅在服务器配置或虚拟主机上下文中起作用。可以使用 setenvif 模块提供的功能分离 AccessLog。

或者,你可以尝试类似的方法:

ErrorLog "|/usr/bin/tee -a ${APACHE_LOG_DIR}/error.log /var/www/apachelogs/error.txt"

只需在其中放置更复杂的过滤脚本,也许您就能实现您的需要。

有些吹毛求疵,为什么你需要在带有代码的目录中记录错误日志?在我看来,这是一个安全威胁。

答案2

我相信这就是你想要的:

SetEnvIf Request_URI ^/app/subapp1(/|$) subapp1
SetEnvIf Request_URI ^/app/subapp2(/|$) subapp2

CustomLog /absolute/path/to/app/subapp1/log/access_log common env=subapp1
CustomLog /absolute/path/to/app/subapp2/log/access_log common env=subapp2

来源:

https://stackoverflow.com/questions/1460757/generate-access-logs-for-different-subdirectories-in-apache

答案3

只需在您的虚拟主机中使用

错误日志 error.log

它会将错误文件写入导致错误的脚本所在的同一文件夹中。

错误

http://example.com/some/dir/test.php

会将错误写入

/public_html/some/dir/error.log

相关内容