Статистика сайта · 5 min read · Nov 26, 2025
Генерация статистики веб-сайта с помощью AWStats и JAWStats на Debian Lenny
Генерация статистики веб-сайта с помощью AWStats и JAWStats на Debian Lenny
Версия 1.0
Автор: Фалько Тимме
Следите за мной в Twitter
Этот учебник объясняет, как вы можете генерировать статистику для вашего веб-сайта с помощью AWStats и JAWStats на веб-сервере Debian Lenny. AWStats — это бесплатный мощный и многофункциональный инструмент, который генерирует расширенную статистику веб-сервера. JAWStats работает в сочетании с AWStats и создает четкие и информативные диаграммы, графики и таблицы о ваших посетителях веб-сайта. AWStats может создавать графические веб-страницы для статистики, но JAWStats представляет эти данные гораздо более приятным образом — они лучше организованы и используют Ajax и Flash.
Я не даю никаких гарантий, что это сработает для вас!
1 Предварительная заметка
В этом учебнике у меня есть веб-сайт www.example.com (с псевдонимами example.com, www.example.net и example.net) с корнем документа /var/www/www.example.com/web.
2 Установка и настройка AWStats
AWStats можно установить следующим образом:
aptitude install awstatsЕго конфигурация находится в директории /etc/awstats/. Для каждого виртуального хоста нам нужен файл конфигурации с именем awstats.
cd /etc/awstats/
cp awstats.conf awstats.www.example.com.conf
vi awstats.www.example.com.conf
Измените следующие настройки:
| [...] LogFile="/var/log/apache2/access.log" [...] LogFormat=1 [...] SiteDomain="www.example.com" [...] HostAliases="example.com www.example.net example.net" [...] |
LogFile должен содержать путь к журналу доступа Apache вашего виртуального хоста или общий журнал доступа Apache (тот, который для всех сайтов; AWStats может фильтровать записи, которые не принадлежат вашему веб-сайту). Если у вас есть динамическое имя файла (например, потому что оно содержит дату, например, потому что ваш журнал доступа создается cronolog или vlogger), вы можете использовать заполнители, например, так:
LogFile="/var/log/httpd/access.log_%YYYY-0_%MM-0_%DD-0"Это объясняется в комментариях в файле конфигурации AWStats следующим образом:
“LogFile” содержит журнал веб-, ftp- или почтового сервера для анализа.
Возможные значения: полный путь или относительный путь из директории awstats.pl.
Пример: “/var/log/apache/access.log”
Пример: “../logs/mycombinedlog.log”
Вы также можете использовать теги в этом имени файла, если вам нужно динамическое имя файла в зависимости от даты или времени (замена производится AWStats в начале его выполнения).
Эти доступные теги:
%YYYY-n заменяется на 4 цифры года, который был n часов назад
%YY-n заменяется на 2 цифры года, который был n часов назад
%MM-n заменяется на 2 цифры месяца, который был n часов назад
%MO-n заменяется на 3 буквы месяца, который был n часов назад
%DD-n заменяется на день, который был n часов назад
%HH-n заменяется на час, который был n часов назад
%NS-n заменяется на количество секунд в 00:00 с 1970
%WM-n заменяется на номер недели в месяце (1-5)
%Wm-n заменяется на номер недели в месяце (0-4)
%WY-n заменяется на номер недели в году (01-52)
%Wy-n заменяется на номер недели в году (00-51)
%DW-n заменяется на номер дня в неделе (1-7, 1=воскресенье)
используйте n=24, если вам нужно (1-7, 1=понедельник)
%Dw-n заменяется на номер дня в неделе (0-6, 0=воскресенье)
используйте n=24, если вам нужно (0-6, 0=понедельник)
Используйте 0 для n, если вам нужен текущий год, месяц, день, час…
Пример: “/var/log/access_log.%YYYY-0%MM-0%DD-0.log”
Пример: “C:/WINNT/system32/LogFiles/W3SVC1/ex%YY-24%MM-24%DD-24.log”
Вы также можете использовать конвейер, если файл журнала поступает из конвейера:
Пример: “gzip -d Если есть несколько файлов журналов от серверов балансировки нагрузки:
Пример: “/pathtotools/logresolvemerge.pl *.log |”
Вы, вероятно, используете комбинированный формат журнала Apache, поэтому вам следует использовать LogFormat=1 (снова посмотрите на комментарии в файле, чтобы узнать правильный формат, но в большинстве случаев вы используете комбинированный формат журнала Apache).
SiteDomain: Укажите основной домен вашего веб-сайта ( www.example.com в этом случае).
HostAliases: Укажите все другие домены/поддомены, используемые для доступа к вашему веб-сайту ( example.com, www.example.net, example.net в этом примере).
Далее мы создаем задание cron для запуска AWStats каждые девять минут:
crontab -e | 9,19,29,39,49,59 * * * * /usr/lib/cgi-bin/awstats.pl -config=www.example.com -update >/dev/null |
(Если у вас есть динамический журнал доступа, как созданный cronolog или vlogger, хорошей идеей будет включить минуту 59 в задание cron, чтобы AWStats мог обработать текущий журнал доступа в 23:59h перед тем, как новый журнал доступа будет создан в 0:00h — таким образом, вы просто теряете минуту между 23:59h и 0:00h в вашей статистике.)
3 Установка и настройка JAWStats
Перейдите на http://www.jawstats.com/download, загрузите последнюю версию JAWStats, распакуйте ее на своем ПК и загрузите в директорию на вашем веб-сайте www.example.com, например, с помощью FTP. В этом учебнике я загружаю ее в директорию /var/www/www.example.com/web/jawstats.
После этого мы должны переименовать config.dist.php в config.php и изменить его:
mv /var/www/www.example.com/web/jawstats/config.dist.php /var/www/www.example.com/web/jawstats/config.php
vi /var/www/www.example.com/web/jawstats/config.php
| "/var/lib/awstats/", "updatepath" => "/usr/lib/cgi-bin/", "siteurl" => "http://www.example.com", "sitename" => "Мой веб-сайт Example.com", "theme" => "default", "fadespeed" => 250, "password" => "secret", "includes" => "", "language" => "en-gb" ); ?> |
Если вы хотите удалить ссылку “изменить сайт”, измените $bConfigChangeSites на false.
Если вы не хотите, чтобы ваши пользователи могли обновлять статистику самостоятельно, установите $bConfigUpdateSites на false.
После этого у нас есть массив $aConfig[“site1”] — переименуйте его так, чтобы он назывался в честь вашего сайта ( $aConfig[“www.example.com”]). Установите statspath на /var/lib/awstats/ (не забудьте о завершающем слэше!), updatepath на /usr/lib/cgi-bin/, siteurl на http://www.example.com и укажите имя вашего веб-сайта в поле sitename. Пароль нужен только в том случае, если вы установили $bConfigUpdateSites на true (если вы позволяете вашим пользователям обновлять статистику через браузер, им придется ввести этот пароль).
Вот и все — после того, как задание cron AWStats выполнится в первый раз (что может занять много времени для веб-сайтов с большим трафиком, так что будьте терпеливы), вы можете получить доступ к вашей статистике по адресу http://www.example.com/jawstats.
Вот несколько скриншотов того, как это может выглядеть:




4 Защита директории вывода JAWStats паролем (по желанию)
Теперь хорошей идеей будет защитить директорию /var/www/www.example.com/web/jawstats паролем, если вы не хотите, чтобы все могли получить доступ к статистике вашего веб-сайта.
Для этого мы создаем файл .htaccess в /var/www/www.example.com/web/jawstats:
vi /var/www/www.example.com/web/jawstats/.htaccess| AuthType Basic AuthName "Только для участников" AuthUserFile /var/www/www.example.com/.htpasswd |
Затем мы должны создать файл паролей /var/www/www.example.com/.htpasswd. Мы хотим войти с именем пользователя admin, поэтому мы делаем это:
htpasswd -c /var/www/www.example.com/.htpasswd adminВведите пароль для admin, и вы готовы!
5 Ссылки
- AWStats: http://www.awstats.org/
- JAWStats: http://www.jawstats.com/
- Apache: http://httpd.apache.org/
- Debian: http://www.debian.org/
Get new posts in your inbox
No spam. Unsubscribe anytime.