大家做网站的时候一般都会使用网站统计程序。通常,国内网站会使用百度统计、CNZZ等,而国外网站则会使用Google Analytics等统计。国内的统计程序普遍功能不太丰富,且响应速度一般。Google Analytics的统计功能非常丰富,但是国内访问速度极差,不太适合中文站。今天,我来介绍一款非常好用的网站统计程序,Matomo.  Matomo的前身是著名的Piwik.  作为一款免费开源的统计程序,它不仅能够对每一条访问提供准确及时的访问记录,还能够自动生成极其专业的统计报表,包括根据地理位置生成的全球访问热点地图,实时访问图景,每一条访问的每一个点击操作详细分析,页面跳转率,来路分析,访客浏览器,访客硬件设备,关键词,等等等等……您还可以使用API,将统计功能整合在客户端、小程序等场景。虽然功能非常丰富,但是Mamoto非常轻量,几乎不需要占用什么资源。今天,我就来详细介绍如何安装配置这款可能是世界上最牛逼的网站统计程序。

作者为香菇肥牛,原文链接为https://qing.su/article/164.html

在开始安装之前,我先放一些后台统计界面的图片,大家可以感受一下。

后台总览:

国家和地区统计:

具体页面访问统计:

硬件设备与手机品牌统计:

操作系统与浏览器统计:

搜索引擎与关键词分析:

外链来源统计:

下面,我就来介绍具体的安装和配置步骤。

1, 新建数据库
安装Matomo之前,我们假设您已经搭建好了服务器程序,PHP以及数据库。若您不知道如何搭建,可以参考我们的教程

https://qing.su/article/163.html.

Matomo需要单独使用一个数据库。如果您使用的是MySQL/MariaDB, 可以使用下面的命令新建数据库,并建立用户名和密码。

mysql -u root -p
CREATE DATABASE matomodb;
GRANT ALL ON matomodb.* TO 'qing.su' IDENTIFIED BY 'qing.su';
quit;

请使用您需要新建的数据库名,用户名,密码代替上面的matomodb, qing.su等字段。

2, 安装Matomo程序
Matomo可以安装在网站根目录作为独立的专业统计站点安装,也可以安装在网站的子目录中。如果您有多个网站需要统计流量,那么我建议您使用单独的服务器安装Matomo, 然后添加多个网站。如果您仅需要统计一两个网站的流量,您可以直接在对应网站的子目录中安装。我们这里将直接安装在网站根目录下。

您可以下载Matomo程序源文件,地址为https://builds.matomo.org/matomo.zip, 然后解压至您需要安装的网站目录内。解压完毕后,访问您需要安装Matomo的网站目录,如下图。

可以看到,安装程序报错,原因是部分文件夹的权限不够。按照屏幕提示,在SSH中执行相应的命令,然后刷新页面即可进入安装页面。

如果您需要使用中文,可以在页面顶部English那里切换为简体中文或者繁体中文。Matomo的所有组件均有完美的中文翻译,如果您不习惯英文环境,可以完全使用中文统计后台。我们直接点击Next, 进入系统配置监测页面。

如果没有问题,可以直接点击Next. 来到下一步,安装数据库。

这里,我们要按照之前新建数据库时设置的参数来填写数据库用户名,密码和数据库名。填写完毕后点击Next. 如果填写正确,可以看到下图的数据表建立成功的提示。

接下来,需要新建管理员用户。管理员用户可以修改服务器设置,可以添加子用户,更改子用户权限,添加网站,等等。

管理员用户添加成功后,即可开始添加第一个网站了。全部安装完毕后,您可以在后台继续添加其他网站,也可以添加其他类型的应用。



点击Next, 系统自动生成了统计代码,类似下图这样。我们需要将这段代码放在您的网站的每个页面中,最好是head标签之间。如果您使用的是WordPress,您可以复制代码后,将代码粘贴至您主题的header.php文件中至此,Matomo安装完毕,您可以登录后台,查看系统生成的统计报表啦!我们接下来,还需要做两个配置,使得您的统计更高效且更准确。

3, 设置归档器Cron Job
Matomo自动安装之后,会默认在每次访客访问时分别进行统计和报表生成。如果您的网站访客较多(日10000 PV以上),则报表生成会非常占用系统资源。我们可以修改报表生成的频率,使得每一个小时再生成一次报表,这样既可以准确统计流量,又可以节省系统资源,使得统计更高效。这里,我们需要为生成报表的归档器程序(archiver)设置Cron Job.

首先,我们登录Matomo后台,点击右上角齿轮图标,然后进入System — General Settings

将Archive reports when viewed from the browser由Yes设置为No. 这样,就可以防止每一次用户访问的时候都生成报表。

我们接下来设置一个Cron Job, 让系统每隔一小时生成一次访问报表。编辑文件vi /etc/cron.d/matomo-archive, 填入下面的内容:

5 * * * * nobody /usr/local/lsws/lsphp74/bin/php /srv/www/132020.xyz/public_html/console core:archive --url=https://132020.xyz/ > /dev/null

其中,5 * * * *是指每隔一小时执行一次,执行的时间是整点过后的第5分钟。nobody是执行的用户名,如果您和我一样使用的是OpenLiteSpeed/LiteSpeed, 这里应该是nobody; 如果您使用的是Apache, 这里可能是www; 如果您使用的是Nginx, 这里可能是www-data. 命令程序需要填写您的PHP可执行程序的地址,我这里是/usr/local/lsws/lsphp74/bin/php (请注意,这里如果用lsphp执行会出错). 后面跟着的第一个参数是归档器程序,归档器的地址是您的Matomo安装目录中的console文件。之后core:archive参数指明了归档操作,而–url=后面需要介绍您的Matomo根目录的网址。

保存完毕之后,我们测试一下Cron命令是否能够正确执行。

su nobody -s /bin/bash -c "/usr/local/lsws/lsphp74/bin/php /srv/www/132020.xyz/public_html/console core:archive --url=https://132020.xyz/"

如果看到正确输出,则上面的cron命令能够正确执行。

4, 配置IP地理位置数据库
如果您需要让matomo统计每一个访客的地理位置,您需要安装配置IP地理位置数据库。这里,我们介绍Maxmind GeoLite 2 数据库的安装和使用。

首先,您需要去Maxmind官网上注册一个免费帐户,并申请一个免费的GeoLite2 License密钥。地址是https://dev.maxmind.com/geoip/geoip2/geolite2/

申请的密钥请牢记,因为之后在网上是看不到密钥的。保存好密钥之后,登录SSH, 下载GeoLite 2 City级别的IP地理位置数据库。

wget "https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=YOUR_LICENSE_KEY"

请将YOUR_LICENSE_KEY替换为您自己的密钥。下载下来的数据库是一个压缩包,我们解压之后,将里面的GeoLite2-City.mmdb文件复制粘贴到Matomo安装目录的/misc/文件夹下。以我这里为例:

tar zxvf GeoLite2-City.tar.gz
cd GeoLite2-City_2020*
mv GeoLite2-City.mmdb /srv/www/132020.xyz/public_html/misc/

然后,登录Matomo后台,点击右上角齿轮图标,依次点击System — Geolocation, 看到类似于下面的界面。

可以看到,DBIP/GeoIP2这一项已经变成了Installed. 我们勾选这项,就可以实现IP地理位置自动统计了。

由于IP地址的地理位置信息经常会变化,因此这个数据库也需要经常更新。幸运的是,Matomo可以自动更新数据库。我们将这个页面拖到下方,如下图。

在Location Database里面填入之前用来下载数据库的地址

https://download.maxmind.com/app/geoip_download?edition_id=GeoLite2-City&suffix=tar.gz&license_key=YOUR_LICENSE_KEY

然后保存,即可实现IP地理位置数据库每周或者每月自动更新。

这样,我们就完全配置好了Matomo网站统计程序,可以查看您的各项报表啦!如果您遇到任何疑问,欢迎在这里留言,我将尽力解答。

本文作者为香菇肥牛,原文链接为https://qing.su/article/164.html, 转载需注明原文链接。谢谢!

【转载】可能是世界上最牛逼的网站统计程序——Matomo的更多相关文章

  1. SQL才是世界上最牛逼的语言!

    身处互联网行业,SQL 可能是你需要掌握的核心技能之一. 最早的时候,SQL 作为一门查询数据库的语言,是程序员的必备技能,运维.开发.Web 以及数据等从业人员都需要用到 SQL,毕竟只有查询到正确 ...

  2. 史上最牛逼的文件bom头清除代码,万能检测清除php,js等等

    做php开发,经常部分uft8的php文件因BOM头不同导致各种错误和错位.网上搜到的大部分所谓的去处bom工具都是2货,没有能用的.下面的一段代码,请复制到一个php文件里,然后上传到你的网站根目录 ...

  3. [转载]教你如何塑造JavaScript牛逼形象

    http://www.html5cn.org/article-6571-1.html 如何写JavaScript才能逼格更高呢?怎样才能组织JavaScript才能让别人一眼看出你不简单呢?是否很期待 ...

  4. .net操作数据库,史上最牛逼的方法,你见过这种方法吗

    免费分享给大家.下载地址在最下面. C# code   1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ...

  5. 史上最牛逼的纯CSS实现tab选项卡,闪瞎你的狗眼

    下载地址:http://download.csdn.net/detail/cometwo/9393614 html文件 <!DOCTYPE html> <html> <h ...

  6. 如何成为一名牛逼的C/C++程序员?

    每一个学技术的人 都想干个三五年就能成为大牛 跳槽去大厂,薪水翻番 或者在一个小公司里,带个小团队 在30岁左右成为项目经理 晋升管理层 买房买车,实现人生理想 然而技术之路漫漫 想要成为牛×的程序员 ...

  7. 如何成为一个牛逼的C/C++程序员?

    这个题目的噱头太大,要真的写起来, 足够写一本书了. 本人是过来人, 结合自身的体会和大家交流一下,希望新人能少走弯路. 每个人的情况不一样,我下面的描述可能并不适合每一个看到这篇文章的人. 一.C/ ...

  8. 《转》如何成为一个牛逼的C/C++程序员?

    原地址:http://blog.csdn.net/langeldep/article/details/6333562 这个题目的噱头太大,要真的写起来, 足够写一本书了. 本人是过来人, 结合自身的体 ...

  9. Python第一天:你必须要知道的Python擅长领域以及各种重点学习框架(包含Python在世界上的应用)

    目录 Python5大擅长领域 WEB开发 网络编程 科学运算 GUI图形开发 运维自动化 Python在世界上的知名应用 国外 谷歌 CIA NASA YouTube Dropbox Instagr ...

随机推荐

  1. springboot2.x基础教程:Swagger详解给你的接口加上文档说明

    相信无论是前端还是后端开发,都或多或少地被接口文档折磨过.前端经常抱怨后端给的接口文档与实际情况不一致.后端又觉得编写及维护接口文档会耗费不少精力,经常来不及更新.其实无论是前端调用后端,还是后端调用 ...

  2. Mybatis参数传递及返回类型

    mybatis参数传递: 单个参数:不做特殊处理        #{参数名}:取出参数值    多个参数:做特殊处理        多个参数会被封装成一个map            key:para ...

  3. JavaScript(es6)数组常用的方法

    常用方法 1.forEach() var data = [1,2,3,4,5]; var sum = 0;//求和 data.forEach((item)=>{sum+=item}) //给原数 ...

  4. css动画实现吃豆豆

    话不多说,直接上代码:(作为一个初学者写的代码,多么0基础都能看的懂吧.) HTML部分 <!DOCTYPE html> <html lang=en> <head> ...

  5. IDEA 2020 集成 Activity插件

    我按照教程打开settings-plugins,搜索actiBPM搜索不到, 于是我就去下载插件,然后再安装,具体步骤如下: 下载插件: 到http://plugins.jetbrains.com/, ...

  6. db2官方文档

    开局贴链接.这个东西是真坑,下载竟然需要账号... (我就做一下记录,别喷我)

  7. JavaGuide易错点总结

    基础知识易错点 1. object.equals("str") 容易报空指针异常,应使用"str".equals(object); 还可以使用JDK7引入的工具 ...

  8. ASP.NET Core 配置与获取

    目录 1,来自字典 2,来自配置文件 3,层次结构 4,映射 ASP.NET Core 中,可以使用 ConfigurationBuilder 对象来构建. 主要分为三部:配置数据源 -> Co ...

  9. Webservice报错客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”。

    控制台对接Webservice正常,同样的方法在Web项目上报错: 客户端发现响应内容类型为“application/json;charset=UTF-8”,但应为“text/xml”.请求失败,错误 ...

  10. pycharm2020.2破解版教程激活码支持Windows Linux Mac系统-中关村老大爷

    听说很多朋友想要PyCharm专业版2020.2的破解教程.现在来了,亲测破解成功.支持mac linux windows系统.本教程提供官方安装包.激活码和注册补丁. 本教程仅供学习和讨论,禁止商业 ...