【问题标题】:Can PHP read server HTTP logs?PHP 可以读取服务器 HTTP 日志吗?
【发布时间】:2009-06-05 11:35:46
【问题描述】:

我想轻松访问服务器的日志,以某种方式解释它们并将该数据显示给网站访问者。 PHP如何访问服务器的HTTP日志和其中的所有数据?

【问题讨论】:

  • 标记问题时请注意提示提示。任何名称后数字小于 10 的标签都可能是错误的。避免创建新标签。
  • 但是有一个用于创建流行标签的完整徽章,称为 Taxonomist -- 请参阅 stackoverflow.com/badges -- 所以似乎允许创建新标签!
  • 如果它们是 good 标签,但如果可以的话,你应该首先尝试适应现有的类别。
  • 我只是简单地创建“好”标签。比如“服务器日志”。

标签: php logging


【解决方案1】:

最简单的方法:创建从 /var/log/apache2/{acces,error,...}.log 到可读目录的符号链接,例如:/var/www

【讨论】:

  • 注意2细节: 1) PHP可以在www的内容之前访问文件夹。所以最好在 www 之前有符号链接 dest 以避免用户在浏览器中打开它。在 PHP 中,您可以简单地再添加一个“../”来访问它。例如,如果您的文件是“test.log”并且您的 php sript 位于domaine.com/script.php,它将使用“../test.log”访问该文件 2) 您必须更改原始文件的权限。在您的终端中,对原始文件执行 chmod 744 。在另一种情况下,将不允许 PHP 读取文件,即使通过符号链接也是如此。
【解决方案2】:

服务器日志通常只是一个文件,您可以像任何其他文件一样读取和解析它。逐行读取并使用split 或正则表达式通常是这样做的。

不过,这些可能会变得非常大,因此每天或一小时运行一次或更新摘要文件的单独进程并不罕见,然后您的 PHP 脚本将读取该文件。或者通常,单独的过程会生成静态 HTML 页面,然后才会得到服务。有许多日志分析器以这种方式工作。

【讨论】:

    猜你喜欢
    • 2016-03-12
    • 2015-05-18
    • 2017-03-01
    • 2013-11-23
    • 1970-01-01
    • 1970-01-01
    • 2016-04-17
    • 2014-06-11
    • 1970-01-01
    相关资源
    最近更新 更多