суббота, 18 декабря 2010 г.

Включение статистики Awstats в хостинг-панели ispCP

Если при установки хостинг-панели вы не указали активацию демона статистики Awstats и хотите активировать её сейчас, то вам нужно запастись терпения и приготовиться выполнять шаманские танцы с бубном.

И так, поехали!

Первым делом активируем awstats в конфигурационный файле ispCP выполнив следующие команды:

hosting:~# cat /etc/ispcp/ispcp.conf 

AWSTATS_ACTIVE = yes


# could be 'dynamic' = 0 or 'static' = 1
AWSTATS_MODE = 0


AWSTATS_CACHE_DIR = /var/cache/awstats


AWSTATS_CONFIG_DIR = /etc/awstats


AWSTATS_ENGINE_DIR = /usr/lib/cgi-bin


AWSTATS_WEB_DIR = /usr/share/awstats


AWSTATS_ROOT_DIR = /var/www/ispcp/engine/awstats


AWSTATS_GROUP_AUTH = statistics

Разкоментируем в cron'e  вторую строку в секции AWStats: 
hosting:~# nano /etc/cron.d/ispcp 
# AWStats
15      */6     *       *       *       root /var/www/ispcp/engine/awstats/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl >/dev/null 2>&1

# AWStats
   15      */6     *       *       *       root /var/www/ispcp/engine/awstats/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl >/dev/null 2>&1


Перезагрузим апач и увидем что из этого получиться:
hosting:~# /etc/init.d/apache2 restart
Restarting web server: apache2Syntax error on line 196 of /etc/apache2/sites-enabled/ispcp.conf:
Invalid command 'ProxyRequests', perhaps misspelled or defined by a module not included in the server configuration
 failed!

Ошибка из-за отсутствующего модуля. Открыв /etc/apache2/sites-enabled/ispcp.conf на 196 строке увидим секцию Proxy и отсутствующий модуль. Дабы исправить ошибку установим необходимые модули libapache2-mod-proxy-html:

hosting:~# apt-get install libapache2-mod-proxy-html
Чтение списков пакетов... Готово
Построение дерева зависимостей       
Чтение информации о состоянии... Готово
НОВЫЕ пакеты, которые будут установлены:
  libapache2-mod-proxy-html
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 0 пакетов не обновлено.
Необходимо скачать 25,4kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 143kB.
Получено:1 http://ftp.ua.debian.org lenny/main libapache2-mod-proxy-html 3.0.0-1 [25,4kB]
Получено 25,4kБ за 0s (28,2kБ/c)               
Выбор ранее не выбранного пакета libapache2-mod-proxy-html.
(Чтение базы данных... на данный момент установлено 30498 файлов и каталогов.)
Распаковывается пакет libapache2-mod-proxy-html (из файла .../libapache2-mod-proxy-html_3.0.0-1_i386.deb)...
Настраивается пакет libapache2-mod-proxy-html (3.0.0-1) ...
Your apache2 configuration is broken, so we're not restarting it for you.


Добавим модули в апач и перезапустим его:
hosting:~# a2enmod proxy
Enabling module proxy.
Run '/etc/init.d/apache2 restart' to activate new configuration!

hosting:~# a2enmod proxy_http
Considering dependency proxy for proxy_http:
Module proxy already enabled
Enabling module proxy_http.
Run '/etc/init.d/apache2 restart' to activate new configuration!

Теперь отредактируем proxy.conf добавив  "Allow from 127.0.0.1"

hosting:~# cat /etc/apache2/mods-available/proxy.conf 

        #turning ProxyRequests on and allowing proxying from all may allow
        #spammers to use your proxy to send email.


        ProxyRequests Off


        
                AddDefaultCharset off
                Order deny,allow
                Deny from all
                Allow from 127.0.0.1
                #Allow from e.example.com
        


        # Enable/disable the handling of HTTP/1.1 "Via:" headers.
        # ("Full" adds the server version; "Block" removes all outgoing Via: headers)
        # Set to one of: Off | On | Full | Block


        ProxyVia On






hosting:~# /etc/init.d/apache2 restart
Restarting web server: apache2 ... waiting ..


Теперь скопируем конфиг сайта awststs 01_awstats.conf в папку с конфигами сайтов апача:
hosting:~# cp /etc/ispcp/apache/01_awstats.conf /etc/apache2/sites-available/

Создадим символическую ссылку в /etc/apache2/sites-enable/ воспользовавшись командой a2ensite:
hosting:~# a2ensite 01_awstats.conf
Enabling site 01_awstats.conf.
Run '/etc/init.d/apache2 reload' to activate new configuration!

Перезагрузим папч:
hosting:~# /etc/init.d/apache2 reload
Reloading web server config: apache2.

Создадми недастающую папку /var/cache/awstats:
hosting:~# mkdir /var/cache/awstats

Теперь срегенерируем конфигорационные файлы icpCP:


hosting:~# /etc/init.d/ispcp_daemon stop
Stopping ispCP GUI-Backend communication Daemon: ispcp_daemon.

hosting:~# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 70
Server version: 5.0.51a-24+lenny4 (Debian)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> USE ispcp;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed

mysql> UPDATE `domain` SET `domain_status` = 'change' WHERE `domain_status` = 'ok';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> UPDATE `subdomain` SET `subdomain_status` = 'change' WHERE `subdomain_status` = 'ok';
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> UPDATE `domain_aliasses` SET `alias_status` = 'change' WHERE `alias_status` = 'ok';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 0  Changed: 0  Warnings: 0

mysql> quit
Bye

hosting:~# /var/www/ispcp/engine/ispcp-rqst-mngr

hosting:~# /etc/init.d/ispcp_daemon start

Перезагрузим апач:
hosting:~# /etc/init.d/apache2 restart

Теперь запустим скрипт сбора статистики, первый раз его нужно ввести вручную, т.к. cron'e еще не отработал скрипт:
hosting:~# /var/www/ispcp/engine/awstats/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl

Отредактируем файл сайта:
hosting:~# nano /etc/apache2/sites-available/01_awstats.conf
#Alias /awstatsicons "{AWSTATS_WEB_DIR}/icon/"
Alias /awstatsicons "/usr/share/awstats/icon/"

NameVirtualHost 127.0.0.1:80
<VirtualHost 127.0.0.1:80>

    <IfModule mod_rewrite.c>
        RewriteEngine on
        RewriteRule ^/stats/(.+)/$ http://localhost/awstats/?config=$1 [P]
        RewriteRule ^/stats/(.+)/awstats.pl(.*)$ http://localhost/awstats/$1 [P]
        RewriteRule ^/stats/(.*)$ http://localhost/stats/$1/ [R]
    IfModule>

   #ScriptAlias /awstats "{AWSTATS_ENGINE_DIR}/awstats.pl"
    ScriptAlias /awstats "/usr/lib/cgi-bin/awstats.pl"
   #<Directory {AWSTATS_ENGINE_DIR}>
    <Directory /usr/lib/cgi-bin>
       AllowOverride none
        Options +ExecCGI
        DirectoryIndex awstats.pl
        Order allow,deny
        Allow from all
    Directory>
VirtualHost>

Ну и напоследок запустим апач:
hosting:~# /etc/init.d/apache2 restart

Вуаля! Есть статистика: 

Для того что бы зайти в статистику необходимо будет ввести логин и пароль хронящийся в файле /var/www/virtual/example.com/.htpasswd. Это собственно и есть тот логин под которым вы заходите в панель управления ispCP. 
Также необходимо состоять в группе статистика /var/www/virtual/example.com/.htgroup/
Полезные ссылки: http://isp-control.net/forum/showthread.php?tid=4663&highlight=awstats 
http://isp-control.net/forum/thread-10880-page-2.html
http://isp-control.net/forum/thread-1922-page-2.html


aka_delix

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

  1. Спасибо за очень подробное хау-ту. Всё получилось. Вот только предупрежу на будущее: если у Вас панель версии 1.0.7, и у пользователей есть поддомены, то после регенерации конфигов поддомены могут "слететь" (не создадутся соответствующие записи в /etc/apache2/sites-available/ispcp.conf). В моём случае это быстро вылечилось буквально "методом тыка": надо войти как пользователь, напротив каждого поддомена щёлкнуть ссылку "Изменить", а потом тупо нажать кнопку "изменить".

    ОтветитьУдалить
  2. Vark, спасибо за отзыв, и совет по регистрации конфига для поддоменов. Нада будет на досуге потестить, и если бага действительно присутствует то запостить баг-репорт ментейнерам.

    ОтветитьУдалить