Гид по технологиям

Установка Matomo на CentOS 7 с Nginx и Let's Encrypt

• 6 min read • DevOps • Обновлено 18 Nov 2025
Matomo на CentOS 7 с Nginx и Let's Encrypt
Matomo на CentOS 7 с Nginx и Let's Encrypt

Интерфейс Matomo — общий вид

Matomo — это свободная и open‑source система веб‑аналитики, написанная на PHP и работающая с MySQL/MariaDB. Она служит альтернативой Google Analytics и включает функции: A/B тестирование, тепловые карты, воронки, API отслеживания и отчётов, интеграции с рекламными сетями и учёт затрат на клик (CPC). Код доступен на GitHub.

В этом руководстве рассматривается установка Matomo на CentOS 7 с Nginx как веб‑сервером, MariaDB в роли СУБД, PHP‑FPM и получением TLS‑сертификатов от Let’s Encrypt через acme.sh.

Кому полезно

  • Системным администраторам и DevOps, которым нужен приватный аналитический стек.
  • Веб‑разработчикам, желающим разместить Matomo на собственном сервере.

Быстрый план действий

  1. Обновить систему и установить базовые утилиты. 2. Установить MariaDB и создать базу данных/пользователя. 3. Установить PHP 7.x и расширения. 4. Получить сертификат Let’s Encrypt (acme.sh). 5. Установить и настроить Nginx. 6. Скачать Matomo и завершить веб‑установку.

Требования

  • Сервер под управлением CentOS 7.
  • Непривилегированный пользователь с sudo.
  • Веб‑сервер: Nginx (или Apache/IIS).
  • PHP 5.5.9+ (рекомендуется PHP 7+), с расширениями: pdo, pdo_mysql или mysqli, gd, xml, curl, mbstring.
  • MySQL 5.5+ или MariaDB эквивалент (рекомендуется MariaDB/MySQL 5.7+).

Важные термины

  • PHP‑FPM: менеджер процессов PHP для работы с Nginx.
  • acme.sh: клиент для получения сертификатов Let’s Encrypt.

Предварительные шаги

Проверка версии CentOS:

cat /etc/centos-release  

Настройка часового пояса (замените ‘Регион/Город’ на нужный вам):

timedatectl list-timezones  
sudo timedatectl set-timezone 'Region/City'

Обновление системы:

sudo yum update -y

Установка утилит:

sudo yum install -y curl wget vim git unzip socat epel-release

Шаг 1 — Установка MariaDB и создание базы данных для Matomo

Matomo поддерживает как MySQL, так и MariaDB. В примере используем MariaDB.

Создайте YUM‑репозиторий MariaDB 10.2 для CentOS:

sudo vim /etc/yum.repos.d/MariaDB.repo

Вставьте в файл:

# MariaDB 10.2 CentOS repository list - created 2017-12-11 23:19 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name=MariaDB
baseurl=https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

Установка MariaDB:

sudo yum install -y MariaDB-server MariaDB-client

Проверка версии:

mysql --version  
# mysql  Ver 15.1 Distrib 10.2.21-MariaDB, for Linux (x86_64) using readline 5.1

Запуск и автозапуск службы:

sudo systemctl start mariadb.service  
sudo systemctl enable mariadb.service

Повысим безопасность и зададим пароль root:

sudo mysql_secure_installation

Пример ответов для сценария установки (следуйте подсказкам):

````Enter current password for root (enter for none): Press Enter  
Set root password? [Y/n] Y  
New password: your_secure_password  
Re-enter new password: your_secure_password  
Remove anonymous users? [Y/n] Y  
Disallow root login remotely? [Y/n] Y  
Remove test database and access to it? [Y/n] Y  
Reload privilege tables now? [Y/n] Y````

Подключитесь в shell MariaDB:

sudo mysql -u root -p  
# Введите пароль

Создайте базу данных и пользователя для Matomo (замените dbname/username/password):

MariaDB [(none)]> CREATE DATABASE dbname;  
MariaDB [(none)]> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';  
MariaDB [(none)]> FLUSH PRIVILEGES;

Выйдите:

MariaDB [(none)]> exit

Шаг 2 — Установка PHP и необходимых расширений

Подключите репозиторий Webtatic и установите PHP 7.2 (пример):

sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Установка PHP и расширений:

sudo yum install -y php72w php72w-cli php72w-fpm php72w-common php72w-curl php72w-gd php72w-xml php72w-mbstring php72w-mysqlnd php72w-json

Проверка модулей PHP:

php -m  

ctype  
curl  
exif  
fileinfo  
. . .  
. . .

Проверка версии PHP:

php --version  

# PHP 7.2.14 (cli) (built: Jan  8 2019 09:59:17) ( NTS )  
# Copyright (c) 1997-2018 The PHP Group  
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Запустите и включите PHP‑FPM:

sudo systemctl start php-fpm.service  
sudo systemctl enable php-fpm.service

Шаг 3 — Получение сертификата Let’s Encrypt через acme.sh (опционально, рекомендовано)

HTTPS не обязателен, но настоятельно рекомендован. Acme.sh — лёгкий POSIX‑совместимый клиент для Let’s Encrypt.

Установка acme.sh:

sudo mkdir /etc/letsencrypt  
git clone https://github.com/Neilpang/acme.sh.git  
cd acme.sh  
sudo ./acme.sh --install --home /etc/letsencrypt --accountemail [email protected]  
cd ~

Проверка версии:

/etc/letsencrypt/acme.sh --version  
# v2.8.0

Выпуск RSA и ECDSA сертификатов (замените example.com на ваш домен):

# RSA 2048  
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength 2048  
# ECDSA  
sudo /etc/letsencrypt/acme.sh --issue --standalone --home /etc/letsencrypt -d example.com --keylength ec-256

Сертификаты будут в:

  • RSA: /etc/letsencrypt/example.com
  • ECDSA: /etc/letsencrypt/example.com_ecc

Шаг 4 — Установка Nginx и базовая конфигурация для Matomo

Установка Nginx:

sudo yum install -y nginx

Проверка версии и запуск:

sudo nginx -v  
sudo systemctl start nginx.service  
sudo systemctl enable nginx.service

Создайте файл конфигурации:

sudo vim /etc/nginx/conf.d/matomo.conf  

Вставьте следующий блок (замените example.com и пути к сертификатам на ваши):

`server {  
  listen [::]:443 ssl http2;  
  listen 443 ssl http2;  
  listen [::]:80;  
  listen 80;  
  server_name example.com;  
  root /var/www/matomo/;  
  index index.php;  
  ssl_certificate /etc/letsencrypt/example.com/fullchain.cer;   
  ssl_certificate_key /etc/letsencrypt/example.com/example.com.key;   
  ssl_certificate /etc/letsencrypt/example.com_ecc/fullchain.cer;  
  ssl_certificate_key /etc/letsencrypt/example.com_ecc/example.com.key;  
  location ~ ^/(index|matomo|piwik|js/index).php {  
    fastcgi_split_path_info ^(.+\.php)(/.+)$;  
    try_files $fastcgi_script_name =404;  
    set $path_info $fastcgi_path_info;  
    fastcgi_param PATH_INFO $path_info;  
    fastcgi_index index.php;  
    include fastcgi.conf;  
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;  
    fastcgi_param HTTP_PROXY "";   
    fastcgi_pass 127.0.0.1:9000;   
  }    
  location = /plugins/HeatmapSessionRecording/configs.php {  
    fastcgi_split_path_info ^(.+\.php)(/.+)$;  
    try_files $fastcgi_script_name =404;  
    set $path_info $fastcgi_path_info;  
    fastcgi_param PATH_INFO $path_info;  
    fastcgi_index index.php;  
    include fastcgi.conf;  
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;  
    fastcgi_param HTTP_PROXY "";  
    fastcgi_pass 127.0.0.1:9000;  
  }  
  location ~* ^.+\.php$ {  
    deny all;  
    return 403;  
  }  
  location / {  
    try_files $uri $uri/ =404;  
  }    
  location ~ /(config|tmp|core|lang) {  
    deny all;  
    return 403;  
  }  
  location ~ \.(gif|ico|jpg|png|svg|js|css|htm|html|mp3|mp4|wav|ogg|avi|ttf|eot|woff|woff2|json)$ {  
    allow all;  
  }  
  location ~ /(libs|vendor|plugins|misc/user) {  
    deny all;  
    return 403;  
  }  
}`

Примечание: для production‑настроек и дополнительных рекомендаций посетите репозиторий: https://github.com/matomo-org/matomo-nginx.

Проверка конфигурации и перезагрузка:

sudo nginx -t
sudo systemctl reload nginx.service

Шаг 5 — Установка Matomo

Создайте каталог и загрузите архив Matomo:

sudo mkdir -p /var/www/
cd /var/www/
sudo wget https://builds.matomo.org/matomo.zip && sudo unzip matomo.zip
sudo rm matomo.zip

Установите владельца на nginx (если используете nginx как пользователя процесса):

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

Откройте конфигурацию PHP‑FPM и установите пользователя/группу nginx:

sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx

Перезапустите PHP‑FPM:

sudo systemctl restart php-fpm.service

Шаг 6 — Завершение установки через веб‑мастер

Откройте браузер и перейдите на https://example.com (замените на ваш домен). Следуйте мастеру установки Matomo.

Мастер установки Matomo — экран приветствия

Вы увидите страницу проверки системы. Устраните предупреждения до зелёного статуса и нажмите “Next”:

Проверка системы Matomo — результаты

Ввод параметров базы данных:

Настройка базы данных Matomo — ввод параметров

Если таблицы созданы успешно, увидите сообщение об успехе:

Создание таблиц базы данных — успешно

Создайте суперпользователя и продолжите:

Создание суперпользователя Matomo — форма

Добавьте первый сайт для отслеживания:

Добавление сайта для отслеживания в Matomo

Скопируйте JavaScript код отслеживания на ваш сайт:

JavaScript код отслеживания Matomo

После завершения вы увидите экран успешной установки:

Установка Matomo завершена — экран успеха

Поздравляем — Matomo установлено.


Критерии приёмки

  • Веб‑интерфейс Matomo доступен по вашему домену через HTTPS.
  • База данных и таблицы созданы; веб‑мастер успешно подключён.
  • Отслеживание работает: данные о посещениях появляются в интерфейсе в течение 24 часов.
  • Службы nginx и php-fpm запущены и настроены на автозапуск.

Рекомендации по безопасности и жёсткая настройка

  • Отключите доступ к папкам config, tmp, core и другим конфиденциальным через Nginx (уже включено в конфиг выше).
  • Используйте отдельного пользователя СУБД с минимальными правами и уникальный сложный пароль.
  • Регулярно обновляйте Matomo и все пакеты ОС.
  • Ограничьте доступ к phpMyAdmin/административным интерфейсам по IP или VPN.
  • Настройте бэкапы базы данных и каталога /var/www/matomo.
  • Включите HTTP Strict Transport Security (HSTS) и современные наборы шифров в nginx для TLS.

Пример заголовка HSTS в конфигурации nginx:

add_header Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" always;

Роли и контрольные списки

Для системного администратора:

  • Проверить обновления системы и установить безопасные пакеты.
  • Настроить SELinux/iptables/Firewalld при необходимости.
  • Настроить ротацию логов и мониторинг.

Для DevOps:

  • Автоматизировать развёртывание через Ansible/Chef/Terraform.
  • Настроить CI для обновления Matomo и тестирования конфигураций.

Для специалиста по безопасности:

  • Провести аудит директорий Matomo и прав доступа.
  • Проверить конфигурацию TLS и применить рекомендуемые параметры.

Диагностика и распространённые проблемы

  • “502 Bad Gateway” после настройки Nginx: проверьте, запущен ли php‑fpm и совпадает ли fastcgi_pass с адресом/портом.
  • Ошибки доступа к файлам: проверьте права владельца каталога /var/www/matomo и контекст SELinux (если включён).
  • Сертификат не выдан acme.sh: убедитесь, что порт 80 свободен для валидации standalone или используйте DNS‑верификацию.

Советы по миграции и совместимости

  • При переходе с Google Analytics на Matomo: планируйте переход отслеживания и настройте параллельный сбор данных для сравнения.
  • При обновлении Matomo следуйте официальным заметкам о релизе и делайте бэкап перед обновлением.
  • Если используете старые версии PHP, обновите до поддерживаемой ветки (PHP 7.4+ рекомендуется).

Быстрая методология развёртывания (мини‑план)

  1. Подготовка ОС: обновления, базовые пакеты.
  2. Установка СУБД и создание базы данных.
  3. PHP + PHP‑FPM + необходимые расширения.
  4. Nginx и TLS (acme.sh).
  5. Размещение файлов Matomo, права и тесты.
  6. Завершение через веб‑мастер, проверка отслеживания и настройка мониторинга.

Ключевые числа и ограничения

  • Рекомендуемая PHP‑версия: 7.2–8.x.
  • Рекомендуемая MariaDB/MySQL: 5.7+ или MariaDB 10.x.
  • Для больших нагрузок: выделите отдельный сервер для базы данных и оптимизируйте конфигурации MySQL/MariaDB.

Краткий глоссарий (1 строка каждый)

  • Matomo: self‑hosted система веб‑аналитики на PHP.
  • PHP‑FPM: FastCGI Process Manager для PHP.
  • acme.sh: клиент для Let’s Encrypt.
  • MariaDB: форк MySQL — СУБД.

Ссылки


Краткое резюме

  • Matomo легко развернуть на CentOS 7 с Nginx и PHP‑FPM.
  • Обязательно настройте безопасность: HTTPS, права файлов, бэкапы и обновления.
  • Используйте приведённые чек‑листы и критерии приёмки для контроля качества развёртывания.
Поделиться: X/Twitter Facebook LinkedIn Telegram
Автор
Редакция

Похожие материалы

Несколько аккаунтов Skype: Multi Skype Launcher
Программное обеспечение

Несколько аккаунтов Skype: Multi Skype Launcher

Журнал для работы: повысить продуктивность
Productivity

Журнал для работы: повысить продуктивность

Персональные звуки уведомлений на Android
Android.

Персональные звуки уведомлений на Android

Скачивание шоу Hulu для офлайн‑просмотра
Стриминг

Скачивание шоу Hulu для офлайн‑просмотра

Microsoft Start: персонализированная новостная лента
Новости

Microsoft Start: персонализированная новостная лента

Как изменить имя в Epic Games быстро
Гайды

Как изменить имя в Epic Games быстро