标签: matamo

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

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

    为什么用Matomo?

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

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

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

    v2-959383aa586891c9b84d026e2343508a_720w.webp

    运行所需配置

    要运行 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解析,下面以域名www.wucuoym.com为例。如果你和无错源码一样是通过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/www.wucuoym.com/.user.ini
    rm -rf /home/wwwroot/www.wucuoym.com/.user.ini
    chown www:www -R /home/wwwroot/www.wucuoym.com

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

    可选优化

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

    设置自动存档报告

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

    v2-6f1e7def39cd568baef7d27d2f4326fc_720w.webp
    vi /etc/cron.d/matomo-archive  # 编辑matomo-archive文件,填入以下内容。
    
    5 * * * * www-data /usr/bin/php /home/wwwroot/www.wucuoym.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/www.wucuoym.com/matomo/console core:archive --url=https://al2.eluyee.com/matomo/"

    如果输出正常,则自动归档(每小时执行一次)设置成功。如果报错,权限不够,则执行

    sudo chmod -R 777 /home/wwwroot/www.wucuoym.com/matomo/tmp/

    限制目录访问

    vi /usr/local/nginx/conf/vhost/www.wucuoym.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/www.wucuoym.com/matomo/config/config.ini.php
    
    [General]
    force_ssl = 1  # 加入此语句,保存退出

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

    v2-b9965a2684f48681bba6339473d38674_720w.webp

    Matomo更新与升级

    当在后台检测到有新版本可用时,你可以点击一键升级更新你的 Matomo – 只需单击一下按钮!我用了一次自动更新后,有一些小问题:页面性能反馈等无法显示,有错误,但可以正常运行追踪,影响不大。建议手动更新,分三步。

    对于中等和高流量的 Matomo 服务器,还建议在命令行上运行升级时关闭访客跟踪并关闭 Matomo 用户界面。这将确保尽快完成 DB Schema 更新,并且不会出现并发读/写错误。

    在 config/config.ini.php 文件中,添加以下内容

    vi /home/wwwroot/www.wucuoym.com/matomo/config/config.ini.php  # 编辑config.ini.php,添加以下
    
    [Tracker]
    record_statistics = 0
    
    [General]
    maintenance_mode = 1

    备份你的配置文件

    config.ini.php 文件包含现有安装的详细信息,例如数据库登录信息和已启用插件列表。只有在以后需要恢复 Matomo 实例和数据时才需要此文件(连同完整的数据库备份)。

    cd /home/wwwroot/www.wucuoym.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/www.wucuoym.com  # 进入包含现有“matomo/”安装的目录
    wget https://builds.matomo.org/matomo.zip  # 下载最新版本
    unzip -o matomo.zip  # 解压缩到“matomo/”目录
    rm matomo.zip  # 删除存档并阅读下面的下一步

    更新 Matomo

    对于高流量网站,更新过程可能需要几分钟到几个小时,强烈建议你在命令行中运行数据库更新过程。你可以通过在你的 shell 中调用来触发 Matomo 更新

    /home/wwwroot/www.wucuoym.com/matomo/console core:update  # 如果不成功,则执行以下命令
    
    php /home/wwwroot/www.wucuoym.com/matomo/console core:update

    Matomo 成功升级到最新版本,建议访问管理 > 诊断 > 系统检查,查看报告并遵循任何建议的操作。例如,文件完整性检查可能表明存在可以删除的先前版本遗留的文件。

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