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

Piwik — установка на Ubuntu 15.10 с Nginx и PHP‑FPM

• 7 min read • DevOps • Обновлено 23 Nov 2025
Piwik на Ubuntu 15.10 с Nginx и PHP‑FPM
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\

Создание базы данных Piwik.

Пояснение: создаваемый пользователь ограничивается 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.

Добро пожаловать в Piwik

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

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

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

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

Таблицы Piwik созданы успешно.

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

Конфигурация администратора Piwik.

Добавление первого сайта в Piwik.

JS-код отслеживания.

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

Вход в Piwik.

Дашборд Piwik.

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

  • Домен возвращает стартовую страницу Piwik и блок “Welcome” виден.
  • На странице “System Check” все критические проверки зелёные.
  • Piwik подключился к базе данных и создал таблицы.
  • Директории tmp/ и config/ доступны для www-data.
  • JS‑код отслеживания успешно фиксирует посещения (проверить в режиме реального времени).

Роль‑ориентированные чек‑листы

Администратор сервера:

  • Убедиться, что сервер обновлён и бэкапы работают.
  • Настроить firewall (ufw/iptables) и закрыть лишние порты.

Dev/Ops:

  • Проверить nginx -t и логи ошибок.
  • Настроить лог‑ротацию для /var/log/nginx/*.
  • Настроить мониторинг (CPU, память, дисковый ввод/вывод).

Разработчик/веб‑мастер:

  • Вставить JS‑трекер на тестовый сайт.
  • Проверить, что данные приходят в режиме реального времени.

Мини‑методология тестирования установки

  1. Тестовая страница: вставьте трекер на простую HTML‑страницу.
  2. Откройте страницу в приватном режиме; проверьте реальное время в Piwik.
  3. Проверьте логи Nginx и php-fpm при ошибках (обычно /var/log/nginx/error.log и /var/log/php5-fpm.log).
  4. Запустите 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 на поддерживаемую версию.

Полезные ссылки

Конец руководства.

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