A place where the Joyent community can gather, help each other out, and stay informed.
You are not logged in.
Just over a year ago I managed to install AWStats on my TxD account; to make sure that I didn't do anything horribly wrong, and also to possibly help others, I posted this how-to. People had some good ideas about how to improve that setup, and some concerns about how the setup would unduly use resources; though revisions were made that (I hope) improved the installation instructions and reduced the amount of server time that AWStats used, those changes never really got consolidated into a clear set of instructions. It's time to fix that, I say. (And, for once, I have time to do so!)
References:
- AWStats documentation (doi)
- dotvoid.com - Awstats with virtual hosts on Apache
- AWStats forum posting
- Authentication, Authorization and Access Control
- Apache documentation on htpasswd
Mad props also to the many posters in this thread; I've tried to incorporate your ideas and criticisms where appropriate. As usual, feel free to comment if there's something here that doesn't look right.
THE GOAL
This how-to should help you to get AWStats installed and running on all of your domains, though you'll check the stats for each domain from your primary domain (i.e. you'll view "otherdomain.com"'s stats through "domain.com"). Furthermore, we'll set AWStats up so that it will distinguish hits from subdomains (sub.domain.com) from the main domain (domain.com). The program will run once a day (any more is really an abuse of the server's processing time), and will process the previous day's file.
Log files will remain in their log folder (having only been processed by AWStats once (!)), where (as I understand it) TextDrive will eventually delete the oldest logs in the folder automatically.
Of note, this will not process old log files; odds are you'll have to change your log file's format, and that will make processing old files extremely tricky. (As in "far too tricky for me".) If you want to start tracking your stats with AWStats, get cracking on getting it installed!
####################
SEPTEMBER 2006 UPDATE: Since I've written these instructions up, things have changed once again -- specifically, Webmin has been overhauled. This seems to mostly affect how you enable security on your AWStat pages; for the scoop, be sure to read kailoa's post on page 3 of this thread. I'll update these instructions, again, when I get some free time...
####################
COPYING FILES
1) Download AWStats (Go for the "last stable version," 6.5 as of now) and decode the file.
2) Copy the contents of the "/awstats-6.5/wwwroot/cgi-bin/" folder (from your download) into "/users/home/[your user name]/cgi-bin/awstats/" on the server. (You'll have to make the "awstats" folder.) If they're not already properly set, make sure awstats.pl and awredir.pl both have permissions set to 755.
3) On the server, make a folder titled "awstats-supportfiles" in your "/users/home/[your user name]/public_html/" folder. Copy the "classes", "css", and "icon" folders from the AWStats download (found in "/awstats-6.5/wwwroot/") into the "awstats-supportfiles" folder on the server. [I don't use the javascript "misc tracker" script, so I didn't bother copying it... I assume you could copy it into a "js" folder, too.]
4) Also on the server, create a folder for AWStats to store its data in. Ex: "/home/[your user name]/awstats-data/". You may want to keep data for each domain separate; if so, create a folder for each domain you have (most likely within that domain's folder).
CONFIGURE APACHE
Rather than running the included "awstats_configure.pl" script (I'm not sure if it'd even work), we'll strengthen our Webmin muscles and configure the web server settings manually. So: get ready for fun!
1) Log in to Webmin. Click on the Apache Webserver link, and then click on the "virtual server" link next to your primary domain.
2a) In "Aliases and Redirects": Add a Document Directory Alias from "/awstatsclasses" to "/users/home/[your user name]/public_html/awstats-supportfiles/classes/". Click the save button.
2b) Repeat (2a), but now add an alias from "/awstatscss" to "/users/home/[your user name]/public_html/awstats-supportfiles/css/".
2c) Repeat (2a), but this time add an alias from "/awstatsicons" to "/users/home/[your user name]/public_html/awstats-supportfiles/icon/".
3) In "CGI Programs": Add a CGI Directory Alias from "/awstats/" to "/users/home/[your user name]/cgi-bin/awstats/". Click the save button.
4) At the bottom of the Virtual Server Options screen is a box that allows you to create per-directory options. Type "/users/home/[your user name]/cgi-bin/awstats/" as the path, and then click the "Create" button.
5) Click on the new link (under per-directory options) related to the pathname you just created.
6) If you're interested in password-protecting your stats pages, click on "Access Control" and then do the following steps (a) through (e). If you're not interested, skip to (7).
a) Set Authentication type to "Basic".
b) The Authentication Realm Name is a bit of text given in the browser's username/password dialog window, to help the user determine which username and password (s)he should enter. Choose an Authentication Realm Name (I used "TxD AWStats", without the quotes), and fill in that field.
c) Restrict Access by Login should be set to "Only these users:", and type a username (whatever you want to use to look at your AWStats; I'll refer to this as [awstats user name]) into the field.
d) In the Text File Authentication area, set the User Text File radio button to the empty text field. In that text field, type "/users/home/[your user name]/cgi-bin/awstats/.htpasswd"
e) Click the save button.
7) In "Document Options" (still for that one directory): Directory Options should be set to "Selected below...", and every radio button in the Option/Set for directory/Merge with parent" table should be set to "No".
Options file can override.. should be set to "Selected below...", and you should uncheck all the checkboxes below ("authentication options" through "directory options").
8) Click the save button. Then click the "Return to server index" link.
CREATE YOUR .HTPASSWD FILE
You need to do this only if you chose to password-protect your stat files.
SSH into your server (ssh [your username]@[your server].textdrive.com), and type this command (filling in as appropriate):
htpasswd -c /users/home/[your user name]/cgi-bin/awstats/.htpasswd [awstats user name]
(The c switch tells the program to create a new file--here, ".htpasswd", in the awstats folder.)
You will be prompted for a password to associate with that user name; type one in, and then verify it. Exit the SSH session.
APACHE SETUP, CONTINUED
We need to do the following changes to allow a hit to "www.domain.com" to be distinct from a hit to "subdomain.domain.com". By default, visits to the main domain and any subdomains will all appear as a hit to "/" in AWStats; you won't be able to tell them apart, and that's no fun!
[This assumes that you haven't created independent subdomains, and so are just using the soft "sub.domain.com" -> ".../public_html/sub/" mapping. If you are using independent subdomains, you can skip this whole section, and should also leave your LogFile setting, in your .conf files -- described later -- at its default value.]
For each virtual server you have (both primary and secondary), navigate to the Virtual Server Options screen of webmin and do the following:
1) In "Networking and Addresses": Set "Use hostname supplied by browser" to Yes, and then click the save button.
2) In "Log Files": Add a "named log format." Give it the nickname "combinedplus", and set its format to (copy and paste):
%V %h %l %u %t "%r" %>s %b "%{Referer}i" "%{User-Agent}i"
(this is actually the "combined" log format with the name of the server being accessed appended to it; to see what these symbols stand for, see the Apache documentation.)
For the Access Log Files section, set the top radio button of Format to the empty field (i.e. not "default"), and type "combinedplus" into that field. Note the location of the log file (and be aware that this will change for each virtual server you have).
Click the save button.
APACHE SETUP, FINAL
1) Click on the "Apply Changes" link in the Virtual Server Options page. This takes some time, and has always given me an error page -- but you can just use your browser's back button to escape. Your settings should change, despite the error message.
CONFIGURE AWSTATS CONF FILES
Find the awstats.model.conf file in the AWStats folder that you downloaded (/awstats-6.5/wwwroot/cgi-bin/). Make a copy of it, and rename it to "awstats.[the domain you want to keep stats on].conf". (E.g. "awstats.domain.com.conf", or "awstats.sub.domain.com.conf")
You will need to create a .conf file for each domain you want to track. (I'd recommend modifying one file, and then copying and renaming that file, rather than modifying every file from scratch.)
In the .conf file, set the following (at the very least; there are lots of other settings that you might be interested in changing):
LogFile: This is a bit tricky, as TxD automatically gzips our log files when it rotates logs; we'll have to counter that. In step (2) of "Apache Setup, Continued" you should have noted the location of the log file(s) you want to process; for example, your primary domain's log should be at /users/home/[your user name]/logs/. THEREFORE, set your logfile to the following -- only modifying the path to the log file as needed:
LogFile="/usr/bin/gzip -d < /users/home/[your user name]/logs/access_log.%YYYY-24%MM-24%DD-24.gz |"
[Explanation: "/usr/bin/gzip -d < " effectively tells AWStats to unzip the file found at the location following the "<"; the "%YYYY-24%MM-24%DD-24" notation tells AWStats to substitute the previous day's year, month, and day into the file name. Special thanks to scottj for posting about this notation!]
LogFormat: copy and paste the following (be sure to have quotation marks around this):
%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot
SiteDomain: set this to the domain name you want to track; e.g. "www.domain.com".
HostAliases: add your SiteDomain value, and leave localhost and 127.0.0.1 as other values separated by spaces. Remove "REGEX[myserver\.com$]", or else (in my experience) you won't be able to distinguish hits to your primary domain's main page from hits to the main page of any subdomain. (Of course, you might want to leave that in if you want to track the bandwidth of the site as a whole.)
DirData: set this to the path of the folder you created in step (4) of "Copying Files"; e.g. "/users/home/[your user name]/awstats-data/"
DirCgi: set this to the path name to the folder in which the awstats.pl file is located, namely "/users/home/[your user name]/cgi-bin/awstats/"
DirIcons: set this to "/awstats-supportfiles/icon"
If you've chosen to password-protect your stat files, be sure to modify the following settings:
AllowAccessFromWebToAuthenticatedUsersOnly: should be 1
AllowAccessFromWebToFollowingAuthenticatedUsers: should be "[awstats user name]"
Once you're done customizing your .conf files, upload them to your server; put them in the same folder as awstats.pl (/users/home/[your user name]/cgi-bin/awstats/).
FIRST RUN
1) Wait two days. You most likely just changed your log file format, meaning that the previous day's log file will be in the old format, and the current day's log file will be part old-format and part new-format. The old formatting will be different from what AWStats expects, and so AWStats will just throw an error if you try to do this next step prematurely.
2) SSH into your server (for whatever reason, I could never get this to run from the Webmin command-line), and then type this command for each .conf file you have (substituting in as appropriate):
perl /users/home/[your user name]/cgi-bin/awstats/awstats.pl -update -config=[domain.com]
(the -config setting should be equal to the name of a .conf file, with the "awstats." and ".conf" portions of the file name removed; awstats.domain.com.conf would be used if you used -config=domain.com)
With any luck, the program will run and will spit out some text (sample below from the AWStats documentation):
Update for config "/etc/awstats/awstats.myvirtualhostname.conf"
With data in log file "/pathtoyourlog/yourlog.log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)...
Jumped lines in file: 0
Parsed lines in file: 225730
Found 122 dropped records,
Found 87 corrupted records,
Found 0 old records,
Found 225521 new qualifed records.
If you get similar text (my stats aren't anywhere near that impressive), you're golden. Feel free to logout of your SSH session.
SCHEDULE CRON JOB(S)
Having AWStats up and running is all well and good, but it doesn't actually do anything until you kick it. We should automate that.
1) Log into webmin once again, but this time click on "Scheduled Cron Jobs". Then click on "Create a new scheduled cron job."
2) Copy the following (filling in as appropriate) into the Command field:
/usr/local/bin/perl /users/home/[your username]/cgi-bin/awstats/awstats.pl -update -config=[domain.com]
3) Fill out the "when to execute" area as you desire. If you want to run your update every day at 3:30 am (GMT), then do the following:
a) Change the Minutes and Hours radio buttons both to "Selected..."
b) Under Minutes, click on 30.
c) Under Hours, click on 3.
For $DIETY's sake -- do NOT leave either "minutes" or "hours" set to "All." Doing so will have cron update your AWStats multiple times a day (the worst-case being every minute of every day), and is a quick way to gain the attention (ire?) of the TxD staff.
In short: update your stats at most once a day, during off-peak hours, to keep everybody happy!
4) Click the Create button.
5) Repeat these steps (as necessary) for each AWStats .conf file you created.
(If you're feeling industrious and/or you don't want to create cron jobs for every domain you want to track, you could write a small shell script to run all your AWStats updates, and call only that shell script via cron... but that's neither here nor there, as far as setting up AWStats is concerned.)
6) Once you have verified that cron is running as you expect (i.e. that it is only emailing you once a day, and isn't complaining of any errors), you can modify your cron command so that it doesn't send you an email every time it runs by appending " >/dev/null 2>&1" to the end of your command:
/usr/local/bin/perl /users/home/[your username]/cgi-bin/awstats/awstats.pl -update -config=[domain.com] >/dev/null 2>&1
YOU'RE DONE!
In the future you can check your stats on the web, using a URL of this form:
www.domain.com/awstats/awstats.pl?config=domain.com
Note that you'll have to use your primary domain name to check out stats on all of your secondary domains, the way this is set up. (Use the same URL form as above, but change the text after "config=" to point towards a secondary domain's stats--e.g. www.domain.com/awstats/awstats.pl?config=othersite.com)
[5/11/06 edit: massive rewrite!]
[6/9/06 edit: removed an unnecessary step; added a note about independent subdomains.]
[6/16/06 edit: changed "wait a day" to "wait two days" before running AWStats for the first time. As discovered by mrmargolis, the current day's log file will be part old and part new, and that doesn't work too well either.]
[6/22/06 edit: tweaks to the cron section, to make sure that things are set up properly before we have cron stop sending emails.]
[9/16/06 edit: added note about the new way to enable security, as a stopgap until I get time to update this thing...]
Last edited by Brent (2006-09-16 18:20:34)
Offline
Thanks heaps!
The only issue I had following this was that my log file format is "LogFormat= "%host %other %other %time1 %methodurl %code %bytesd %refererquot %uaquot" instead. But it's working great with the basic setup now :D
Last edited by rosshill (2005-04-21 09:01:54)
Offline
Offline
(This post used to be instructions on how to enable security; these steps have been combined into rewritten instructions found in the first post.)
[5/11/06 Edit: rolled into the rewritten instructions in the first post.]
Last edited by Brent (2006-05-11 07:40:01)
Offline
(This post used to be instructions on how to set up cron jobs to run AWStats automatically; these steps have been combined into rewritten instructions found in the first post.)
[5/11/06 Edit: rolled into the rewritten instructions in the first post.]
Last edited by Brent (2006-05-11 07:41:01)
Offline
Thoroughly useful, Brent. I will no doubt be coming back to this thread in the future. The Webmin pointers are especially useful, as Webmin, despite my Unix upbringing, tends to boggle me.
Offline
Hrm. When I try to view http://mydomain.com/awstats/awstats.pl? … domain.com (substituting mydomain with, of course, my domain), I get a 500 Internal Server Error.
Edit: Nevermind, fixed it entirely this time.
Last edited by Jabberwock (2005-05-28 08:34:39)
Offline
Could someone comment on the pros and cons of AWStats vs. Urchin? I am getting close to needing stats and based on my limited use of Urchin I'm finding it a bit...um...interface-heavy.
Last edited by Hoopla (2005-06-12 14:11:26)
Offline
AWStats is free and has an easy to use concise interface. It's been an indispensable tool for ecommerce websites in that it helps you identify keywords that you may not realise are coming to your site.
Offline
awstats.pl worked just fine, found lots of qualified records... But I can't access mydomain/awstats/awstats.pl?config=mydomain. Any idea? Firefox keeps trying to access the address with no success.
I've made all cgi changes. Perhaps something to do with Rails? I'm using lighttpd and mapping all requests in / to the lighttpd address (like the painless manual to lighttpd told).
Last edited by pedrobelo (2005-07-19 21:56:25)
Offline
Nice work, Brent! Instructions that even a Unix illiterate like me can follow. Much appreciated.
One question.. only one day's worth of info shows up in my stats. I know I have logs going back at least a couple of months. Did I do something wrong?
Molly
Offline
Hrm. When I try to view http://mydomain.com/awstats/awstats.pl?
Last edited by Jeff Adams (Tinyfly) (2005-08-02 18:59:43)
VC200 #82 | Quit staring at my signature...pervert.
Offline
Jeff Adams (Tinyfly) wrote:
How did you fix it?
I am having the same problem I get a server 500 error. Any Ideas on how to fix this?
Jeff, make sure that /home/[username]/cgi-bin/awstats/awstats.pl has the right permissions. It should be set chmod to 775. Hope this helps!
Offline
A few performance tips to keep you on the good side of your neighbours and the admins:
#!/usr/local/bin/bash
#simple script to update awstats and move log archives to 'old' directory
PERLEXEC=/usr/local/bin/perl
DOMAINDIR=/home/{yourusername}
AWSTATSDIR=$DOMAINDIR/cgi-bin/awstats
AWSTATSEXEC=$AWSTATSDIR/awstats.pl
LOGDIR=$DOMAINDIR/logs
#update stats
$PERLEXEC $AWSTATSEXEC -update -config={yourdomain}
#move files
mv $LOGDIR/access_log.*.gz $LOGDIR/old
You'll need to create an "old" directory inside your logs directory. Set the script's permissions to 755 and set up your cron entry to be this instead:
Last edited by darkcanuck (2005-08-10 00:20:58)
Offline
I am so close to having this running right, I just can't seem to get the cron job running properly.
I've done something similar to what darkcanuck suggests, and have a shell script that handles the update. It's at /users/home/nonliteral/cgi-bin/awstats/update.sh
I've tried both of the following command lines -- they both execute fine from either SSH or the Webmin Cron panel (by clicking on the "run now" button), but neither one of them runs as a scheduled job:
1st attempt -- /users/home/nonliteral/cgi-bin/awstats/update.sh >/dev/null 2>&1
2nd attempt -- /usr/local/bin/bash /users/home/nonliteral/cgi-bin/awstats/update.sh >/dev/null 2>&1
Any clues? I'm a newbie with shell scripts, and have never tried running one from Cron before; I'm sure I'm missing something obvious. I'm on chilco if it makes a difference.
Thanks!
- Chuck
Offline
Your home directory should be "/home/nonliteral", not "/users/home/nonliteral".
Offline
Thanks, darkcanuck!
Unfortunately, while both:
/home/nonliteral/cgi-bin/awstats/update.sh >/dev/null 2>&1
and
/usr/local/bin/bash /home/nonliteral/cgi-bin/awstats/update.sh >/dev/null 2>&1
work from the "run now" button, neither one of them executes at the scheduled time... I'm apparently still missing some piece of this puzzle.
- Chuck
Offline
You can email me a screenshot of your cron job setup if you like.
Offline
Thanks Jerome... I'm not sure if a screen shot would be more useful than a summary or not, since the command line overflows the text area so much... Let me try a summary first...
Execute cron job as nonliteral
Active: yes
Command:/usr/local/bin/bash /home/nonliteral/cgi-bin/awstats/update.sh >/dev/null 2>&1
Input to command: blank
(I've also tried this as command:/usr/local/bin/bash and input to command: /home/nonliteral/cgi-bin/awstats/update.sh >/dev/null 2>&1)
When to execute: times and dates selected below
Minutes: selected (30 highlighted)
Hours: All
Days: All
Months: All
Weekdays: All
To try it, I've just been setting the Minutes to a few minutes ahead of current time, and then saving and waiting to see if the job runs. As soon as I get it to actually run, I'll back it down to a more reasonable frequency.
Offline
First off, if you run this more than once per day you're likely to be tarred & feathered and run out of town on a rail. ;)
Things to check/change:
1. remove the >/dev/null (etc) and run the cron job manually. You should see the output in webmin which might help to debug the problem.
2. take out the bash part, if your script is chmod'd to 755 it should run fine.
3. double-check your script for any typos.
Offline
lol... I wish I had enough traffic to generate logs big enough to be a problem :-) If I ever get it running on a schedule, I'll probably leave it at once a day, since if I run them more often, I check them more often :-)
1) Runs fine (via "Run Now") without the /dev/null stuff; output is as expected and finishes without errors.
2) Script is 755 (as is awstats directory); without the /usr/local/bin/bash it still runs fine via "run now"
3) It executes without errors anywhere but on a schedule; about 95% of it is what you posted above.
Unfortunately, it still doesn't run as a scheduled job.
Is it possible that cron jobs are disabled on new accounts, or perhaps on Chilco in general at the moment?
Thanks again for the help!
Offline
Sounds like you should put in a ticket then.
Offline
yes, cron needed to be started on chilco...
Offline
Thanks Ryan!
Offline
Thanks Brent and darkcanuck for providing this information. I'm up and running but had a couple problems.
For one thing I had trouble getting Webmin to accept the new log file format, but I ended up skipping that section since I don't have any subdomains currently active to test with anyway. I'll come back to it later.
Then when I went to add the Basic Auth through webmin it wouldn't take my .htpasswd file location. I was specifying it as /home/username... but it was looking for /users/home/username due to the symlink.
Anyone else run into this? I'm a relatively new Textdrive member, so maybe the setup is a little different for me (like I don't have a public_html directory, I have web/public).
Offline
Brent: Thank you for posting these instructions!
dasil003: I had to use /users/home instead of /home for the .htpasswd location, too. (Error message was Failed to save Access Control : User text file is not under the allowed directory) Everywhere else I just used /home per Brent's instructions. I also used rosshill's log format (thank you, rosshill).
btw, when I run awstats, Firefox won't prompt for my user/password (just gives an error message about access to statistics) but Safari allows me to login.
Offline
I've started getting this error message when I try to run update:
This means each line in your web server log file need to have "combined log format" like this:
111.22.33.44 - - [10/Jan/2001:02:14:14 +0200] "GET / HTTP/1.1" 200 1234 "http://www.fromserver.com/from.htm" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
And this is an example of records AWStats found in your log file (the record number 50 in your log):
209.120.243.254ost -ther -ther [08/Oct/2005:00:01:28 +0000]ime1 GETethodurl -ode 211ytesd GET /index.xml HTTP/1.1efererquot -aquot
Does anyone have a suggestion what I can try?
Offline
These are the last 3 lines:
209.120.243.254ost -ther -ther [08/Oct/2005:02:43:16 +0000]ime1 GETethodurl -ode 2413ytesd GET /rss HTTP/1.1efererquot -aquot
209.120.243.254ost -ther -ther [08/Oct/2005:02:43:16 +0000]ime1 GETethodurl -ode 2413ytesd GET /rss HTTP/1.1efererquot -aquot
209.120.243.254ost -ther -ther [08/Oct/2005:02:43:16 +0000]ime1 GETethodurl -ode 2413ytesd GET /rss HTTP/1.1efererquot -aquot
Offline
Oh I see what happened, I messed up my log format in webmin. I've re-entered Brent's format and my access_log looks a lot better now. I'll wait until after the next log rotation and run an update, I bet awstats will work now.
Offline
Thanks for the very thorough job writing up these procedures!
I'm trying to get this working, and this is the result of my first run:
Update for config "/home/superlum/cgi-bin/awstats/awstats.neurodiversity.com.conf"
With data in log file "/home/superlum/domains/neurodiversity.com/logs/access_log"...
Phase 1 : First bypass old records, searching new record...
Searching new records from beginning of log file...
AWStats did not find any valid log lines that match your LogFormat parameter, in the 50th first non commented lines read of your log.
Your log file /home/superlum/domains/neurodiversity.com/logs/access_log must have a bad format or LogFormat parameter setup does not match this format.
Your AWStats LogFormat parameter is:
%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot
This means each line in your web server log file need to have the following personalized log format:
%virtualname %host %other %logname %time1 %methodurl %code %bytesd %refererquot %uaquot
And this is an example of records AWStats found in your log file (the record number 50 in your log):
67.76.148.197 - - [08/Oct/2005:00:12:28 +0000] "GET /graphic/mobius_web_120.jpg HTTP/1.1" 200 4891 "http://www.neurodiversity.com/main.html" "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.7.10) Gecko/20050716 Firefox/1.0.6"
Setup ('/home/superlum/cgi-bin/awstats/awstats.neurodiversity.com.conf' file, web server or permissions) may be wrong.
Check config file, permissions and AWStats documentation (in 'docs' directory).
Does this mean that only new log entries that correspond to the format I entered in Webmin will be parsed by awstats? And does that mean that all older log data will be ignored?
Offline
Never mind. I decided to revert to the usual "combined" format (in both Webmin and my awstats conf file, or course), and all is well, including cron and access control. Thanks again for a great howto!
Offline
Thanks for the very comprehensive tutorials.
However I got stuck when I tried to enable LoadPlugin GeoIP
Is there anyone know how to enable it here in TxD? Thanks in advance.
Last edited by kodiat (2005-10-14 15:09:58)
Offline
Brent- great tutorial, it worked like a charm. Maybe you can help in getting AWStats to display the mod_deflate data? I've monkeyed around and tried to do it, but things seem amiss. I'm sure you can package a tutorial on this as well as the first one? :)
Offline