Статистика для сайта с пакетом 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 в директории /etc,/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/GeoLiteCountry/GeoIP.dat.gz http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz

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

gunzip *.gz

Далее создаем папку 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
Статистика для сайта с пакетом AWStats на Ubuntu 16.04
Пожалуйста оцените эту статью

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

  1. pro-gramАвтор 2016-12-23
  2. Человек-Пароход 2016-12-20

Оставить комментарий

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

Меню
Рейтинг@Mail.ru