首页 > 学习收获 > wordpress > firestats使用心得
2007
08-13

firestats使用心得

firestats是一款非常强大的通用统计软件,从官网介绍看,他应该是支持各种PHP的站点,而用来做WORDPRESS的统计只是他的一项功能而已。呵呵。

说他强大,是因为他的记录很多,多到变态:访问量统计、最高访问页面、甚至访问者的IP、所在地(通过IP2C实现)、操作系统和浏览器。。所以没事的时候看看访问自己页面的是FF的多还是IE的多,也是一件乐事。

不过这里要说一句,貌似firestats对maxthon识别不好,不过这个应该不是fs的问题,maxthon本身报上的名号就是罗里罗嗦的一大串,fs只是记录这一大串而已。呵呵。无伤大雅~

关于fs的安装和使用,他的官方网站已经说得很清楚了。我也不再多说,而且如果只是在wordpress下使用的话,只需要下载后当作一个普通plugin来用就行。非常方便。

我这里说说我使用时碰到的问题。首先很郁闷的一点,就是传说中的php 5.2.1的64bit linux bug。该bug将导致ip2c无法正常工作,从而使得fs也无法显示。我在fs官网上提交了ticket,很快就有了回音,他们指给了我一个解决方法。原文地址http://www.firestats.cc/ticket/304

该方法很简单,去fs的安装目录下,找到php/ip2c/ip2c.php,找到最下面的如下函数:

function readInt()
{
$a =unpack(‘N’, fread($this->m_file, 4));
return $a[1];
}

将该函数替换为:

function readInt()
{
$a=unpack(‘N’, fread($this->m_file, 4));
$b = sprintf(“%b”, $a[1]);
if(strlen($b) == 64){
$new = substr($b, 33);
$a[1] = bindec($new);
}
return $a[1];
}

这样就OK了。但是根据本文低下开发者的评论,这种方法貌似会对资源造成一定浪费,也就是说,这种方法应该是一种保险的但是会耗费更多资源的方法。开发者后续升级时并没有修改该文件。所以,如果使用时没有出现任何BUG,请千万不要修改。如果出现BUG,也要先确认是否php5的64bit bug导致ip2c不可使用,如果确认是这样才可以考虑修改。

另一个问题就是单空间双站的统计问题。我的这个小地方放了两个wordpress站点,我想在两个站点均使用firestats进行统计。开始时我是在两个wp的plugin文件夹里面各放了一个全套firestats,然而启用后发现,只有一个firestats能正常显示,另一个在进入firestats界面时会提示“firestats.js.php: session expires”。d读了一下该php文件,发现文件开头会调用php文件夹下的sessions.php,如果失败则报错。我就怀疑应该是两个firestats都会请求同一个session,那么处理器方面可能会冲突出bug。。。当然,仍然是完全的望文生义。呵呵。

于是想了半天,决定将firestats安装为独立版本,然后将两个wp使用这同一个独立版本的fs来统计。学习了一下并且试验了一下,目前基本成功。

操作方法如下:

首先,介绍一下:我的虚拟主机绑定了两个域名。安装时,将下载的zip文件解压,并上传到其中一个域名文件夹的根目录下。

上传完毕后,就应该可以使用 http://域名/firestats来访问firestats页面了。因为是独立安装,fs将是默认的英文界面,而且无法获取数据库的资料,所以设置选项卡里面将语言设为简体中文,然后去“数据库”选项卡里面,填入你想使用的数据库的名字和用户名密码等相关信息,这里要说的是:完全可以使用某个wp的数据库来进行统计,不一定要另行建立数据库。呵呵。

输入完成,点击“测试链接”,会提示:测试完成,然后就可以点击下面的“安装数据库”(貌似是这么写的,刚装完的,具体文字忘了),来生成所需数据库。这样,安装就算完成了。

接下来是站点的配置。我的步骤是:

先在fs的页面里面点击站点管理,添加两个wordpress站点。名字可以随便取的,自己看着舒服就好。记下这两个站点的ID,然后用ftp工具把fs文件夹下面的firestats-wordpress.php分别上传到两个wordpress的plugin目录。在两个wp的后台设置firestats插件启用。

随后分别去两个wp的设置里面设置一下firestats,就是要填一下firestats的url和文件夹所在地。url好办,填 http://域名/firestats 就行。问题在于文件夹所在地。如前所说,绑定两个域名后firestats仅存在于一个域名的根目录,所以这个域名对应wp里面填写“ ../firestats/ ”就好了。另一个就要比较麻烦一点,首先要看一看你的虚拟主机ftp下的文件结构,比如我的是根目录下,domain文件夹里面有两个对应的域名文件夹,每个域名下的public_html文件夹就是站点的根目录。那么对于第二个域名来说,“ ../../../ “就是domain文件夹了。所以第二个域名的wp里面,firestats的目录设置为” ../../../第一个域名/public_html/firestats “。

设置完成后,就可以在控制面板首页正常进入firestats的界面了。首次进入的话,记得分别到wordpress设置里面,将最下面的ID更改为各wp对应的ID。ID号是插件和独立fs通信时的身份标识符。所以标错了可是会张冠李戴的。呵呵。。

这样之后,应该一切OK,等着有人上门,然后留下统计记录就好了。

想要显示firestats统计结果的话也很方便,首先firestats自己提供了一个侧边栏插件,widgets和sbm均支持的。拖过去就能用了。另外,firestats也提供了几个API以供使用:

function fs_api_get_page_views($days_ago = NULL, $site_id = true, $url = null)
function fs_api_get_page_views_range($range_start, $range_end, $site_id = true, $url = null)
function fs_api_get_visits($days_ago = NULL, $site_id = true)
function fs_api_get_visits_range($range_start, $range_end, $site_id = true, $url = null)
function fs_api_get_browser_and_os_images($useragent)
function fs_api_get_country_flag_image($ip_address)
function fs_api_get_country_code($ip_address)

详细可见http://www.firestats.cc/wiki/API

总之,fs还是很爽的,尤其是有官方中文版^_^,感谢提供汉化的大哥~

firestats下载:http://www.firestats.cc/wiki/Download

最后编辑:
作者:龙天
匿名
这个作者貌似有点懒,什么都没有留下。

firestats使用心得》有 2 条评论

  1. 龙天 龙天说道:

    @李之瀾: 汗,FS很久以前的东西了,已经好久没用过了,并且觉得资源占用太大,很不推荐。。

  2. 李之瀾 李之瀾说道:

    可不可以加我GT幫我解決下啊?我第一次用沒能成功,一開始首頁都打不開,幸好後台進的去,於是禁用了FS,就好了,後台發現的錯誤是:
    Error starting session :
    Error initializing sessions directory, read this for help

    Directory ,’/tmp/fs_sessions/’ is not writable or readable by the PHP user

    第二次想啓用,結果來了這個:
    該外掛並未啟用,因為它會引發嚴重的錯誤。

    Warning: require(/home/likerenc/public_html/wp-content/plugins/firestats/php/fs-config.php) [function.require]: failed to open stream: No such device in /home/likerenc/public_html/wp-content/plugins/firestats/php/db-config-utils.php on line 349

    Fatal error: require() [function.require]: Failed opening required ‘/home/likerenc/public_html/wp-content/plugins/firestats/php/fs-config.php’ (include_path=’.:/usr/lib/php:/usr/local/lib/php’) in /home/likerenc/public_html/wp-content/plugins/firestats/php/db-config-utils.php on line 349

留下一个回复

你的email不会被公开。