在开源网络分析领域,Matomo(前身为 Piwik)是一个强大且注重隐私的 Google Analytics 替代品,它将数据完全掌握在您自己手中,提供了详细的访问者统计、页面分析、转化目标追踪等功能,本文将详细介绍如何在 CentOS 7 服务器上一步步安装和配置 Matomo 分析平台。
准备阶段:环境与依赖
在开始安装之前,请确保您的 CentOS 7 系统已准备就绪,并且您拥有 sudo
或 root
权限,Matomo 需要一个完整的 LEMP(Linux, Nginx, MariaDB/MySQL, PHP)或 LAMP(Linux, Apache, MariaDB/MySQL, PHP)环境,本文将以性能更优的 LEMP 架构为例进行讲解。
以下是所需核心组件的概览:
组件 | 作用 | 推荐版本及说明 |
---|---|---|
Nginx | Web 服务器,用于处理 HTTP 请求并提供 Matomo 文件 | 18 或更高版本 |
MariaDB | 数据库服务器,用于存储 Matomo 的所有分析数据 | 3 或更高版本 (与 MySQL 兼容) |
PHP | 脚本语言,Matomo 的核心运行环境 | 2 或更高版本 (推荐 7.4) |
PHP 扩展 | 提供 Matomo 运行所需的各种功能支持 | pdo, mysql, gd, xml, mbstring, json 等 |
第一步:更新系统并配置基础环境
确保您的系统软件包是最新的,并安装必要的仓库。
sudo yum update -y sudo yum install -y epel-release yum-utils
SELinux 是 CentOS 的一个安全模块,它有时会阻止 Nginx 写入文件,为简化初始安装过程,您可以将其设置为 permissive
模式,稍后再根据需要调整策略。
sudo setenforce 0 sudo sed -i 's/SELINUX=enforcing/SELINUX=permissive/g' /etc/selinux/config
第二步:安装 LEMP 技术栈
安装 Nginx
我们将使用 Nginx 官方仓库以获取最新稳定版。
sudo rpm -Uvh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm sudo yum install -y nginx sudo systemctl start nginx sudo systemctl enable nginx
安装 MariaDB
MariaDB 是 MySQL 的一个流行分支,完全兼容。
sudo yum install -y mariadb-server mariadb sudo systemctl start mariadb sudo systemctl enable mariadb
安装完成后,运行安全安装脚本来设置 root 密码、移除匿名用户等。
sudo mysql_secure_installation
按照提示操作,建议设置 root 密码并回答“Y”(是)来移除不安全的默认设置。
安装 PHP 及扩展
CentOS 7 默认的 PHP 版本过低,我们需要使用 Remi 或 Webtatic 仓库来安装较新版本的 PHP,这里以 Webtatic 为例。
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm sudo yum install -y php74 php74-fpm php74-mysqlnd php74-cli php74-gd php74-xml php74-mbstring php74-json
配置 PHP 和 PHP-FPM。
编辑
php.ini
文件:sudo vi /etc/php.ini
找到并修改以下行:
memory_limit = 256M date.timezone = Asia/Shanghai
编辑
www.conf
文件,确保 PHP-FPM 以 Nginx 用户身份运行:sudo vi /etc/php-fpm.d/www.conf
修改
user
和group
的值:user = nginx group = nginx
启动并启用 PHP-FPM:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
第三步:为 Matomo 创建数据库
登录 MariaDB 并为 Matomo 创建一个专用的数据库和用户。
mysql -u root -p
在 MariaDB 提示符下,执行以下 SQL 命令,请将 your_password
替换为一个强密码。
CREATE DATABASE matomo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'matomo_user'@'localhost' IDENTIFIED BY 'your_password'; GRANT ALL PRIVILEGES ON matomo_db.* TO 'matomo_user'@'localhost'; FLUSH PRIVILEGES; EXIT;
第四步:下载并安装 Matomo
在 /tmp
目录下载最新版的 Matomo,然后将其部署到 Nginx 的网站根目录。
cd /tmp wget https://builds.matomo.org/matomo-latest.zip sudo unzip matomo-latest.zip -d /var/www/html/ sudo chown -R nginx:nginx /var/www/html/matomo sudo chmod -R 755 /var/www/html/matomo
第五步:配置 Nginx 虚拟主机
为 Matomo 创建一个新的 Nginx 配置文件。
sudo vi /etc/nginx/conf.d/matomo.conf
将以下配置粘贴到文件中,请将 your_domain.com
替换为您的域名或服务器 IP 地址。
server { listen 80; server_name your_domain.com; root /var/www/html/matomo; index index.php index.html index.htm; access_log /var/log/nginx/matomo_access.log; error_log /var/log/nginx/matomo_error.log; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ .php$ { try_files $uri =404; fastcgi_split_path_info ^(.+.php)(/.+)$; fastcgi_pass unix:/var/run/php-fpm/www.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
保存文件后,检查 Nginx 配置是否有语法错误,然后重新加载配置。
sudo nginx -t sudo systemctl reload nginx
配置防火墙以允许 HTTP 流量。
sudo firewall-cmd --permanent --add-service=http sudo firewall-cmd --reload
第六步:完成 Web 界面安装
打开浏览器,访问 http://your_domain.com
,您将看到 Matomo 的 Web 安装向导。
- 系统检查:向导会自动检查所有环境和权限设置,确保全部显示为绿色“OK”。
- 数据库设置:输入之前创建的数据库信息:数据库名(
matomo_db
)、用户名(matomo_user
)和密码。 - 创建超级用户:设置 Matomo 管理后台的登录账户和密码。
- 设置第一个网站:输入您要追踪的网站的名称和 URL。
- 获取追踪代码:安装向导最后会生成一段 JavaScript 代码,将此代码复制并粘贴到您网站所有页面的
<head>
标签内,Matomo 即可开始收集数据。
后续优化:设置自动归档
为了提高性能,强烈建议设置一个 Cron 任务,让系统自动在后台处理报告生成(即“归档”)。
sudo crontab -e
添加以下一行,让 Matomo 每 5 分钟自动执行一次归档任务。
*/5 * * * * /usr/bin/php /var/www/html/matomo/console core:archive > /dev/null 2>&1
至此,您已成功在 CentOS 7 上部署了功能完整的 Matomo 分析平台,您可以登录管理后台,开始深入分析您的网站流量数据了。
相关问答 (FAQs)
Q1: 我忘记了 Matomo 管理员的登录密码,该如何重置?
A: Matomo 提供了便捷的命令行工具来重置密码,您只需通过 SSH 登录到服务器,然后执行以下命令:
# 切换到 matomo 目录 cd /var/www/html/matomo # 使用 console 命令重置 # 请将 your_admin_login 和 your_new_password 替换为实际值 sudo /usr/bin/php console user:reset-password --login=your_admin_login --new-password=your_new_password
执行后,您就可以使用新设置的密码登录管理后台了。
Q2: 我已经正确安装了追踪代码,但 Matomo 后台一直显示没有访客数据,这是为什么?
A: 这是一个常见问题,可能由以下几个原因导致:
- 追踪代码未生效:请确认代码已正确添加到网站的所有页面,并且没有语法错误,可以通过浏览器的“查看网页源代码”功能来检查。
- 浏览器插件:访问您网站的用户(包括您自己)可能使用了广告拦截器(如 AdBlock Plus)或隐私保护插件,这些插件会阻止 Matomo 的追踪脚本运行,可以尝试在无痕模式下或禁用插件后访问网站进行测试。
- 自动归档未设置:如果您没有设置上文提到的 Cron 归档任务,报告数据可能不会实时显示,即使没有 Cron,用户访问后也会触发归档,但这会降低网站速度,设置 Cron 是最佳实践。
- 时区或服务器时间不正确:如果服务器时间不准确,可能会导致数据记录时间错乱,请检查并同步服务器时间。
【版权声明】:本站所有内容均来自网络,若无意侵犯到您的权利,请及时与我们联系将尽快删除相关内容!
发表回复