Piwik — установка на Ubuntu 15.10 с Nginx и PHP‑FPM
- Кратко: пошаговый гид по установке Piwik на Ubuntu 15.10 с Nginx и PHP 5.6 (php-fpm) и базой данных MariaDB. Включены настройка Nginx, пулов php-fpm, создание базы данных, установка зависимостей и базовая отладка.
- Результат: рабочая инстанция Piwik, доступная по домену, с правами www-data, настроенной быстрой обработкой PHP через unix-сокет и включённым кэшем FastCGI.
Введение
Piwik — это открытое приложение для веб-аналитики. Оно даёт контроль над данными и функции защиты приватности посетителей. Piwik собирает статистику по просмотрам страниц, местоположению посетителей, браузерам и ОС. В этом руководстве объяснены действия для установки Piwik на Ubuntu 15.10 с Nginx и PHP 5.6 (php-fpm). В качестве СУБД используем MariaDB.
Короткие определения
- Piwik: платформа веб‑аналитики с открытым исходным кодом.
- PHP‑FPM: менеджер процессов PHP для обработки запросов через FastCGI.
- MariaDB: форк MySQL, совместимая реляционная база данных.
Важное замечание
Ubuntu 15.10 вышла из поддержки. Для боевого сервера рекомендуется использовать поддерживаемую LTS‑версию (например, Ubuntu 18.04/20.04/22.04) или планировать миграцию. Инструкции ниже применимы к Ubuntu 15.10, но большинство шагов аналогичны и для других версий с учётом различий в пакетах и путях.
Предпосылки
- Ubuntu 15.10 — 64‑бит.
- Права root (sudo).
- Доменное имя, указывающее на сервер (рекомендуется для корректной работы реферера и сертификатов).
Шаг 1 — Установка Nginx и PHP‑FPM
Обновите список пакетов и переключитесь в root:
sudo su
apt-get updateУстановите Nginx (версия по умолчанию для Ubuntu 15.10 — 1.9):
apt-get install nginxПроверьте, что Nginx слушает порт 80:
netstat -plntu | grep 80Установите PHP‑FPM и необходимые модули для Piwik. Мы используем PHP 5.6 в режиме php-fpm:
apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-cli php5-geoipПроверьте версию PHP (cli):
php5 --versionЗапустите сервисы:
systemctl start php5-fpm
systemctl start nginxПояснение: php5-fpm обеспечивает обработку PHP через FastCGI. Модули php5-mysql и php5-geoip нужны Piwik для работы с БД и геолокацией.
Шаг 2 — Конфигурация Nginx и PHP‑FPM
В этом разделе мы настроим php.ini, пул php-fpm и виртуальный хост Nginx, а также включим базовый кэш FastCGI.
A. Конфигурация PHP‑FPM
Откройте php.ini в каталоге /etc/php5/fpm:
cd /etc/php5/fpm/
vim php.iniИзмените следующие параметры (расположение строк может отличаться по номерам):
cgi.fix_pathinfo=0И убедитесь, что always_populate_raw_post_data установлен как -1:
always_populate_raw_post_data = -1Сохраните файл и выйдите.
Почему это важно: cgi.fix_pathinfo=0 предотвращает уязвимости при обработке путей, а always_populate_raw_post_data=-1 отключает устаревшее поведение, которое может вызвать предупреждения в современных приложениях.
B. Конфигурация Nginx
Мы используем готовую конфигурацию Piwik из репозитория. Сначала создайте резервную копию текущего /etc/nginx и клонируйте конфигурацию:
mv /etc/nginx/ /etc/nginx-old/
git clone https://github.com/perusio/piwik-nginx.git /etc/nginxПерейдите в sites-available и переименуйте пример:
cd /etc/nginx/sites-available/
mv stats.example.com.conf stats.piwik.me.confОтредактируйте файл stats.piwik.me.conf и произведите локализацию параметров.
- Отключите IPv6‑listen, закомментировав строку:
#listen [fe80::202:b3ff:fe1e:8329]:80 ipv6only=on; - Пропишите server_name, например:
server_name www.stats.piwik.me;
return 301 $scheme://stats.piwik.me$request_uri;Во втором серверном блоке укажите:
#listen [fe80::202:b3ff:fe1e:8329]:80 ipv6only=on;
server_name stats.piwik.me;
access_log /var/log/nginx/stats.piwik.me_access.log;
error_log /var/log/nginx/stats.example.com_error.log;
root /var/www/piwik;Сохраните и закройте файл.
Далее настройте файл приложения Piwik:
cd /etc/nginx/apps/piwik/
vim piwik.confОпределите допустимых рефереров (valid_referers):
valid_referers none blocked *.piwik.me piwik.me;Отключите прокси‑кеш, если он не нужен:
#include apps/piwik/proxy_piwik_cache.conf;Сохраните изменения.
Настройте upstream для php-fpm, чтобы он использовал unix‑сокет (быстрее, чем TCP):
cd /etc/nginx/
vim upstream_phpcgi.confУстановите строку сервера на стандартный путь сокета:
server unix:/var/run/php5-fpm.sock;Проверьте сокеты:
netstat --unix -lСоздайте каталог для кеша FastCGI и назначьте владельца www-data:
mkdir -p /var/cache/nginx/fcgicache
chown -R www-data:www-data /var/cache/nginx/
chown -R www-data:www-data /var/cache/nginx/fcgicacheАктивируйте виртуальный хост, создав sites-enabled и символическую ссылку:
cd /etc/nginx/
mkdir sites-enabled/
ln -s /etc/nginx/sites-available/stats.piwik.me.conf /etc/nginx/sites-enabled/Перезапустите Nginx и php-fpm после изменений.
Важно: внимательно проверьте синтаксис конфигураций перед перезапуском:
nginx -tШаг 3 — Установка и настройка MariaDB
Установите сервер MariaDB и клиент из репозитория Ubuntu:
apt-get install mariadb-server mariadb-clientЗапустите скрипт безопасности для задания пароля root и удаления тестовых учётных записей:
mysql_secure_installationСледуйте подсказкам (установите пароль root, удалите анонимных пользователей, запретите удалённый вход root, удалите тестовую БД и перезагрузите таблицы привилегий).
Подключитесь к MySQL от root:
mysql -u root -pСоздайте базу данных и пользователя для Piwik (замените пароли на безопасные):
create database piwikdb;
create user piwikuser@localhost identified by 'piwikuser@';
grant all privileges on piwikdb.* to piwikuser@localhost identified by 'piwikuser@';
flush privileges;
q\
Пояснение: создаваемый пользователь ограничивается localhost. Для удалённого доступа настройте привилегии и брандмауэр с осторожностью.
Шаг 4 — Установка Piwik
Разместим Piwik в /var/www/:
cd /var/www/
wget https://github.com/piwik/piwik/archive/master.zip
unzip master.zipПереименуем и назначим владельца:
mv piwik-master/ piwik/
chown -R www-data:www-data piwik/Установим composer и зависимости Piwik:
cd /var/www/piwik/
curl -sS https://getcomposer.org/installer | php
php composer.phar install --no-devПерезапустите Nginx и php-fpm:
systemctl restart nginx
systemctl restart php5-fpmУбедитесь, что каталоги tmp/ и config/ доступны для записи пользователем www-data:
chown -R www-data:www-data tmp/ config/Откройте в браузере домен Piwik (пример: http://stats.piwik.me). Вы увидите приветственный экран Piwik.

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

Далее укажите параметры БД, которые вы создали ранее. В адаптере выберите MYSQLI.

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

Создайте администратора, настройте первое отслеживаемое веб‑сайт и получите JS‑код для вставки в страницы.



Поздравляем — Piwik установлен и готов к сбору данных.


Критерии приёмки
- Домен возвращает стартовую страницу Piwik и блок “Welcome” виден.
- На странице “System Check” все критические проверки зелёные.
- Piwik подключился к базе данных и создал таблицы.
- Директории tmp/ и config/ доступны для www-data.
- JS‑код отслеживания успешно фиксирует посещения (проверить в режиме реального времени).
Роль‑ориентированные чек‑листы
Администратор сервера:
- Убедиться, что сервер обновлён и бэкапы работают.
- Настроить firewall (ufw/iptables) и закрыть лишние порты.
Dev/Ops:
- Проверить nginx -t и логи ошибок.
- Настроить лог‑ротацию для /var/log/nginx/*.
- Настроить мониторинг (CPU, память, дисковый ввод/вывод).
Разработчик/веб‑мастер:
- Вставить JS‑трекер на тестовый сайт.
- Проверить, что данные приходят в режиме реального времени.
Мини‑методология тестирования установки
- Тестовая страница: вставьте трекер на простую HTML‑страницу.
- Откройте страницу в приватном режиме; проверьте реальное время в Piwik.
- Проверьте логи Nginx и php-fpm при ошибках (обычно /var/log/nginx/error.log и /var/log/php5-fpm.log).
- Запустите mysql -u piwikuser -p и убедитесь, что таблицы созданы: SHOW TABLES IN piwikdb;
Безопасность и hardening
- SSL: используйте Let’s Encrypt для HTTPS (рекомендуется).
- Ограничьте доступ к phpmyadmin (если установлен) по IP.
- Регулярно обновляйте систему и PHP.
- Защитите сокет php5-fpm (права и владелец).
- Отключите удалённый вход root в MariaDB.
Пример быстрой настройки HTTPS с certbot (для современных версий Ubuntu):
apt-get install certbot python-certbot-nginx
certbot --nginx -d stats.piwik.me -d www.stats.piwik.me(Для Ubuntu 15.10 пакеты могут отличаться; проверяйте совместимость.)
Резервное копирование и обновление
- Бэкап БД: используйте mysqldump:
mysqldump -u root -p piwikdb > /root/backups/piwikdb-$(date +%F).sql - Бэкап файлов Piwik: архивируйте /var/www/piwik и config/config.ini.php.
- Перед обновлением Piwik создайте резервные копии базы и файлов.
Точки отказа и устранение неполадок
Ситуация: “Пустые показатели, Piwik не фиксирует посещения”
Проверки:
- Убедитесь, что JS‑код установлен на странице.
- Проверьте, чтонет блокировщиков контента (AdBlock) на тестовом браузере.
- В логах Nginx проверьте ошибки 4xx/5xx.
- Убедитесь, что директории tmp/ и tmp/assets доступны для записи.
Ситуация: “502 Bad Gateway” при обращении к PHP
Проверки:
- Запущен ли php5-fpm? systemctl status php5-fpm.
- Соответствует ли путь сокета в upstream_phpcgi.conf фактическому пути /var/run/php5-fpm.sock.
- Проверить права доступа к сокету: ls -l /var/run/php5-fpm.sock.
Ситуация: “Проблемы с GeoIP”
Проверки:
- Установлен ли php5-geoip и настроен ли файл баз GeoIP.
- Проверьте логи Piwik на предмет предупреждений о GeoIP.
Альтернативы и сценарии, когда это не подходит
- Если вам нужна современная, активно поддерживаемая версия, рассмотрите Matomo (бренд Piwik был переименован).
- Для лёгкой интеграции с Docker удобнее развернуть Piwik/Matomo в контейнере.
- Для больших нагрузок используйте отдельный сервер БД и оптимизируйте индексы.
Совместимость и миграции
- Путь миграции на более новые версии Ubuntu: перенос данных (дамп БД + файлы) и развертывание Piwik на новой ОС с теми же версиями PHP/MariaDB или выше.
- При переходе на PHP7 проверьте совместимость плагинов.
Краткая проверка перед вводом в эксплуатацию
- Наличие HTTPS и редиректа с HTTP на HTTPS.
- Оповещения о превышении диска, RAM или CPU.
- Рабочие бэкапы: тест восстановления DB из последнего бэкапа.
Короткий список команд (cheat sheet)
- Обновить систему: apt-get update && apt-get upgrade
- Проверить nginx: nginx -t
- Перезапустить службы: systemctl restart nginx && systemctl restart php5-fpm
- Показать сокеты: netstat –unix -l
- Бэкап БД: mysqldump -u root -p piwikdb > /root/piwikdb.sql
Краткое резюме
Piwik даёт гибкую и приватную альтернативу внешним сервисам аналитики. Установка на Ubuntu 15.10 с Nginx и php‑fpm состоит из четырёх основных шагов: подготовка окружения, настройка php‑fpm и Nginx, установка MariaDB и создание базы, загрузка Piwik и финальная настройка. После установки важно настроить HTTPS, регулярные бэкапы и мониторинг.
Важное
- Используйте сильные пароли для MariaDB и пользователя Piwik.
- Планируйте миграцию с Ubuntu 15.10 на поддерживаемую версию.
Полезные ссылки
- Официальный репозиторий Piwik: https://github.com/piwik/piwik
- Репозиторий конфигураций Nginx для Piwik: https://github.com/perusio/piwik-nginx
Конец руководства.
Похожие материалы
Несколько аккаунтов Skype: Multi Skype Launcher
Журнал для работы: повысить продуктивность
Персональные звуки уведомлений на Android
Скачивание шоу Hulu для офлайн‑просмотра
Microsoft Start: персонализированная новостная лента