一、服务器硬件、软件、环境配置说明
- 1、购买了一台香港的vps,香港荃湾-8G CPU 4核 内存 8G SSD 120GB 带宽 1000Mbps 流量 3TB IPv4 1 IPv6 1,每个月99人民币;
- 2、服务器系统是 Debian 12【主要是长期使用比较稳定】,安装Nginx 1.28 + PHP8.2 + Mysql8.4 + 宝塔面板9.6,服务器上的数据库测试了 Mysql8.0 和 Mysql 8.4都是可以的
二、Matomo安装配置说明
配置好服务器环境之后,在宝塔面板里面建站,配置好SSL证书,然后下载Matomo最新的安装包
- 1、Matomo安装包下载链接
https://builds.matomo.org/matomo.zip- 2、具体安装步骤
开始点击安装了!点击下一步 »

系统检查
Matomo 会检查你的服务器是否符合Matomo 的要求。如果一切正常,你会看到一个长列表,如下所示:

如果出现问题,Matomo 会识别它并告诉您如何解决,如下例所示:

当所有要求都满足时,单击“下一步”»
MySQL数据库设置
您应该已经设置了 MySQL 数据库。如果您没有数据库信息,可能需要咨询您的网站托管服务商或技术人员。

安全提示:为了增强安全性,我们建议您将 Matomo 安装在其自带的 MySQL 数据库中,并为只有该数据库访问权限的用户指定用户名和密码。点击此处查看有关如何创建新数据库和 MySQL 用户的详细说明。
(请注意,默认情况下,连接数据库时使用端口 3306。如果您的服务器使用其他端口,您可以在主机名后输入,例如localhost:3307)
填写完表格后,点击“下一步”»
Matomo 将把必要的表添加到您的数据库中:

单击“下一步”
超级用户
超级用户是您在安装 Matomo 时创建的用户。此用户拥有最高权限。选择您的用户名和密码:

请勿丢失此信息;这是您首次登录 Matomo 的唯一方式。每个 Matomo 安装中只有一个超级用户。超级用户可以执行管理任务,例如添加要监控的新网站、添加用户、更改用户权限以及启用和禁用插件。
默认情况下,超级用户将注册接收升级和安全警报以及社区更新。如果您不想接收这些电子邮件,请取消选中这些复选框。
填写信息并点击下一步»
建立您的第一个网站
输入您要跟踪的第一个网站的名称和网址。安装完成后,您可以添加更多网站。

单击“下一步”
安装 JavaScript 跟踪标签
在您想要分析的每个页面上安装 Matomo 生成的 JavaScript 跟踪标签。我们建议将此代码放置在结束</head>标签之前,或放置在所有页面顶部的共享头文件中。

针对最流行的 CMS 提供分步指南,例如:WordPress、Joomla、Webflow、Shopify store、SquareSpace、Wix、GoDaddy Website Builder、Drupal、Jimdo。Matomo还可以集成到Android 和 iOS 应用程序、 GTM(Google Tag Manager)、Ionic 移动应用程序等中。
否则,您将需要手动插入跟踪标签。
- 3、网站配置文件修改
server
{
listen 80;
listen 443 ssl;
listen 443 quic;
listen [::]:443 ssl;
listen [::]:443 quic;
http2 on;
listen [::]:80;
server_name analytics.xqbn.com;
index index.php index.html index.htm default.php default.htm default.html;
root /www/wwwroot/analytics.xqbn.com;
#CERT-APPLY-CHECK--START
# 用于SSL证书申请时的文件验证相关配置 -- 请勿删除
include /www/server/panel/vhost/nginx/well-known/analytics.xqbn.com.conf;
#CERT-APPLY-CHECK--END
#SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则
#error_page 404/404.html;
ssl_certificate /www/server/panel/vhost/cert/analytics.xqbn.com/fullchain.pem;
ssl_certificate_key /www/server/panel/vhost/cert/analytics.xqbn.com/privkey.pem;
ssl_protocols TLSv1.1 TLSv1.2 TLSv1.3;
ssl_ciphers EECDH+CHACHA20:EECDH+CHACHA20-draft:EECDH+AES128:RSA+AES128:EECDH+AES256:RSA+AES256:EECDH+3DES:RSA+3DES:!MD5;
ssl_prefer_server_ciphers on;
ssl_session_tickets on;
ssl_session_cache shared:SSL:10m;
ssl_session_timeout 10m;
add_header Strict-Transport-Security "max-age=31536000";
add_header Alt-Svc 'quic=":443"; h3=":443"; h3-29=":443"; h3-27=":443";h3-25=":443"; h3-T050=":443"; h3-Q050=":443";h3-Q049=":443";h3-Q048=":443"; h3-Q046=":443"; h3-Q043=":443"';
error_page 497 https://$host$request_uri;
#SSL-END
add_header Referrer-Policy origin always; # make sure outgoing links don't show the URL to the Matomo instance
add_header X-Content-Type-Options "nosniff" always;
add_header X-XSS-Protection "1; mode=block" always;
## only allow accessing the following php files
location ~ ^/(index|matomo|piwik|js/index|plugins/HeatmapSessionRecording/configs)\.php$ {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTP_PROXY ""; # 防止 httpoxy 攻击
try_files $fastcgi_script_name =404; # 防止 CVE-2019-11043
fastcgi_pass unix:/tmp/php-cgi-82.sock; # ✅ 适配 aaPanel 默认的 PHP 8.2 socket 路径
fastcgi_index index.php;
}
## deny access to all other .php files
location ~* ^.+\.php$ {
deny all;
return 403;
}
## serve all other files normally
location / {
try_files $uri $uri/ =404;
}
## disable all access to the following directories
location ~ ^/(config|tmp|core|lang) {
deny all;
return 403; # replace with 404 to not show these directories exist
}
location ~ /\.ht {
deny all;
return 403;
}
location ~ js/container_.*_preview\.js$ {
expires off;
add_header Cache-Control 'private, no-cache, no-store';
}
location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2)$ {
allow all;
## Cache images,CSS,JS and webfonts for an hour
## Increasing the duration may improve the load-time, but may cause old files to show after an Matomo upgrade
expires 1h;
add_header Pragma public;
add_header Cache-Control "public";
}
location ~ ^/(libs|vendor|plugins|misc|node_modules) {
deny all;
return 403;
}
## properly display textfiles in root directory
location ~/(.*\.md|LEGALNOTICE|LICENSE) {
default_type text/plain;
}
#ERROR-PAGE-START 错误页配置,可以注释、删除或修改
error_page 404 /404.html;
#error_page 502 /502.html;
#ERROR-PAGE-END
#PHP-INFO-START PHP引用配置,可以注释或修改
include enable-php-82.conf;
#PHP-INFO-END
#REWRITE-START URL重写规则引用,修改后将导致面板设置的伪静态规则失效
include /www/server/panel/vhost/rewrite/analytics.xqbn.com.conf;
#REWRITE-END
#禁止访问的文件或目录
location ~ ^/(\.user.ini|\.htaccess|\.git|\.env|\.svn|\.project|LICENSE|README.md)
{
return 404;
}
#一键申请SSL证书验证目录相关设置
location ~ \.well-known{
allow all;
}
#禁止在证书验证目录放入敏感文件
if ( $uri ~ "^/\.well-known/.*\.(php|jsp|py|js|css|lua|ts|go|zip|tar\.gz|rar|7z|sql|bak)$" ) {
return 403;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
error_log /dev/null;
access_log /dev/null;
}
location ~ .*\.(js|css)?$
{
expires 12h;
error_log /dev/null;
access_log /dev/null;
}
access_log /www/wwwlogs/analytics.xqbn.com.log;
error_log /www/wwwlogs/analytics.xqbn.com.error.log;
}主要是结合Matomo官网的nginx配置说明,结合宝塔面板网站的配置文件格式,综合编辑的配置文件;
主要是增加了第35行到95行的代码;
- 4、Matomo配置文件中需要调整的参数
文件位置
/config/config.ini.php增加的内容如下:
force_ssl = 1
browser_archiving_disabled_enforce = 1
5、Matomo网站后台的设置说明
- 5.1、 管理 - 个人 - 设置 设置了查看所有网站的报告列表、以及查看今天的数据;

- 5.2、管理 - 系统 - 通用设置


管理 - 系统 - 地理位置 最新版本的这项功能改进了很多,基本上安装好之后就可以自动配置好;

管理 - 平台 - 商城 在这个里面可以安装自己喜欢的Matomo主题;

- 5.3、管理 - 网站 - 设置 里面可以设置matomo统计需要排除的ip,一般是去掉自己办公网络的ip;设置网站记录的国家和时区,方便计算数据;


- 6、设置Matomo定时任务
定时任务的指令:
sudo -u www /www/server/php/82/bin/php /www/wwwroot/analytics.xqbn.com/console core:archive --url=https://analytics.xqbn.com/ > /www/wwwroot/analytics.xqbn.com/tmp/logs/matomo.log
定时任务的配置按照上图的设计来配置,此为每10分钟做一次数据汇总;

















