VPS如何部署Matomo 全部命令集

手把手 一步步

VPS如何部署Matomo 全部命令集

随着百度统计对接入域名的审核越来越严,几乎断掉了未备案域名接入的可能性。国内一些其他平台又都有这或者那的种种原因,比如IP统计不够准确,有过数据劫持的黑历史等,想要一个集合了“既要、又要、还要”的平台已经不太可能了,这时很多人包括小白就开始尝试寻求自己手动部署一个站点统计平台了。

通过处略的了解Matomo和Umami是两个口碑比较不错的开源网站统计工具,Matomo(原名Piwik)是一套开源、可自托管的用于统计和分析网站与应用访问行为的数据分析工具,,常被视为Google Analytics(GA)的隐私友好型替代方案。它的核心理念是:数据完全归你所有,尊重用户隐私。

今天就折腾了一番Matomo。从一台什么软件都没有装的Linux主机开始,我装的是ubuntu版本的Linux,其他版本也都是可以的。把今天从零开始的所有命令行整理一番以备后用。也做分享,让小白朋友能少走弯路,不要没苦硬吃,有的弯路我替你走了就行了。

VPS部署Matomo的全部命令:

  1. 更新软件源索引并升级系统已安装的软件包:

sudo apt update && sudo apt upgrade -y

  1. 一次性安装 Apache 服务器、MariaDB 数据库、Composer 以及完整的PHP运行与扩展环境,并同时安装常用的下载、解压和网络管理工具,为部署基于 PHP 的网站或应用提供完整的运行基础环境,且全程自动确认安装:

sudo apt install apache2 mariadb-server composer php php-apcu php-dev libapache2-mod-php libcurl4-openssl-dev php-cli php-mysql php-zip php-gd php-fpm php-json php-common php-intl php-mbstring php-curl php-xml php-pear php-tidy php-uploadprogress php-soap php-bcmath php-xmlrpc wget unzip net-tools -y

  1. 立即启动 Apache2 Web 服务,并将其设置为系统开机自动启动,确保服务器在重启后 Apache 也能自动运行:

systemctl start apache2 && systemctl enable apache2

  1. 查看 Apache2 服务的当前运行状态,包括是否正在运行、是否设置为开机自启,以及最近的启动日志和错误信息,便于确认服务是否正常工作:

systemctl status apache2

  1. 检查 MariaDB 数据库服务是否被设置为开机自动启动,用于确认服务器重启后 MariaDB 是否会自动运行:

sudo systemctl is-enabled mariadb

  1. 查看 MariaDB 数据库服务的当前运行状态,包括是否正在运行、启动时间、进程信息以及最近的日志输出,以确认数据库是否正常工作:

sudo systemctl status mariadb

  1. 当前系统中安装的 PHP 版本信息:

sudo php -v

  1. 使用 nano 编辑器打开 PHP 配置文件 php.ini,允许用户查看或修改 PHP 在 Apache2 下的运行配置(如内存限制、上传文件大小、扩展启用等)。
    注:下面命令行中8.4改成上一步骤里查看的PHP版本。

sudo nano /etc/php/8.4/apache2/php.ini

打开配置文件后,把下面的四个参数修改成推荐值(推荐,非必须)。

memory_limit = 512M
upload_max_filesize = 60M
max_execution_time = 300
date.timezone = Asia/Shanghai

  1. 重新启动 Apache2 Web 服务,使其应用最新的配置更改或恢复服务状态,确保网站或应用的更新配置生效:

sudo systemctl restart apache2

  1. 以管理员权限启动 MySQL/MariaDB 命令行客户端,进入数据库交互界面,便于执行查询、管理数据库和用户等操作: 注:这一步如果是最新版本可能会略有报错,把报错发给GPT修改一下就行,问题不大。

sudo mysql

ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
DELETE FROM mysql.user WHERE User='';
DROP DATABASE IF EXISTS test;
FLUSH PRIVILEGES;
EXIT;
  1. 以 root 用户身份启动 MySQL/MariaDB 命令行客户端,并提示输入密码,用于安全地访问数据库执行管理和操作任务:

sudo mysql -u root -p

在 MySQL/MariaDB 中创建一个名为 matomo_db 的新数据库,并设置字符集为 utf8mb4、排序规则为 utf8mb4_unicode_ci,以支持多语言字符(包括 Emoji)和正确的文本排序:

CREATE DATABASE matomo_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

在 MySQL/MariaDB 中创建一个名为 matomo_user 的新数据库用户,只能从本地主机登录,并设置其登录密码为matomo,用于安全地访问数据库:

CREATE USER 'matomo_user'@'localhost' IDENTIFIED BY 'matomo';

授予用户 matomo_user 对数据库 matomo_db 的所有权限,包括查询、插入、更新和删除等操作,使该用户能够完全管理这个数据库:

GRANT ALL PRIVILEGES ON matomo_db.* TO 'matomo_user'@'localhost';

立即刷新 MySQL/MariaDB 的权限表,使之前对用户权限的修改(如 GRANT 或 CREATE USER)立即生效,而无需重启数据库:

FLUSH PRIVILEGES;

退出,继续部署:

exit;

  1. 从 Matomo 官方网站下载最新版本的 Matomo 压缩安装包 matomo-latest.zip 到当前目录,用于后续安装部署:

wget https://builds.matomo.org/matomo-latest.zip

  1. 解压缩:

unzip matomo-latest.zip

  1. 将 Matomo 文件夹移动到 Apache 的网站根目录 /var/www/html/ 下,使其可以通过 Web 服务器访问和运行:

sudo mv matomo /var/www/html/

  1. 将 /var/www/html/matomo 目录及其所有子文件和子目录的所有权更改为 Apache 用户和用户组 www-data,确保 Web 服务器对 Matomo 文件具有读写权限:

sudo chown -R www-data:www-data /var/www/html/matomo

  1. 将 /var/www/html/matomo 目录及其所有子文件和子目录的权限设置为 755,使所有用户可读取和执行文件,但只有所有者可以写入,从而保证 Web 服务器安全访问:

sudo chmod -R 755 /var/www/html/matomo

  1. 以管理员权限使用 nano 编辑器打开 Apache 虚拟主机配置文件 matomo.conf:

sudo nano /etc/apache2/sites-available/matomo.conf

为 Matomo 设置网站域名、根目录、端口和其他 Web 服务器相关配置,只要修改yourdomain.com即可,记得同时把你的域名解析到主机:

<VirtualHost *:80>
    ServerName yourdomain.com
    DocumentRoot /var/www/html/matomo

    <Directory /var/www/html/matomo>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
    CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined
</VirtualHost>
  1. 在 Apache 中启用名为 matomo.conf 的虚拟主机配置,使该站点配置生效并加入 Apache 的可用站点列表:

sudo a2ensite matomo.conf

  1. 在 Apache 中启用 rewrite 模块,以支持 URL 重写功能:

sudo a2enmod rewrite

  1. 重启 Apache2 Web 服务,使新启用的站点配置或模块立即生效:

sudo systemctl restart apache2

  1. 查看 Apache2 Web 服务的当前运行状态,包括是否正常运行、是否已启用以及最近的服务日志,用于确认配置是否生效和服务是否正常:

systemctl status apache2

至此,Linux VPS部署Matomo就基本完成了,然后访问在第17步中设置的自己的域名,根据提示一步步安装设置即可,需要用的数据库参数在上面都能找到。最后还有一些可以完成的事情就是比如给自己的域名颁发一下证书并自动续期,开启https访问,这些都比较简单了。

看到网上有一些一键部署的代码集,但是由于各自的机器有些略微区别,所以很容易出问题的,几乎没有看到100%能部署成功的,所以推荐小白朋友还是跟我一样,一步步部署,也算是加深一下对代码的了解学习。至少会少出错,即使出错也知道是卡在哪一步了,即时解决就行。👨🏻‍💻


每粒玉米都是梦想的开始!