将 Apache 下载记录到数据库吗?

将 Apache 下载记录到数据库吗?

我有一个网站,上面托管着很多文档文件(PDF、XLS 等)。我经常收到要求统计特定文件每月下载量的请求。以前,我只是使用 sed、awk 和其他工具从 apache 日志中 grep 所需文件名以及包含“GET”和 200 状态代码的条目,然后将整个内容传输到 wc。

人们现在想要回顾多年日志的历史记录。梳理日志文件需要大量时间和资源。我想知道是否有 apache mod 或类似的东西可以将这些 GET 请求记录到数据库中?

答案1

进行点击跟踪...并将您想要的点击记录到数据库中。对于回溯和从日志中收集,我帮不上什么忙。

点击的简单 js 函数将记录该信息。

在您的页面上包含此功能,将所有这些请求发布到 php 文件:

$('a').bind('click', function() {
      //alert('User clicked on "foo."');
      var e_name = this.name;
      var curr_url = document.URL;
      var to_url = this.href;
      $.ajax({
          type: "POST",
          url: "inc/trackit.php",
          data: { name: e_name, url: curr_url, to_url: to_url, uid: uid }
            }).done(function( msg ) {
          //alert( "Data Saved: " + msg );
        });
    });

实际发布到数据库的 php 文件可能如下所示:

<?
include "db_con.php";

$e_name = $_POST['name'];
$curr_url = $_POST['url'];
$to_url = $_POST['to_url'];
$uid = $_POST['uid'];

$track = mysql_query("
        INSERT INTO logs (uid, name, url, to_url, create_date)
        VALUES ('$uid','$e_name','$curr_url','$to_url' ,now())
        ");

?>

现在,只要您的所有链接都有“名称”标签,它们就会被记录下来。

相关内容