Настройка GeoIP (PECL) при помощи Piwik на сервере Ubuntu 12.04

Published by Leave your thoughts

Piwik позволяет выяснить страну пользователя на основе языка, который он использует. Несомненно, это не самый надежный и подходящий способ определить местонахождение пользователей. К примеру, пользователь, находящийся в Испании, может работать на компьютере, который по умолчанию использует английский (EN-US). Поскольку Piwik определяет страну посетителя сайта, исходя из использованного языка, такой пользователь будет определён как посетитель из США.

База данных GeoIP позволяет определить местонахождение пользователя на основе его IP-адреса. Репозиторий модулей PECL (PHP Extension Community Library) предоставляет гораздо более быстрое решение, чем MaxMind, поскольку не требует загружать БД каждый раз.

Требования

Для выполнения руководства нужно иметь пользователя с привилегиями root (подробнее – в этом руководстве). Кроме того, нужно предварительно установить и настроить Piwik в root-каталоге Apache (/var/www/piwik). Подробные инструкции по установке Piwik можно найти здесь.

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

Для начала нужно установить build-essential; этот пакет содержит список пакетов, которые считаются необходимыми для сборки программ Debian:

sudo apt-get install build-essential

Затем нужно установить PEAR при помощи менеджера пакетов apt-get:

sudo apt-get install php-pear

Далее нужно установить пакет php5-dev, чтобы получить исходные файлы PHP5, необходимые для компиляции модулей:

sudo apt-get install php5-dev

2: Установка GeoIp

Запустите следующую команду:

sudo apt-get install php5-geoip php5-dev libgeoip-dev

Чтобы установить geoip, используйте:

sudo pecl install geoip

3: Настройка PHP

После завершения установки, скорее всего появится сообщение вроде «extension= line cannot be found in your php.ini file». Чтобы устранить ошибку, нужно просто открыть php.ini и добавить недостающие строки.

sudo nano /etc/php5/apache2/php.ini

Добавьте в раздел [PHP] строку extension=geoip.so

[PHP]
;AFTER THE PHP SECTION NOT BEFORE
extension=geoip.so

Затем нужно добавить строку «geoip.custom_directory=/path/to/piwik/misc» в раздел [gd]:

[gd]
;AFTER THE gd SECTION NOT BEFORE
geoip.custom_directory=/var/www/piwik/misc

4: Создание базы данных GeoIP

Загрузите и распакуйте базу данных GeoIP:

cd /var/www/piwik/misc
sudo wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
sudo gunzip GeoLiteCity.dat.gz

Расширение PECL не узнает базу данных, если она называется GeoLiteCity.dat; чтобы PECL распознал БД, нужно переименовать её в GeoIPCity.dat:

sudo mv GeoLiteCity.dat GeoIPCity.dat

Перезапустите веб-сервер Apache:

sudo service apache2 restart

5: Настройка Piwik для использования GeoIP PECL

В браузере войдите на страницу Piwik, откройте настройки, затем Geolocation, и выберите GeoIP (PECL) в качестве Location Provider.

6: Обновление базы данных GeoIP (опционально)

Чтобы повторно распознать отслеженные ранее посещения, введите:

cd /var/www/piwik/misc/others
sudo php geoipUpdateRows.php

Этот процесс займёт немало времени (это зависит от количества посещений, которое нужно обработать).

1 rows to process in piwik_log_visit and piwik_log_conversion...
0% done...
100% done!

Обратите внимание: база данных GeoLite обновляется в первый вторник каждого месяца. Рекомендуется своевременно обновлять БД GeoIP, так как провайдеры очень часто перераспределяют диапазоны IP-адресов.

Tags: , , , , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>