从PHP呼叫访问者网络统计程序
我一直在为我的网站研究不同的Web统计程序,其中一个很有前途的是Visitors。不幸的是,它是一个C程序,我不知道如何从Web服务器调用它。我曾尝试使用PHP的shell_exec,但我的Web主机(NFSN)启用了PHP的安全模式,这给了我一条错误消息。
有没有办法在安全模式下执行程序?如果没有,它可以与CGI一起使用吗?如果是这样,怎么办? (我以前从未使用过CGI)
解决方案
回答
访客看起来像一个日志分析器和报告生成器。它可能是最好的设置,作为一项计时工作,每天大约创建一次静态HTML页面。
如果我们无权访问托管帐户的外壳程序,或者无法通过某种控制面板来设置chron作业,那么我们将很不走运。
回答
有什么理由不只是使用Google Analytics(分析)?它是免费的,我们不必自己编写。我使用它,它为我们提供了很多信息。
抱歉,我知道这不是一个"编程"的答案;)
回答
我为乔纳森(Jonathan)提供第二个答案:这是一个日志分析器,这意味着我们必须将其作为Web服务器的日志文件的输入,并对其进行汇总。鉴于我们位于共享主机上,因此不可能访问该文件,即使我们要访问该文件,也很可能该文件包含给定机器上托管的所有网站的条目(设置单独的日志记录)当然,每个VirtualHost都可以通过Apache使用,但我不知道这是否是常见的做法。
一种可能的解决方法是让我们从页面中写出日志文件。但是,这相当困难,并且可能会严重影响性能(如果我们不想不时获取垃圾,则必须序列化一次写入日志文件)。总而言之,我建议我们使用在线分析服务,例如Google Analytics(分析)。
回答
As fortune would have it I do have access to the log file for my site. I've been able to generate the HTML page on the server manually - I've just been looking for a way to get it to happen automatically. All I need is to execute a shell command and get the output to display as the page.
对于实习生而言,这听起来不错。
=)
致电主机,看看是否可以解决执行Shell执行的问题。
回答
我设法自己解决了这个问题。我将以下行放在名为Visitors.cgi的文件中:
#!/bin/sh printf "Content-type: text/html\n\n" exec visitors -A /home/logs/access_log