Установка Matomo (ранее Piwik) на CentOS 8

О чём эта инструкция
Matomo, ранее известный как Piwik, — свободное приложение для веб- и мобильной аналитики, работающее на PHP/MariaDB. Руководство показывает пошаговую установку Matomo на сервер с CentOS 8, включая подготовку LAMP-стека, конфигурацию Apache, SELinux, файрвола и установку HTTPS через Let’s Encrypt.
Важно: Matomo хранит ваши данные локально — вы управляете данными и конфигурацией. Если нужна облачная аренда сервиса, рассмотрите Matomo Cloud.
Быстрый список требований
- Сервер с CentOS 8 и доступом по root или sudo.
- Домен, указывающий на IP сервера (например, piwik.example.com).
- Базовые навыки работы в терминале и редактировании файлов.
Краткая структура установки (мини-методология)
- Установить LAMP-пакеты и PHP-расширения.
- Настроить php.ini (параметры для Matomo).
- Запустить и включить Apache и MariaDB.
- Создать базу данных и пользователя MariaDB для Matomo.
- Скачать и распаковать Matomo в /var/www/html.
- Настроить SELinux и файрволд.
- Создать виртуальный хост Apache для домена.
- Пройти веб-установщик и завершить настройку.
- Получить и включить SSL через Let’s Encrypt.
Подготовка — установка LAMP и PHP-пакетов
Matomo работает на LAMP (Linux, Apache, MariaDB, PHP). На CentOS 8 выполните:
dnf install httpd mariadb-server php php-mysqlnd php-fpm unzip wget php-json php-dom php-gd php-mbstring -yОткройте php.ini для корректировки лимитов (улучшает работу при импортах и больших отчётах):
nano /etc/php.iniИзмените или убедитесь в следующих значениях:
upload_max_filesize = 10M
post_max_size = 10M
max_execution_time = 300
max_input_time = 300
memory_limit = 256MСохраните файл и запустите сервисы, а также включите их автозапуск:
systemctl start mariadb
systemctl start httpd
systemctl enable mariadb
systemctl enable httpdВажно: после обновлений пакетов проверяйте, что версии PHP и установленные расширения совместимы с вашей версией Matomo.
Создание базы данных для Matomo
Войдите в MariaDB и создайте базу и пользователя:
mysqlВнутри консоли MariaDB выполните:
mysql> CREATE DATABASE matomo;
mysql> CREATE USER `matomo`@`localhost` IDENTIFIED BY 'password';
mysql> GRANT ALL ON matomo.* TO `matomo`@`localhost`;
mysql> FLUSH PRIVILEGES;
mysql> EXIT;Примечание: замените ‘password’ на надёжный пароль и храните его в менеджере паролей.
Установка Matomo (ранее Piwik)
Перейдите в корневую папку веб-сервера и скачайте пакет:
cd /var/www/html
wget https://builds.matomo.org/matomo-latest.zip
unzip matomo-latest.zipУстановите владельца и права доступа:
chown -R apache:apache /var/www/html/matomo
chmod -R 775 /var/www/html/matomoВажно: права 775 позволяют веб-серверу записывать в каталог Matomo; в строгих окружениях можно настроить ACL вместо широких прав.
Настройка SELinux и файрвола
Разрешите HTTP/HTTPS в firewalld:
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reloadНастройте SELinux для записи веб-сервера в директорию Matomo:
chcon -R -t httpd_sys_rw_content_t /var/www/html/matomo/
setsebool httpd_can_network_connect on -PПримечание: в окружениях с строгой политикой SELinux лучше создавать собственный модуль политик, а не отключать SELinux.
Конфигурация Apache для Matomo
Создайте виртуальный хост:
nano /etc/httpd/conf.d/piwik.confДобавьте (отредактируйте ServerName и ServerAdmin под ваш домен):
ServerAdmin [email protected]
DocumentRoot "/var/www/html/matomo"
ServerName piwik.example.com
Options MultiViews FollowSymlinks
AllowOverride All
Order allow,deny
Allow from all
TransferLog /var/log/httpd/matomo_access.log
ErrorLog /var/log/httpd/matomo_error.log
Перезапустите Apache:
systemctl restart httpd
systemctl status httpdЕсли в выводе systemctl будут ошибки, откройте /var/log/httpd/error_log и проверьте синтаксис конфигурации.
Доступ к веб-интерфейсу и пошаговый веб-инсталлятор
Откройте в браузере: http://piwik.example.com — вы попадёте в инсталлятор Matomo.

Следуйте шагам инсталлятора: проверка системы, ввод настроек базы данных, создание администратора, добавление сайта и получение трекинг-кода.







После завершения инсталляции вы попадёте на страницу входа в Matomo.



Защита Matomo с помощью Let’s Encrypt SSL
Установите Certbot и получите сертификат для Apache:
wget https://dl.eff.org/certbot-auto
mv certbot-auto /usr/local/bin/certbot-auto
chown root /usr/local/bin/certbot-auto
chmod 0755 /usr/local/bin/certbot-autoЗапустите Certbot для Apache (замените домен):
certbot-auto --apache -d piwik.example.comСледуйте подсказкам: введите e-mail, согласитесь с условиями и выберите перенаправление HTTP->HTTPS (рекомендуется — выбор 2). В конце вы увидите сообщение об успешном развертывании сертификата. Пример вывода см. ниже (в исходном тексте указаны примеры путей и сроков действия сертификата).
Важно: certbot-auto устарел в некоторых дистрибутивах; в CentOS 8 доступен пакет python3-certbot-apache через dnf. При необходимости используйте его.
Пост-установка: проверка и базовая безопасность
- Убедитесь, что каталог config/config.ini.php защищён и доступен только для чтения через веб.
- Настройте бэкапы базы данных и директорий Matomo. Регулярные бэкапы необходимы для восстановления.
- Включите автоматическое продление сертификатов (certbot renew), проверьте cron/systemd timer.
- Обновляйте Matomo в пределах совместимости с PHP/бэкэндом.
Контроль качества — критерии приёмки
- Веб-инсталлятор Matomo доступен по HTTPS и без ошибок на странице статуса.
- Внутренние системные проверки Matomo (PHP, расширения, права) пройдены.
- Администратор создан, сайт добавлен, трекинг-код сгенерирован и доступен.
- Веб-страницы сайта начинают отправлять события, видимые в реальном времени Matomo.
- Бэкап БД выполняется по расписанию, тестовый откат подтверждён.
Рекомендации по безопасности и жёсткая конфигурация
- Используйте сильные пароли и храните их в менеджере паролей.
- Отключите возможности записи в конфигурационные файлы из веба: каталог config должен быть доступен только системному пользователю.
- Включите двухфакторную аутентификацию для административных аккаунтов (поддерживается плагинами).
- Ограничьте доступ к административному интерфейсу по IP через Apache или внешний прокси, если это возможно.
- Регулярно проверяйте обновления Matomo и PHP-стека.
Альтернативные подходы (когда так проще)
- Docker: разверните Matomo в контейнере docker-compose, чтобы упростить обновления и изоляцию зависимостей.
- Matomo Cloud: если не хотите управлять сервером и бэкапами, используйте облачную версию.
- Nginx вместо Apache: некоторые предпочитают Nginx + php-fpm для лучшей производительности и меньшего потребления ресурсов.
Ментальные модели и подсказки для поддержки
- Разделяйте обязанности: DevOps отвечает за бэкап и инфраструктуру, аналитики — за конфигурации сайтов и цели.
- Трекинг-код — «датчик» на сайте; Matomo — «хранилище и отчёты».
- Если данные не приходят — проверьте сеть, HTTPS, CSP и наличие JS-трекера на целевой странице.
Роль‑ориентированные чеклисты
- DevOps:
- Настроить бэкап MySQL и директорий.
- Обновление пакетов и мониторинг дискового пространства.
- Настроить TLS и автоматическое продление.
- Администратор Matomo:
- Создать аккаунты с ролями и ограничить права.
- Установить плагины безопасности и резервного копирования.
- Аналитик:
- Добавить сайты и проверить трекинг-код.
- Настроить цели и отчёты, проверить события в реальном времени.
Тесты и сценарии приёмки
- Установить трекинг-код на тестовую страницу и отправить тестовый заход — событие должно появиться в реальном времени.
- Проверить доступность по HTTPS, убедиться в перенаправлении HTTP->HTTPS.
- Проверить работу администратора: вход, создание отчёта, экспорт данных.
Частые ошибки и как их исправить
- 500/403 ошибки после установки: проверьте права и SELinux контекст.
- Не подключается к базе: проверьте пароль, хост и права пользователя в MariaDB.
- Трекинг не собирается: проверьте, вставлен ли JS-код на страницу и нет ли блокировщиков рекламы/CSP.
Короткая памятка по обслуживанию
- Обновления Matomo: выполняйте в тестовой среде перед продакшеном.
- Резервное копирование: daily для БД, weekly для файлов.
- Мониторинг: следите за размером базы и временем отклика запросов.
1‑строчный глоссарий
- Matomo — открытая платформа аналитики, ранее Piwik.
- LAMP — стек: Linux, Apache, MariaDB, PHP.
- Certbot — клиент для получения сертификатов Let’s Encrypt.
Заключение
Поздравляем: вы установили Matomo на CentOS 8, настроили веб-сервер, базу данных и SSL. Теперь вы контролируете данные аналитики и можете настраивать отчёты, цели и отслеживание событий. Следуйте рекомендациям по безопасности и бэкапам, чтобы обеспечить надёжную и устойчивую работу сервиса.
Важно: если нужно развернуть Matomo в масштабируемой среде или использовать кластерную базу данных, рассмотрите варианты с отдельными хостами баз данных и балансировщиками нагрузки.
Похожие материалы
Мониторинг трафика: логи и GoAccess
Отключить Motion Photos на Samsung
Как исправить ошибку docagent.dll в Windows 10
Как нарисовать радиус в Google Maps
Исправить ошибку d3d9.dll в Windows