如何让共享主机用户可以实时访问 Apache 日志文件?

如何让共享主机用户可以实时访问 Apache 日志文件?

我正在寻找一种解决方案,使 Apache 日志文件以安全的方式实时提供给共享主机。我在 Debian 上运行 Apache 2.2,并将 Apache 配置为在公共目录(即 /var/log/apache2)中为每个虚拟主机保留单独的访问日志和错误日志,日志文件归 root.adm 所有,具有 640 权限。

现在我有一个 hack 解决方案,它使用每小时一次的 cronjob 将所有虚拟主机的日志文件复制到另一个目录,该目录对于以自定义 CGI 脚本身份运行的用户而言是只读的。然后,此 CGI 脚本将经过身份验证的用户与其拥有的虚拟主机进行匹配,并提供这些虚拟主机的日志文件供下载。这很糟糕,因为我需要保留一个单独的表来将经过身份验证的用户与其虚拟主机进行匹配,并且日志每小时仅更新一次。

答案1

将日志写入一个进程,并让该进程适当地分割出日志文件。

请参阅 Apache 文档中的“管道日志“。

答案2

如果您已经有单独的日志,为什么不将它们放在用户主文件夹中?您显然不希望它们位于用户 Web 根目录中,但他们的主文件夹不应通过 Web 访问,所以这应该没问题。还是我遗漏了什么?

巴特。

答案3

我非常确定 syslog-ng 可以满足您的要求。它支持拆分输出并为生成的文件分配所有权。所有这些都可以近乎实时地完成。

相关内容