Требования к серверу
Matomo — штука достаточно гибкая, но к окружению относится с уважением. Без нужных модулей PHP и свежей базы данных установка попросту не пройдет.
PHP
Рекомендуемая версия: PHP 8.1 или выше. (Поддерживаются версии от 7.4, но если вы не коллекционер старого софта — лучше обновитесь.)
Обязательные расширения PHP:
pdo_mysql— для подключения к базе данных.mbstring— для корректной работы со строками (включая UTF-8).curl— для сетевых запросов.gd— для построения графиков и визуализаций.json— обязательный модуль для API.zlib— поддержка сжатия данных.xml— для работы с отчетами и импортом данных.
MySQL/MariaDB
Рекомендуемые версии:
- MySQL ≥ 5.5.
- MariaDB ≥ 10.0.
Matomo использует стандартный движок InnoDB и хранит миллионы строк, так что не экономьте на версии.
Веб-сервер
Matomo прекрасно работает как с Apache, так и с Nginx. Для Apache достаточно стандартного mod_rewrite. Для Nginx нужно будет добавить блок с поддержкой index.php и try_files.
HTTPS
Без HTTPS Matomo не позволит работать со многими современными браузерами и API. Используйте Let’s Encrypt — бесплатный сертификат ставится в пару команд, а Matomo будет спокоен за передачу данных.
Рекомендуемые параметры для производительности
Если планируете собирать данные не только со своего блога, но и с пары десятков сайтов, стоит сразу настроить ресурсы по-взрослому.
PHP memory_limit
Минимум: 256M
Рекомендуется: 512M или больше.
Matomo активно генерирует отчеты, поэтому ограничение памяти напрямую влияет на скорость работы.
max_execution_time
Установите 300 секунд или больше, чтобы длинные операции (архивация, импорт данных) не обрывались.
Настройки PHP для больших сайтов
post_max_size и upload_max_filesize — не менее 20M (нужно для импорта).
max_input_vars — не менее 5000.
При большом трафике настройте OPcache для PHP, чтобы не пересобирать код при каждом запросе.
Пример конфигурации LAMP для Matomo
Ниже базовый пример, на котором Matomo работает стабильно для сайтов до 500 тыс. хитов в месяц.
# Пример: Ubuntu 22.04 LTS
sudo apt update
sudo apt install apache2 mariadb-server php php-cli php-mysql php-curl php-gd php-xml php-mbstring php-zip php-bz2 unzip
# Проверка версии PHP
php -v
# Проверка работы Apache
sudo systemctl status apache2
# Проверка MySQL
sudo mysql -e "SELECT VERSION();"
Ниже расскажу, как рассчитать, сколько необходимо ресурсов под ваш сервер.
Ну и важно сказать, что не буду подробно расписывать все настройки в Linux, когда всё это давно уже ставится на виртуальную машину за пять щелчков. Вот я, например, всё это реализовал у провайдера виртуальных машин Beget.
Подготовка к установке Matomo
Перед установкой важно правильно подготовить сервер и окружение. Если пропустить этот этап, Matomo может установиться, но начнет подтормаживать, ругаться на права или не будет создавать отчеты. Так что лучше уделить 15 минут — и потом не чинить то, что не сломалось.
Настройка домена и HTTPS
Для работы Matomo нужен отдельный домен или поддомен — например: analytics.yoursite.ru.
Добавляем DNS-запись
Создайте A-запись (или CNAME, если используете внешние прокси) в панели управления доменом, указывающую на IP вашего сервера.
Настраиваем виртуальный хост
Если вы используете Apache, добавьте новый конфиг в /etc/apache2/sites-available/matomo.conf.
<VirtualHost *:80>
ServerName analytics.yoursite.ru
DocumentRoot /var/www/matomo
<Directory /var/www/matomo>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/matomo_error.log
CustomLog ${APACHE_LOG_DIR}/matomo_access.log combined
</VirtualHost>
Далее активируйте сайт и перезапустите Apache.
Настраиваем HTTPS
Используем бесплатный сертификат Let’s Encrypt через certbot.
sudo apt install certbot python3-certbot-apache
sudo certbot --apache -d analytics.yoursite.ru
Сертификат обновляется автоматически, так что можно просто добавить задачу в cron.
Создание базы данных и пользователя MySQL
Matomo хранит всё — от данных о визитах до настроек отчетов — в базе данных MySQL или MariaDB. Для чистоты и безопасности лучше создать отдельную базу и пользователя только под Matomo.
CREATE DATABASE matomo CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'matomo_user'@'localhost' IDENTIFIED BY 'сложный_пароль';
GRANT ALL PRIVILEGES ON matomo.* TO 'matomo_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Совет: не используйте root-пользователя в установке Matomo — это распространенная ошибка новичков.
И да, пароль должен быть не 1234, а что-то вроде Y$k2#qpR9nA3.
Настройка прав доступа к директории Matomo
Система должна иметь доступ для чтения и записи к директории /var/www/matomo. Это важно, чтобы Matomo мог сохранять кеш, загружать плагины и обновления.
Создаем директорию и настраиваем права:
sudo mkdir -p /var/www/matomo
sudo chown -R www-data:www-data /var/www/matomo
sudo chmod -R 755 /var/www/matomo
Подготовка FTP или SSH-доступа
Для загрузки файлов Matomo на сервер есть два варианта: FTP (для shared-хостинга) или SSH (для VPS / выделенного сервера).
Вариант 1. FTP
- Подключитесь через FileZilla или другой клиент.
- Перейдите в директорию
/var/www/matomo(или/public_html/matomo— в зависимости от хостинга). - Загрузите архив Matomo, распакуйте его прямо в корне каталога.
Вариант 2. SSH (рекомендуется)
Если у вас есть SSH-доступ, установка будет быстрее и безопаснее:
cd /var/www
wget https://builds.matomo.org/matomo.zip
unzip matomo.zip
rm matomo.zip
chown -R www-data:www-data matomo
Установка и первоначальная настройка Matomo
Когда сервер готов, домен работает, а база данных создана, самое время запустить установку. Всё предельно просто: загрузить файлы, открыть установщик и пройти мастера за 5–10 минут. Дальше Matomo всё сделает сам.
Официальный способ установки — скачать актуальную сборку Matomo с сайта:
Залейте ее на сервер в директорию файлов сайта на домене.
Мастер установки Matomo
Теперь можно перейти к самому приятному — установке через веб-интерфейс. Откройте в браузере: https://analytics.yoursite.ru.
Вы попадете на экран приветствия мастера установки Matomo. Интерфейс сам проверит окружение и проведет вас по шагам.
Проверка окружения
Matomo проверит:
- версию PHP и наличие необходимых расширений;
- доступ к базе данных;
- права на запись в папки
tmp/,config/иplugins/.
Если всё зеленое — отлично. Если что-то красное, рядом будет подсказка (например, Missing extension mbstring или Config directory not writable).
Подключение базы данных
В этом шаге вводим данные, которые вы создали ранее:
- Server: localhost
- Login: matomo_user
- Password: ваш пароль
- Database name: matomo
- Table prefix: можно оставить matomo_
После успешного подключения Matomo создаст таблицы и выведет сообщение об успехе.
Создание администратора
Теперь создаем учетную запись для входа в панель Matomo:
- Username: admin
- Password: (надежный!)
- Email: ваш рабочий адрес
- Newsletter: можно отключить, если не хотите рассылку
Настройка первого сайта
Matomo спросит, какие данные отслеживать:
- Website name: например, Мой сайт
- Website URL: https://yoursite.ru
- Timezone: Europe/Moscow
- Ecommerce: включите, если планируете отслеживать покупки
Генерация JS-кода отслеживания
Matomo создаст уникальный JavaScript-код для отслеживания визитов.
<!-- Matomo -->
<script>
var _paq = window._paq = window._paq || [];
_paq.push(['trackPageView']);
_paq.push(['enableLinkTracking']);
(function() {
var u="https://analytics.yoursite.ru/";
_paq.push(['setTrackerUrl', u+'matomo.php']);
_paq.push(['setSiteId', '1']);
var d=document, g=d.createElement('script'), s=d.getElementsByTagName('script')[0];
g.async=true; g.src=u+'matomo.js'; s.parentNode.insertBefore(g,s);
})();
</script>
<!-- End Matomo Code -->
Этот код нужно вставить перед тегом </head> на всех страницах сайта (или добавить через Matomo Tag Manager — об этом дальше).
Проверка работы Matomo
После завершения установки вы попадете на экран входа в панель управления:
https://analytics.yoursite.ru/index.php
Введите логин и пароль администратора. Если всё прошло успешно, откроется дашборд Matomo — с первыми пустыми отчетами и интерфейсом, похожим на Google Analytics.
Расчет нагрузки на сервер
Matomo — мощная аналитическая система, но, как и любая self-hosted платформа, она ест ресурсы. Чем больше у вас сайтов, трафика и включенных модулей, тем важнее понимать, какую нагрузку создает Matomo и как ее оптимизировать.
Факторы, влияющие на нагрузку
Перед тем как настраивать оптимизацию, разберемся, откуда вообще берется нагрузка.
Количество хитов в сутки
- Основной показатель — количество хитов (hits), то есть действий, которые Matomo записывает: просмотры страниц, события, транзакции и т. д.
- Чем больше хитов, тем выше нагрузка на PHP, MySQL и диск.
Пример:
- Малый сайт с 10 000 хитов/сутки — нагрузка минимальна, хватает 1 ГБ RAM.
- Средний сайт с 100 000 хитов/сутки — потребуется 2–4 ГБ RAM.
- Крупный проект с 1 млн+ хитов/сутки — лучше сразу планировать выделенный сервер или масштабируемый VPS.
Количество трекаемых сайтов
Matomo умеет собирать статистику сразу по нескольким доменам или клиентам. Каждый сайт добавляет:
- отдельные таблицы в базе данных (например,
matomo_log_visit,matomo_log_link_visit_actionи др.); - отдельные задачи архивации и обработки.
Если у вас, например, 10 сайтов, то cron-задачи будут выполняться в 10 раз дольше.
Частота отчетов и задач cron
Matomo использует фоновую задачу core:archive, которая:
- пересчитывает отчеты (по дням, неделям, месяцам);
- обновляет сегменты и дашборды;
- чистит старые логи.
По умолчанию cron запускается каждые час-два, но, если трафик большой, задача может висеть в процессе дольше, чем выполняется следующий запуск.
Активные плагины
Каждый установленный плагин — это дополнительные SQL-запросы и операции при каждом хите и при архивации. Особенно ресурсоемкие:
- Matomo Tag Manager — добавляет обработку событий в реальном времени.
- Heatmap & Session Recording — сохраняет большое количество мелких данных.
- Funnels, A/B Testing — требуют сложных агрегаций при отчетах.
Расчет примерной нагрузки
Чтобы ориентироваться, можно использовать приблизительную оценку зависимости нагрузки от трафика и плагинов:
Важно: на размер базы влияет не только количество хитов, но и длительность хранения логов (по умолчанию 180 дней).
Как оценить нагрузку при росте трафика
- Снимать метрики: использовать
htopилиtopдля мониторинга CPU и памяти. - Анализировать MySQL: через
SHOW PROCESSLIST; или Matomo System Check. - Мониторить cron-задачи: если архивирование занимает >60% времени между запусками — пора масштабироваться.
- Проверить рост таблиц:
SELECT table_name, ROUND(data_length/1024/1024, 2) AS size_mb
FROM information_schema.tables
WHERE table_schema = 'matomo';
Это поможет понять, какие таблицы «раздуваются» быстрее всего.
Оптимизация производительности
Теперь разберемся, как держать Matomo «в форме».
Настройка cron для архивации
Matomo не должен пересчитывать отчеты «на лету». Создайте задачу cron для регулярной архивации:
sudo -u www-data /usr/bin/php /var/www/matomo/console core:archive --url=https://your-domain.ru > /var/log/matomo-archive.log
Рекомендуемый интервал: каждые 1–2 часа. Так отчеты будут всегда готовы, а пользователи не будут ждать пересчета при открытии панели.
Использование Redis или Memcached
- Redis помогает кешировать часто используемые запросы и сессии пользователей.
- Настраивается в файле
config/config.ini.php:
[Cache]
backend = redis
host = 127.0.0.1
port = 6379
Настройка автопрокачки базы (rotate logs, cleanup)
Со временем таблицы логов (matomo_log_visit, matomo_log_link_visit_action) разрастаются. Используйте встроенные команды очистки:
php console core:run-scheduled-tasks
или настройте политику в разделе Privacy → Data Retention. Обычно достаточно хранить данные за последние 6–12 месяцев.
Кеширование на уровне веб-сервера
- Для Apache включить
mod_expiresиmod_deflate. - Для Nginx добавить:
location ~* .(?:css|js|png|jpg|jpeg|gif|ico)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
Можно добавить Cloudflare или другой CDN для отдачи статики.
Заключение
Теперь, когда аналитика запущена, самое время перейти от инфраструктуры к данным и действиям. Следующий шаг — научить Matomo понимать, что важно именно для вашего бизнеса.
Вот что можно (и нужно) сделать:
- Настроить цели (Goals) — регистрации, покупки, клики по кнопкам.
- Добавить e-commerce трекинг, чтобы видеть выручку, средний чек и конверсии.
- Включить Enhanced e-commerce, если у вас интернет-магазин.
- Подключить события (Events) через Matomo Tag Manager, чтобы отслеживать клики, скроллы и взаимодействия с формами.
- Для продвинутых — интегрировать Custom Dimensions и User ID, чтобы строить отчеты по сегментам и типам пользователей.
В следующих статьях это и продолжим разбирать.