本页内容

  • 环境要求
  • 安装与配置 MariaDB(安装 MariaDB、加固 MariaDB 部署、创建新数据库和用户)
  • 安装 Httpd Web 服务器与 PHP 8.1
  • 下载 Matomo 源代码
  • 配置 Httpd 虚拟主机
  • 使用 SSL/TLS 证书保护 Matomo
  • 安装 Matomo Web Analytics
  • 结语
  • 安装 MariaDB
  • 加固 MariaDB 部署
  • 创建新数据库和用户

Matomo(前身是 Piwik)是一款免费且开源的网站分析软件,能够追踪网站访问情况并展示用于数据与受众分析的报表。Matomo 采用 GPL 许可证发布。它由 PHP 编写,可运行于 MySQL 或 MariaDB 数据库服务器。

Matomo 为你的网站用户追踪提供富有洞察力的报表。这包括来源搜索引擎与关键词、语言、页面访问情况(如文件、访客、下载)等许多方面。Matomo 正日益流行,成为 Google Analytics 等分析服务的替代品。

下面的教程将向你展示如何在 AlmaLinux 9 服务器上安装 Matomo web analytics。我将使用 Httpd web 服务器、PHP 和 MariaDB 数据库来安装 Matomo。我还会通过 Letsencrypt 使用 SSL/TLS 证书来保护 Matomo。

环境要求

在开始安装 Matomo 之前,请确保你具备以下条件:

  • 一台 AlmaLinux 9 服务器——本示例使用主机名为 alma9 的服务器。
  • 一个具备 root 管理员权限的非 root 用户。
  • 一个指向服务器 IP 地址的域名。

安装与配置 MariaDB

Matomo 需要安装 MySQL 或 MariaDB 数据库服务器,在本例中,你将使用 MariaDB 服务器。以下步骤将向你展示如何安装 MariaDB 数据库服务器、加固 MariaDB 安装,以及如何为你的 Matomo 安装创建新数据库和用户。

安装 MariaDB

默认情况下,AlmaLinux appstream 仓库提供 MariaDB 软件包。你可以轻松通过 DNF 安装 MariaDB,而无需使用第三方仓库。

首先,运行下面的 dnf 命令来安装 MariaDB 数据库服务器。然后输入 y 确认安装并按下 ENTER。

sudo dnf install mariadb-server

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

安装 MariaDB 服务器后,执行以下 systemctl 命令来启动并设置 MariaDB 服务器开机自启。启用 MariaDB 服务器可让该服务在系统启动时自动运行。

sudo systemctl start mariadb
sudo systemctl enable mariadb

现在验证 MariaDB 服务器状态,以确保服务正在运行。如果正在运行,你的终端应当输出 active (running)。

sudo systemctl status mariadb

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

加固 MariaDB 部署

在 MariaDB 安装并运行之后,你接下来将通过设置 root 密码、禁用 root 用户的远程登录,以及删除默认的 test 数据库和匿名用户来加固安装。这些都可以通过 mariadb-secure-installation 工具完成。

要加固 MariaDB 服务器,请在你的终端上运行 mariadb-secure-installation 工具。

sudo mariadb-secure-installation

在此过程中,你可以输入 Y 应用配置,或输入 n 表示否。以下是你会被提示设置的一些 MariaDB 服务器选项:

  • 当被要求提供 MariaDB root 密码时,按下 ENTER。
  • 输入 n 跳过 unix_socket 认证的配置。
  • 输入 Y 设置 MariaDB root 密码,然后输入你的新密码并重复确认。
  • 输入 Y 禁用 MariaDB root 用户的远程登录。
  • 输入 Y 从你的 MariaDB 服务器中删除默认的匿名用户。
  • 然后,再次输入 Y 删除默认的 test 数据库。
  • 最后,输入 Y 重新加载表权限并应用更改。

创建新数据库和用户

既然你已经让加固后的 MariaDB 运行起来,下一步就是为 Matomo 安装创建一个新的 MariaDB 数据库和用户。你必须通过 MariaDB 客户端工具登录到 MariaDB 服务器。

通过下面的 mariadb 客户端命令登录到 MariaDB shell。当提示输入密码时,输入你的 MariaDB root 密码。

sudo mariadb -u root -p

登录后,运行以下查询来为 Matomo 安装创建新数据库和用户。在本演示中,你将创建一个名为 matomo 的新数据库和用户,请务必将密码 p4ssw0rddb 替换为一个新的强密码。

CREATE DATABASE matomo;
CREATE USER 'matomo'@'localhost' IDENTIFIED BY 'p4ssw0rddb';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, INDEX, DROP, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON matomo.* TO 'matomo'@'localhost';
FLUSH PRIVILEGES;

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

现在运行以下查询,以确认用户 matomo 在 MariaDB 服务器上可用,并对 matomo 数据库拥有权限。

SHOW GRANTS FOR 'matomo'@'localhost';

最后,输入 quit 退出 MariaDB shell。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

安装 Httpd Web 服务器与 PHP 8.1

Matomo 主要由 PHP 编写,目前它至少需要 PHP 8.x。在下面的步骤中,你将通过 AlmaLinux appstream 仓库安装 httpd web 服务器和 PHP 8.1 软件包。之后,你将配置 PHP。

在安装 PHP 软件包之前,请将默认 PHP 版本选择为 PHP 8.1。在基于 RHEL 的发行版中,这被称为仓库模块,默认的 AlmaLinux 仓库提供 PHP 8.0 和 8.1 两个版本的软件包。

sudo dnf module enable php:8.1

当提示确认时,输入 y。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

现在运行下面的 dnf 命令,安装你系统上的 httpd web 服务器和 PHP 软件包。输入 y 确认安装并按下 ENTER。

sudo dnf install httpd php php-common php-mysqlnd php-gd php-curl php-json php-intl php-bcmath php-zip php-apcu php-mbstring php-fileinfo php-xml php-zip php-soap

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

安装 httpd 和 PHP 后,执行以下 systemctl 命令来启动并设置 httpd web 服务器开机自启。这会让 httpd web 服务器在默认端口 80 上运行,并在系统启动时自动运行。

sudo systemctl start httpd
sudo systemctl enable httpd

现在使用下面的命令验证 httpd web 服务器状态。如果 httpd web 服务器正在运行,你应当得到 active (running) 的输出。

sudo systemctl status httpd

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

至此,你已经安装了 httpd web 服务器和 PHP 软件包。现在你将根据 Matomo 安装的需要来配置 PHP。

使用下面的 nano 编辑器打开默认的 PHP 配置文件 /etc/php.ini。

sudo nano /etc/php.ini

取消以下选项的注释,并相应地修改其值。这些选项取决于你的 AlmaLinux 机器。

date.timezone = Europe/Stockholm
memory_limit = 256M
upload_max_filesize = 16M
max_execution_time = 300

完成后保存并关闭文件。

现在执行下面的 systemctl 命令来重启 httpd web 服务器并应用更改。

sudo systemctl restart httpd

通过执行下面的命令来验证 PHP 版本和可用模块。

php --version
php -m

你应当看到系统上已安装 PHP 8.1,并且启用了诸如 apcu、curl 和 gd 等模块。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

下载 Matomo 源代码

至此,大多数所需的软件包已安装并运行。现在你将下载 Matomo 源代码,并设置具有正确所有权的 Matomo 文档根目录。

在下载 Matomo 源代码之前,运行下面的 dnf 命令在你的系统中安装 wget 和 unzip。

sudo dnf install wget unzip -y

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

现在切换到 /var/www 目录,并执行下面的 wget 命令下载 Matomo 源代码。源代码下载完成后,你应当能看到 matomo.zip 文件。

cd /var/www
wget https://builds.matomo.org/matomo.zip

之后,运行下面的 unzip 命令解压 matomo.zip 文件。matomo.zip 文件解压后,你会得到一个名为 matomo 的新目录,它将成为你 Matomo 安装的文档根目录。

unzip matomo.zip

最后,运行下面的 chmod 命令,将 /var/www/matomo 目录的所有者改为 apache 用户和组。这样 httpd web 服务器和 PHP 就能访问 Matomo 源代码。

sudo chown -R apache:apache /var/www/matomo

然后再次运行以下命令,为源代码设置正确的权限。

find /var/www/matomo/tmp -type f -exec chmod 644 {} \;
find /var/www/matomo/tmp -type d -exec chmod 755 {} \;
find /var/www/matomo/tmp/assets/ -type f -exec chmod 644 {} \;
find /var/www/matomo/tmp/assets/ -type d -exec chmod 755 {} \;
find /var/www/matomo/tmp/cache/ -type f -exec chmod 644 {} \;
find /var/www/matomo/tmp/cache/ -type d -exec chmod 755 {} \;
find /var/www/matomo/tmp/logs/ -type f -exec chmod 644 {} \;
find /var/www/matomo/tmp/logs/ -type d -exec chmod 755 {} \;
find /var/www/matomo/tmp/tcpdf/ -type f -exec chmod 644 {} \;
find /var/www/matomo/tmp/tcpdf/ -type d -exec chmod 755 {} \;
find /var/www/matomo/tmp/templates_c -type f -exec chmod 644 {} \;
find /var/www/matomo/tmp/templates_c -type d -exec chmod 755 {} \;

配置 Httpd 虚拟主机

在下面的小节中,你将创建一个新的 httpd 虚拟主机配置来运行 Matomo web 应用。在此之前,请确保你的域名已指向你的服务器 IP 地址并配置正确。

使用下面的 nano 编辑器命令创建新的 httpd 虚拟主机配置文件 /etc/httpd/conf.d/matomo.conf。

sudo nano /etc/httpd/conf.d/matomo.conf

插入以下配置,并务必将 ServerName 参数上的域名替换为你自己的域名。

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName analytics.howtoforge.local
    DocumentRoot /var/www/matomo/
    <Directory /var/www/matomo>
        DirectoryIndex index.php
        Options FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
    <Files "console">
        Options None
        Require all denied
    </Files>
    <Directory /var/www/matomo/misc/user>
        Options None
        Require all granted
    </Directory>
    <Directory /var/www/matomo/misc>
        Options None
        Require all denied
    </Directory>
    <Directory /var/www/matomo/vendor>
        Options None
        Require all denied
    </Directory>
    ErrorLog /var/log/httpd//matomo_error.log
    CustomLog /var/log/httpd//matomo_access.log combined
</VirtualHost>

完成后保存文件并退出编辑器。

现在运行下面的 apachectl 工具来验证 httpd 的整体配置。如果你的 httpd 配置正确无误,你应当得到类似 Syntax OK 的输出。

sudo apachectl -t

接下来,执行下面的 systemctl 命令来重启 httpd web 服务器并应用新的虚拟主机配置。

sudo systemctl restart httpd

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

最后,启动 Web 浏览器并访问 Matomo 安装的域名。如果成功,你应当会看到如下的 Matomo 安装页面:

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

使用 SSL/TLS 证书保护 Matomo

建议配合 SSL/TLS 证书运行 Matomo。在本节中,你将通过来自 Letsencrypt 的 SSL 来保护 Matomo,该证书可通过 Certbot 生成。Certbot 是一个可在 EPEL 仓库中获取的 Letsencrypt 客户端,因此在安装 Certbot 之前,你必须先添加 EPEL 仓库。

运行下面的 dnf 命令来安装 certbot 以及 certbot 的 Apache/httpd 模块。输入 y 确认安装并按下 ENTER。

sudo dnf install epel-release -y
sudo dnf install certbot python3-certbot-apache

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

certbot 安装完成后,运行下面的 certbot 命令为你的域名生成 SSL 证书,并务必修改下面命令中的域名和电子邮件地址。

sudo certbot --apache2 --agree-tos --redirect --hsts --staple-ocsp --email 
[email protected]
 -d analytics.howtoforge.local

命令执行后,新的 SSL/TLS 证书会在 /etc/letsencrypt/live/domain-name.com 目录中生成,并且一个新的 SSL 配置会被添加到文件 /etc/httpd/conf.d/matomo.conf 中。该 SSL 配置是通过 Certbot Apache 插件添加的。

安装 Matomo Web Analytics

回到你的 Web 浏览器,访问 Matomo 安装的域名。在看到欢迎页面后,点击 Next 开始安装。

现在安装程序会检查系统是否满足要求。因此,请确保每一项都标有绿色的勾,如下所示:

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

再次点击 Next 继续。

输入你已创建的 MariaDB 数据库和用户的信息。然后再次点击 Next。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

Matomo 的表创建完成后,你会看到「Tables is created(表已创建)」的提示,然后点击 Next。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

现在输入 Matomo 的新用户名和密码。该用户将作为 Matomo 的管理员,请务必始终牢记用户名和密码。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

之后,输入域名作为第一个追踪器,并相应地更改时区。然后点击 Next 继续。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

第一个追踪器创建完成后,你应当在屏幕上看到追踪代码。滚动到页面底部并点击 Continue。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

现在安装应当已完成。滚动到下方并点击「CONTINUE TO MATOMO」按钮。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

在登录界面提示时,输入 Matomo 管理员用户名和密码,然后点击 SIGN IN。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

如果你输入了正确的用户名和密码,Matomo 管理仪表盘就会显示在你的浏览器中。

在 AlmaLinux 9 上安装 Matomo Web Analytics 指南

从那里,你可以轻松管理 Matomo 安装,并为网站添加更多追踪器。

结语

你已成功在 AlmaLinux 机器上安装了 Matomo Web Analytics。你已使用 httpd web 服务器、PHP 8.1 和 MariaDB 数据库服务器安装了 Matomo。此外,你还通过 Certbot 和 Letsencrypt 生成的 SSL 证书保护了 Matomo。

考虑到这一点,你现在就可以开始添加你的网站,并在 Matomo Web Analytics 所提供的受尊重隐私的基础上追踪你的访客。