Matomo – 免费开源的网站统计分析程序搭建教程

为什么用Matomo?

鉴于GA(Google Analytics)统计服务在国内连接速度不佳,为了更好的体验,换成了Matomo。国内网站通常会使用统计服务如百度、CNZZ等,但功能不太丰富。而免费开源的网站统计分析程序 Matomo Analytics(前身为 Piwik Analytics),你不但可以将它部署在你自己的服务器上,掌控数据的所有权,而且它还提供比他们更加完整且全方位的功能,说几个重要的:

  • 没有数据采样:提供100%准确数据
  • 页面性能报告:每个页面视图的详细性能指标报告
  • 跟踪来自搜索引擎的流量:跟踪 800 多个不同的搜索引擎
  • 网站速度和页面速度报告:跟踪您的网站向访问者提供内容的速度
  • 准确衡量访问者在您网站上花费的时间:提供更准确的跳出率指标
  • 实时数据更新:观看网站的实时访问流量。详细了解您的访问者、他们访问过的页面以及他们触发的目标
  • 地理位置:生成热点地图,了解您的访客来自哪个国家/地区、城市,实时查看世界地图上的访客统计数据
  • 可自动生成标准统计报告,包括IP地址、来访渠道、用户地区、关键词、页面浏览量、使用设备、操作系统、屏幕分辨率等等

完整的功能可在官网的功能介绍页面查看学习。

20230107132644833

运行所需配置

要运行 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解析,下面以域名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

打开al2.eluyee.com/matomo/ 进行安装配置(可选语言为中文),参考官方就好,我建议将JavaScript追踪代码添加到footer.php,避免影响网页加载。官方建议添加到</head>标签之前。

可选优化

以下的工作内容可以忽略,不过Luyee建议做。

设置自动存档报告

登录后台,点击右上角齿轮图标进入设置,再点击系统→通用设置→在浏览器中查看报告时进行归档→否,保存。

20230107132644440
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  # 加入此语句,保存退出

如果以上优化不做的话,你会在诊断→系统检查里发现一些错误。设置目录限制访问还是要的,因为可能导致数据泄露或被入侵。如果设置没问题就会这样显示。

20230107132645154

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 更新完成后,不要忘记重新启用访问跟踪和用户界面,即删除之前在配置文件中添加的内容。

© 版权声明
THE END
喜欢就支持一下吧
点赞10赞赏 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容