Matomo

来自 ArchWiki

Matomo,原名 Piwik,是一款在 GNU 通用公共许可证 3 下获得许可的开源网络分析工具。该软件使用 php 编写,并通过网络浏览器访问。该项目的核心思想是隐私,因为当使用第三方网站分析提供商时,网站所有者会将所有用户的数据交给他们出售给广告商。

通过一个运行实例,可以通过在目标网站上加载一些 JavaScript 来分析多个网站。

安装

安装 软件包 matomoAURmatomo-gitAUR。git 软件包已经为您配置了 php-fpm 守护进程。此外,它还会为您下载并安装最新的 GeoIP 数据库。默认情况下,Matomo 通过访问者设置的浏览器语言来猜测访问者的位置,这对于地理位置来说不是可靠的信息。

配置

php 配置

需要正确配置 php 才能使 Matomo 工作。

首先,按照 PHP#MySQL/MariaDB 中的描述启用 MySQL 支持。为此,请编辑 /etc/php/php.ini。通过删除前面的分号来取消注释 ;extension=pdo_mysql;extension=mysqli

通常,注释用前面的分号表示。

;extension=iconv 需要启用,而 ;extension=gd 对于 Matomo 是可选的。至少取消注释 iconv。

允许 Matomo 访问所需文件

注意: 此处的更改仅对于 matomoAUR 软件包是必需的,而不是 matomo-gitAUR,后者已包含此文件。

由于自 7.4 版本以来对 php-fpm.service 的新限制,其中 ProtectSystem 设置为阻止 Matomo 正常运行(无法安装插件、更改配置等),因此需要手动设置访问某些文件的能力。

下面的文件 /etc/systemd/system/php-fpm.service.d/override_matomo.conf 修复了此问题,同时不会暴露超过必要的信息,并且仍然允许用户按照安装清单中所述更改 ACL,如果不需要这样做。

[Service]
ReadWritePaths = /usr/share/webapps/matomo/config
ReadWritePaths = /usr/share/webapps/matomo/matomo.js
ReadWritePaths = /usr/share/webapps/matomo/misc/user/
ReadWritePaths = /usr/share/webapps/matomo/plugins/

服务器设置 (nginx)

为了启用 php 网站,请安装 php-fpm 软件包并 启动/启用 php-fpm.service(请参阅 Nginx#PHP 实现)。通过修改 /etc/nginx/nginx.conf 来创建服务器。将以下模板添加到 “http” 上下文中。或者,查看 matomo 的 GitHub 说明。

include /etc/nginx/mime.types;

server
{
    index index.php;
    listen 443 ssl;
    listen [::]:443 ssl;
    root /usr/share/webapps/matomo/;
    server_name matomo.example.com;

    location ~ ^/(\.git/|config/|core/|lang/|tmp/)
    {
        return 403;
    }

    location ~ \.php$
    {
        try_files $uri =404;

        # FastCGI
        include fastcgi.conf;
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
    }

    location ~ \.(avi|css|eot|gif|htm|html|ico|jpg|js|json|mp3|mp4|ogg|png|svg|ttf|wav|woff|woff2)$
    {
        try_files $uri =404;
    }

    location ~ ^/(libs/|misc/|node_modules/|plugins/|vendor/)
    {
        return 403;
    }
}

要使用加密,您可以从 letsencrypt 获取免费证书。在请求和安装证书后,通过将以下代码添加到 “http” 或 “server” 上下文来使用它们

include /etc/letsencrypt/options-ssl-nginx.conf;
ssl_dhparam /etc/letsencrypt/ssl-dhparams.pem;
ssl_certificate_key /etc/letsencrypt/live/subdomain.domain.me/privkey.pem;
ssl_certificate /etc/letsencrypt/live/subdomain.domain.me/fullchain.pem;

通过启动/启用 nginx.service 来运行 nginx 服务器。

注意: mariadb.servicephp-fpm.service 是必需的。

最后步骤

所有主要设置均已完成。在浏览器中调用您的 Matomo 网站,并完成小型安装指南,该指南无非是检查所需的一切是否可用并已设置,以及编写您的配置文件。