Gentoo has finaly moved away from webapp-config and simplified updating awstats. The example of apache config file setting awstats for apache virtual hosts runnig wsgi application is given bellow. Prerequisites are apache proxy for wsgi app, and awstats visible at www.some_domain.com/awstats.pl using authentication.
<VirtualHost *:80>
ServerName www.some_domain.com
Serveralias some_domain.com
ServerAdmin admin@some_domain.com
ErrorLog /var/log/apache2/www.some_domain.com-error.log
CustomLog /var/log/apache2/www.some_domain.com-access.log combined
# awstats config
Alias /awstats/classes "/usr/share/awstats/wwwroot/classes/"
Alias /awstats/css "/usr/share/awstats/wwwroot/css/"
Alias /awstats/icon "/usr/share/awstats/wwwroot/icon/"
ScriptAlias /awstats/ "/usr/share/awstats/wwwroot/cgi-bin/"
ScriptAlias /awstats "usr/share/awstats/wwwroot/cgi-bin/awstats.pl”
ScriptAlias /awstats.pl "usr/share/awstats/wwwroot/cgi-bin/awstats.pl”
<Directory "/usr/share/awstats/wwwroot">
AllowOverride None
Options None
Order allow,deny
Allow from all
AuthType Basic
AuthName "AWStats authenticated zone"
AuthUserFile /etc/awstats/.htpasswd
Require valid-user
</Directory>
<Directory "/usr/share/awstats/wwwroot/cgi-bin">
SetHandler cgi-script
Options +ExecCGI
</Directory>
ProxyPass /awstats !
ProxyPass /awstats.pl !
ProxyPass / http://localhost:5005/ retry=5
ProxyPassReverse / http://localhost:5001/
ProxyPreserveHost On
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
</VirtualHost>
Awstats config file (in /etc/awstats/) with geo-ip (emerge dev-perl/Geo-IP)
LogFile="/var/log/apache2/www.some_domain.com-access.log" LogType=W LogFormat=1 LogSeparator=" " HostAliases="localhost 127.0.0.1 REGEX[myserver\.com$]" DNSLookup=2 DirCgi="/cgi-bin" DirIcons="/awstats/icon" AllowToUpdateStatsFromBrowser=0 AllowFullYearView=2 LevelForFileTypesDetection=1 LevelForWormsDetection=2 SiteDomain="www.some_domain.com" DirData="/home/some_user/awstats" LoadPlugin="geoip GEOIP_STANDARD /usr/share/GeoIP/GeoIP.dat"
To test configuration run
/usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.some_domain.com -update
If you wish cron to handle update on every hour:
crontab -e -usome_user
0 * * * * cd /etc/awstats/ && /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.some_domain.com -update >/dev/null 2>&1
Error with log file
Error: LogFile parameter is not defined in config/domain file
Setup ('www.dajstadas.com' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
obviously check LogFile and read permissions, however, this might fail if you call awstats update outside /etc/awstats directory. Retry with
cd /etc/awstats/ && /usr/share/awstats/wwwroot/cgi-bin/awstats.pl -config=www.some_domain.com -update