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

Установка Matomo на Fedora 29 с Nginx и SSL

• 5 min read • DevOps • Обновлено 24 Nov 2025
Установка Matomo на Fedora 29 с Nginx
Установка Matomo на Fedora 29 с Nginx

Скриншот начальной страницы Matomo

Кому это руководство

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

Краткое определение: Matomo — свободный веб‑аналитический пакет на PHP/MySQL, собирающий и визуализирующий посещения сайтов.

Основные шаги руководства

  1. Подготовка системы и обновление пакетов.
  2. Установка MariaDB и создание базы данных.
  3. Установка PHP и расширений.
  4. Получение сертификата Let’s Encrypt с помощью acme.sh (опционально).
  5. Установка и конфигурация Nginx для Matomo.
  6. Загрузка Matomo, настройка прав и запуск веб‑мастера установки.

Требования к системе

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

Важно: используйте актуальные версии PHP и СУБД для безопасности и производительности.

Подготовка системы

Проверьте версию Fedora:

cat /etc/fedora-release
# Fedora release 29 (Twenty Nine)

Установите часовой пояс:

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

Обновите пакеты:

sudo dnf check-update; sudo dnf update -y

Установите вспомогательные утилиты:

sudo dnf install -y curl wget vim git unzip socat

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

Установите MariaDB:

sudo dnf install -y mariadb-server

Проверьте версию:

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

Запустите и включите сервис:

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

Усилите безопасность и задайте пароль root:

sudo mysql_secure_installation

Ответьте на вопросы (пример):

  • Would you like to setup VALIDATE PASSWORD plugin? N
  • New password: your_secure_password
  • Re-enter new password: your_secure_password
  • Remove anonymous users? Y
  • Disallow root login remotely? Y
  • Remove test database and access to it? Y
  • Reload privilege tables now? Y

Подключитесь к MariaDB и создайте базу и пользователя для Matomo:

sudo mysql -u root -p
MariaDB> CREATE DATABASE dbname;
MariaDB> GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
MariaDB> FLUSH PRIVILEGES;
MariaDB> exit

Замените dbname, username и password на свои значения.

Шаг 2 — Установка PHP и расширений

sudo dnf install -y php php-cli php-fpm php-common php-curl php-gd php-xml php-mbstring php-mysqlnd php-json

Проверьте версию PHP:

php --version

# PHP 7.2.14 (cli) (built: Jan  8 2019 09:59:17) ( NTS )

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

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

Важно: убедитесь, что php.ini и pool‑конфигурация соответствуют потребностям Matomo (memory_limit, max_execution_time, upload_max_filesize).

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

Защищать сайт с HTTPS рекомендуется. Для получения сертификата используем acme.sh (написан на POSIX shell, без внешних зависимостей).

Установка 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:

# 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

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

  • /etc/letsencrypt/example.com
  • /etc/letsencrypt/example.com_ecc

Примечание: если сервер уже использует Nginx, остановите Nginx на время выдачи (acme.sh в режиме –standalone использует порт 80). Либо используйте DNS‑валидацию.

Шаг 4 — Установка и настройка Nginx для Matomo

Установите Nginx:

sudo dnf install -y nginx

Проверьте версию:

sudo nginx -v
# nginx version: nginx/1.14.1

Запустите и включите сервис:

sudo systemctl start nginx.service
sudo systemctl enable nginx.service

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

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

Заполните его следующим блоком (пример):

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 unix:/run/php-fpm/www.sock;   
  }    
    
  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 unix:/run/php-fpm/www.sock;  
  }  
  
  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‑окружения дополнительно настройте HSTS, современные шифры, OCSP stapling и редирект с HTTP на HTTPS.

Проверьте синтаксис и перезагрузите 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

Установите права на каталог:

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

Настройте пул PHP‑FPM для использования пользователя nginx: откройте /etc/php-fpm.d/www.conf и измените значения user и group на nginx. Затем перезапустите php-fpm:

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

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

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

Мастер установки Matomo

На странице проверки системы убедитесь, что все зависимости отмечены как “OK”. Если что‑то отсутствует — установите или настройте соответствующие модули PHP.

Проверка системы Matomo

Заполните параметры базы данных и продолжите.

Настройка базы данных Matomo

Если таблицы успешно созданы, увидите подтверждение.

Таблицы базы данных созданы

Создайте суперпользователя и добавьте первый сайт для отслеживания.

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

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

Скопируйте JavaScript‑код отслеживания на страницы вашего сайта.

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

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

Установка Matomo завершена

Поздравляем — Matomo установлена и готова к использованию.

Рекомендации по безопасности

  • Ограничьте доступ к административной панели по IP, если возможно.
  • Используйте только HTTPS и включите HSTS.
  • Ограничьте права на файлы: владельцем должен быть процесс веб‑сервера, а запись — только там, где требуется (tmp, config).
  • Регулярно обновляйте Matomo и плагины.
  • Отключите или удалите неиспользуемые плагины.

Отладка и распространённые ошибки

  • 500 Internal Server Error: проверьте логи Nginx (/var/log/nginx/error.log) и логи PHP‑FPM (/var/log/php-fpm/www-error.log).
  • Проблемы с подключением к базе: убедитесь в правильности хоста, порта и привилегий пользователя.
  • Ошибки прав файлов: проверьте владельца и права /var/www/matomo и вложенных каталогов.
  • Сертификат не выдан: проверьте, не занят ли порт 80, и корректность DNS.

Что делать, если Matomo медленно работает

  • Проверьте нагрузку CPU и I/O.
  • Включите кэширование (Redis / APCu) для уменьшения нагрузки PHP.
  • Оптимизируйте базу данных и настройте периодические задачи архивации.

Миграция с Google Analytics или других систем

  • Matomo позволяет импортировать данные через API и плагины; полный перенос исторических данных обычно требует кастомных скриптов.
  • Для легкой замены начните параллельный сбор данных (тег Matomo и GA одновременно) и постепенно переключайтесь.

Чеклист перед вводом в продакшен

  • Обновлены пакеты ОС и PHP.
  • Настроены и защищены сертификаты SSL.
  • Создана отдельная база и пользователь для Matomo.
  • Проверены права на файлы и директории.
  • Настроен регулярный бэкап базы данных.
  • Настроено логирование и ротация логов.

Роль‑ориентированные задачи

  • Системный администратор: установка OS, настройка бэкапов, мониторинга и обновлений.
  • DevOps: CI/CD для конфигурации Nginx, автоматическое обновление сертификатов acme.sh.
  • Веб‑разработчик: вставка кода отслеживания, тесты событий и целей.
  • Аналитик: проверка корректности данных и настройка отчётов.

Краткая методология установки (мини‑SOP)

  1. Подготовка ОС и установка зависимостей.
  2. Настройка СУБД и учётных записей.
  3. Установка PHP и проверка расширений.
  4. Настройка веб‑сервера и получение SSL.
  5. Установка Matomo, настройка прав, запуск веб‑мастера.
  6. Тестирование отслеживания и оптимизация.

Факты и рекомендации

  • Рекомендуемая версия PHP: 7.2+ или 7.4+, для производительности и безопасности.
  • База данных: MariaDB/MySQL с регулярной оптимизацией и бэкапами.
  • SSL: используйте ECDSA сертификат для лучшей производительности на современных клиентах.

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

  • Доступность сайта по HTTPS и корректный сертификат.
  • Веб‑мастер Matomo завершил все шаги и отображает панель администратора.
  • Запись первых посещений на тестовом сайте.
  • Автоматическое обновление сертификатов acme.sh настроено и протестировано.

Ссылки и ресурсы

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

Установка Matomo на Fedora 29 с Nginx включает подготовку системы, установку MariaDB и PHP, получение сертификата Let’s Encrypt (опционально) и тщательную настройку прав и конфигураций. После установки через веб‑мастер проверьте отслеживание и безопасность.

Важно: тестируйте в staging перед вводом в продакшен и обеспечьте регулярное резервное копирование данных.

Поделиться: 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 быстро