Статистика для сайта с пакетом AWStats на Ubuntu 16.04

logo_awstats

В этой статье я опишу способ для установки пакета AWStats для сбора статистики для Ваших сайтов расположенных на ОС Ubuntu Server 16.04.

Для установки AWStats на Ubuntu Server 16.04 существует два способа. Первый способ, набираем в терминале команду:

sudo apt install awstats

Но при таком способе ставится старая версия программы (на сегодняшний день это 7.4) и ко всему этому же чтобы запустить данный пакет у меня например ушло уж очень много времени. Мы же пойдем способом номер два:

Установка и настройка awstats

С сайта разработчика скачиваем последний стабильный пакет AWStats 7.7:

wget https://sourceforge.net/projects/awstats/files/AWStats/7.7/awstats-7.7.tar.gz/download?use_mirror=netix&r=https%3A%2F%2Fsourceforge.net%2Fprojects%2Fawstats%2Ffiles%2FAWStats%2F7.7%2F&use_mirror=netix

Распакуем его и перейдем в распакованный каталог :

tar -xf awstats-7.7.tar.gz && cd awstats-7.7

Создадим каталог awstats в директории /usr/local:

sudo mkdir /usr/local/awstats

Далее копируем содержимое папки tools, а также папку wwwroot в директорию /usr/local/awstats и переходим в него:

sudo cp -R tools/* wwwroot/ /usr/local/awstats && cd /usr/local/awstats

Создадим папку awstats в директории /var/www/html, а также в директории /usr/lib/cgi-bin . Набираем следующую команду:

sudo mkdir /var/www/html/awstats /usr/lib/cgi-bin/awstats

Далее копируем папку с иконками в /var/www/html/awstats:

sudo cp -R wwwroot/icon /var/www/html/awstats

А содержимое папки cgi-bin в директорию /usr/lib/cgi-bin/awstats:

sudo cp -R wwwroot/cgi-bin/* /usr/lib/cgi-bin/awstats

Указываем пользователя и группу на папки:

chown -R www-data:www-data /var/www/html/awstats /usr/lib/cgi-bin/awstats

Далее запускаем конфигурационный скрипт:

./awstats_configure.pl

После запуска нужно будет ответить на пару вопросов. На нашем сервере имеем установленный web сервер apache и два сайта mysite1.ru и mysite2.ru

  1. Где расположен конфигурационный файл Apache, нужно указать полный путь в нашем случае: /etc/apache2/apache2.conf;
  2. Далее идет вопрос о создании нового конфигурационного файла AWStats: нажимаем Y;
  3. На третий вопрос указываем наш сайт или IP адрес: mysite1.ru;
  4. На четвертый вопрос можно нажать Enter, если конечно вы не хотите указать новую категорию для Ваших awstats.*.conf файлов;
  5. Далее нажимаем два раза Enter

Переходим в директорию /etc/awstats:

cd /etc/awstats

Следующим шагом создадим резервную копию нашем конфигурационного файла, а также уберём все пробелы и закомментированные строчки и откроем файл на редактирование:

sudo cp awstats.mysite1.ru.conf awstats.mysite1.ru.conf.bak && grep -v '^#' awstats.mysite1.ru.conf.bak | sed '/^$/d' > awstats.mysite1.ru.conf && sudo nano awstats.mysite1.ru.conf

Приведем несколько пунктов в соответствии с моим листингом:

LogFile="/usr/local/awstats/logresolvemerge.pl /var/log/apache2/access.log* |"
DirData="/var/www/html/awstats"
AllowToUpdateStatsFromBrowser=1
Lang="ru"

Так как Apache создает множество лог файлов, то пункт LogFile настроим как у меня в примере.
В пункте DirData нужно указать папку где будет расположена статистика (В Apache это папка по умолчанию /var/www/html)
Третий пункт нужен что бы в статистике появилась ссылка на автоматическое обновление.
В последнем пункте указываем язык для отображения на странице статистики.

Если у Вас несколько сайтов то делаем так:

sudo cp awstats.mysite1.ru.conf awstats.mysite2.ru.conf

А также меняем еще два пункта:

SiteDomain="mysite2.ru"
HostAliases="mysite2.ru www.mysite2.ru 127.0.0.1 localhost"

Запускаем скрипт для формирования статистики:

sudo /usr/local/awstats/wwwroot/cgi-bin/awstats.pl -update -config=mysite1.ru

или

sudo /usr/lib/cgi-bin/awstats/awstats.pl -update -config=mysite1.ru

Настройка Apache

Теперь включим поддержку CGI в Apache

sudo a2enmod cgi

А также поправим в файле apache2.conf параметр ScriptAlias:

sudo nano /etc/apache2/apache2.conf
ScriptAlias /awstats/ /usr/lib/cgi-bin/awstats/

Перезагрузим сервер Apache

sudo service apache2 restart

Внимание!
Если сервер работает во внешней сети, то разрешение запуска CGI-скриптов, а тем более размещение их в корневой директории виртуального хоста является небезопасным.
(для повышения безопасности) в папке /usr/lib/cgi-bin/awstats на веб-сервере может быть добавлен файл .htaccess вида

<FilesMatch "awstats.pl">
 AuthName "Login Required"
 AuthType Basic
 AuthUserFile /var/www/html/awstats/.htpasswd
 require valid-user
</FilesMatch>

а для создания .htpasswd может быть использована команда

sudo htpasswd -c /var/www/html/awstats/.htpasswd username

-c — параметр каждый раз обновляет файл (если хотите завести несколько пользователей то надо убрать -с )

Добавим так же следующий листинг в файл конфигурации нашего домена в Apache:

sudo nano /etc/apache2/sites-available/mysite1.ru.conf
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
    AllowOverride All
</Directory>

Смотрим статистику

Набираем в браузере:

mysite1.ru/cgi-bin/awstats/awstats.pl?config=mysite1.ru

Настройка cron для AWStats

Если необходимо периодически парсить логи Apache, добавляя статистические данные для AWStats. Для этого воспользуемся планировщиком cron:

sudo nano /etc/crontab

и добавим строчку

*/30 * * * * root /etc/awstats/mysites

Создадим скрипт в директории /etc/awstats/ и зададим права:

sudo touch /etc/awstats/mysites && chown root:root /etc/awstats/mysites && chmod 755 /etc/awstats/mysites

Откроем на редактирование:

sudo nano /etc/awstats/mysites

И добавим такие строки:

/usr/bin/perl /usr/lib/cgi-bin/awstats/awstats.pl -update -config=mysite1.ru

статистика будет обновляться 2 раза в час, например в 13:00, 13:30, 14:00 и т.д.

Устанавливаем плагин GeoIP

Скачиваем бинарники с офф.сайта разработчика.

wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-City-CSV.zip

wget http://geolite.maxmind.com/download/geoip/database/GeoLite2-Country-CSV.zip

Распаковываем:

unzip *.zip

Далее создаем папку GeoIP в директории /usr/local/awstats:

sudo mkdir /usr/local/awstats/GeoIP

и переносим туда наши распакованные бинарники:

sudo mv *.dat /usr/local/awstats/GeoIP

Также надо внести в конфигурационный файл сайта две строчки:

sudo nano /etc/awstats/awstats.mysite1.ru.conf

Добавляем:

LoadPlugin="geoip GEOIP_STANDARD /usr/local/awstats/GeoIP/GeoIP.dat"
LoadPlugin="geoip_city_maxmind GEOIP_STANDARD /usr/local/awstats/GeoIP/GeoLiteCity.dat"

Так же можно добавить еще несколько плагинов для наглядности

LoadPlugin="userinfo"
LoadPlugin="hostinfo"
LoadPlugin="graphgooglechartapi"

Устанавливается библиотека сопряжения с Perl:

sudo apt install libgeo-ip-perl
Если есть вопросы, то пишем в комментариях и не забываем проголосовать за статью.

Если вы нашли ошибку, пожалуйста, выделите фрагмент текста и нажмите Ctrl+Enter.

Статистика для сайта с пакетом AWStats на Ubuntu 16.04
Пожалуйста оцените эту статью

2 комментария

  1. pro-gramАвтор 23.12.2016
  2. Человек-Пароход 20.12.2016

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

Меню

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: