为什么用Matomo?
鉴于GA(Google Analytics)统计服务在国内连接速度不佳,为了更好的体验,换成了Matomo。国内网站通常会使用统计服务如百度、CNZZ等,但功能不太丰富。而免费开源的网站统计分析程序 Matomo Analytics(前身为 Piwik Analytics),你不但可以将它部署在你自己的服务器上,掌控数据的所有权,而且它还提供比他们更加完整且全方位的功能,说几个重要的:
- 没有数据采样:提供100%准确数据
- 页面性能报告:每个页面视图的详细性能指标报告
- 跟踪来自搜索引擎的流量:跟踪 800 多个不同的搜索引擎
- 网站速度和页面速度报告:跟踪您的网站向访问者提供内容的速度
- 准确衡量访问者在您网站上花费的时间:提供更准确的跳出率指标
- 实时数据更新:观看网站的实时访问流量。详细了解您的访问者、他们访问过的页面以及他们触发的目标
- 地理位置:生成热点地图,了解您的访客来自哪个国家/地区、城市,实时查看世界地图上的访客统计数据
- 可自动生成标准统计报告,包括IP地址、来访渠道、用户地区、关键词、页面浏览量、使用设备、操作系统、屏幕分辨率等等
完整的功能可在官网的功能介绍页面查看学习。
运行所需配置
要运行 Matomo,需满足以下条件
- Web服务器如Apache, Nginx, IIS, LiteSpeed等。
- Matomo 4.x需要PHP版本7.2.5或更高,也完全能够和PHP 8配合。(旧的Matomo 3.x需要PHP版本5.5.9或PHP 7.x)
- MySQL 5.5或更高版本,或MariaDB
- (默认启用)PHP扩展 pdo 和 pdo_mysql,或 mysqli 扩展。
- Matomo可以在任何操作系统上运行,如Linux(Ubuntu、RedHat、CentOS、Raspberry Pi OS等)、Windows、macOS Server或FreeBSD。
Matomo搭建流程
进行DNS域名IP解析,下面以域名http://al2.eluyee.com为例。如果你和Eluyee博客一样是通过WordPress建站,那么其实你可以直接搜索官方插件“Matomo Analytics Ethical Stats”进行安装,然后将JavaScript追踪代码添加到</head>标签之前。以下介绍在Linux VPS上的安装与优化。
搭建LNMP环境+创建数据库
SSH连接远程VPS,使用LNMP一键安装包搭建好Nginx,PHP,Mysql环境,添加虚拟主机,创建数据库,添加SSL。
sudo -i
sudo apt-get update && apt-get upgrade
apt-get install wget
wget http://soft.vpser.net/lnmp/lnmp1.8.tar.gz -cO lnmp1.8.tar.gz && tar zxf lnmp1.8.tar.gz && cd lnmp1.8 && ./install.sh lnmp
./addons.sh install opcache # 安装完lnmp后开启OpCache
lnmp vhost add
al2.eluyee.com # 以下省略一些
/home/wwwroot/al2.eluyee.com
Matomodatabase # 创建数据库和同名用户
Matomopasswd # 输入数据库密码
cd /home/wwwroot/al2.eluyee.com
wget https://builds.matomo.org/matomo.zip && unzip matomo.zip
赋予可写权限后安装
删除网站根目录的 .user.ini,赋予权限。
chattr -i /home/wwwroot/al2.eluyee.com/.user.ini
rm -rf /home/wwwroot/al2.eluyee.com/.user.ini
chown www:www -R /home/wwwroot/al2.eluyee.com
打开https://al2.eluyee.com/matomo/ 进行安装配置(可选语言为中文),参考官方就好,我建议将JavaScript追踪代码添加到footer.php,避免影响网页加载。官方建议添加到</head>标签之前。
可选优化
以下的工作内容可以忽略,不过Luyee建议做。
设置自动存档报告
登录后台,点击右上角齿轮图标进入设置,再点击系统→通用设置→在浏览器中查看报告时进行归档→否,保存。
vi /etc/cron.d/matomo-archive # 编辑matomo-archive文件,填入以下内容。
5 * * * * www-data /usr/bin/php /home/wwwroot/al2.eluyee.com/matomo/console core:archive --url=https://al2.eluyee.com/matomo/ > /dev/null
# 保存后退出,执行以下命令。
su www-data -s /bin/bash -c "/usr/bin/php /home/wwwroot/al2.eluyee.com/matomo/console core:archive --url=https://al2.eluyee.com/matomo/"
# 个人用命令↓↓↓:
su www -s /bin/bash -c "/www/wwwroot/count.lsw0.com/console core:archive --url=https://count.lsw0.com/"
如果输出正常,则自动归档(每小时执行一次)设置成功。如果报错,权限不够,则执行
sudo chmod -R 777 /home/wwwroot/al2.eluyee.com/matomo/tmp/
限制目录访问
vi /usr/local/nginx/conf/vhost/al2.eluyee.com.conf
在中间添加修改成如下代码
# Deny access to PHP files in specific directory
#location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }
location ~ /(matomo/config|matomo/tmp/cache/tracker)/.*\.php$ { deny all; }
include enable-php.conf;
## disable all access to the following directories
location ~ ^/(matomo/config|matomo/tmp|matomo/core|matomo/lang) {
deny all;
return 404; # replace with 404 to not show these directories exist
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
禁用Mysql日志生成,修改包大小
vi /etc/my.cnf
#log-bin=mysql-bin
#binlog_format=mixed
max_allowed_packet = 64M # 修改成64M
开启shell_exec功能
编辑php.ini,删除disable_functions里的shell_exec,保存重启即可启用。
vi /usr/local/php/etc/php.ini
开启强制SSL连接
建议为Matomo开启强制SSL(HTTPS)连接。你可以通过修改在你服务器上Matomo目录下的config/config.ini.php文件,为General
块增加force_ssl = 1
语句以从PHP角度阻止不安全的HTTP协议访问。
vi /home/wwwroot/al2.eluyee.com/matomo/config/config.ini.php
[General]
force_ssl = 1 # 加入此语句,保存退出
如果以上优化不做的话,你会在诊断→系统检查里发现一些错误。设置目录限制访问还是要的,因为可能导致数据泄露或被入侵。如果设置没问题就会这样显示。
Matomo更新与升级
当在后台检测到有新版本可用时,你可以点击一键升级更新你的 Matomo – 只需单击一下按钮!我用了一次自动更新后,有一些小问题:页面性能反馈等无法显示,有错误,但可以正常运行追踪,影响不大。建议手动更新,分三步。
对于中等和高流量的 Matomo 服务器,还建议在命令行上运行升级时关闭访客跟踪并关闭 Matomo 用户界面。这将确保尽快完成 DB Schema 更新,并且不会出现并发读/写错误。
在 config/config.ini.php 文件中,添加以下内容
vi /home/wwwroot/al2.eluyee.com/matomo/config/config.ini.php # 编辑config.ini.php,添加以下
[Tracker]
record_statistics = 0
[General]
maintenance_mode = 1
备份你的配置文件
config.ini.php 文件包含现有安装的详细信息,例如数据库登录信息和已启用插件列表。只有在以后需要恢复 Matomo 实例和数据时才需要此文件(连同完整的数据库备份)。
cd /home/wwwroot/al2.eluyee.com/matomo/config/
tar -zcf config.ini.php.tar.gz config.ini.php
mkdir /home/backup
mv config.ini.php.tar.gz /home/backup/
用最新版本替换 Matomo 文件
通过 SSH 访问服务器,下载最新版本并直接从服务器中提取它
cd /home/wwwroot/al2.eluyee.com # 进入包含现有“matomo/”安装的目录
wget https://builds.matomo.org/matomo.zip # 下载最新版本
unzip -o matomo.zip # 解压缩到“matomo/”目录
rm matomo.zip # 删除存档并阅读下面的下一步
更新 Matomo
对于高流量网站,更新过程可能需要几分钟到几个小时,强烈建议你在命令行中运行数据库更新过程。你可以通过在你的 shell 中调用来触发 Matomo 更新
/home/wwwroot/al2.eluyee.com/matomo/console core:update # 如果不成功,则执行以下命令
php /home/wwwroot/al2.eluyee.com/matomo/console core:update
Matomo 成功升级到最新版本,建议访问管理 > 诊断 > 系统检查,查看报告并遵循任何建议的操作。例如,文件完整性检查可能表明存在可以删除的先前版本遗留的文件。
Matomo 更新完成后,不要忘记重新启用访问跟踪和用户界面,即删除之前在配置文件中添加的内容。
暂无评论内容