WWW Count Frequently Asked Questions
 sh: ar: not found, what's the problem?
    
 1: Is there a support group or mailing list?
    
    
    1: Is there a support group or mailing list?
    
    
    
    
    Answer:
There is a mailing list setup for those who couldn't get their question 
answered on this page.  To subscribe to the mailing list for WWWCount, please
go to the URL: 
http://lists.yeehaw.net/mailman/listinfo/wwwcount/
NOTE: This list is a help forum, people will ask questions which might seem simple and annoying to you. Therefore, subscribe to the mailing list only if you like to help others.
Thanks to Ashley M. Kirchner for creating and maintaining the list.
 2. My CGI scripts don't work. What's
    wrong?
    
    2. My CGI scripts don't work. What's
    wrong?
    
    
    Answer: 
    Simply linking from your page to an executable program or script won't
    cause it to be run by the server. There are two common arrangements: either
    files in directories specially designated by the server administrator are
    executed as CGI scripts, or files with a special extension (such as .cgi)
    are executed as CGI scripts. 
These are just two possible ways your server might be configured. Many sites don't allow users to run CGI scripts at all. Consult your web server's administrator.
Taken from WWW FAQ
 3.I get errors while compiling on SGI, what's the
    problem?
    
    3.I get errors while compiling on SGI, what's the
    problem? 
    
    
       : libCombine.a
       : - Too many arguments
       *** Error code 1 (bu21)
       *** Error code 1 (bu21)
     To make it work, in libs/combine/Makefile, remove the line
    $(RANLIB) $@ 
Or, try setting SHELL to sh, for example: setenv SHELL "/bin/sh"
Thanks to avarro@CENTRCN.UMontreal.CA (12/07/95)
 4. Why does the counter show "888888" all the time?
    
    
    4. Why does the counter show "888888" all the time?
    
    
    
    Answer: The counter is running in strict mode
    (look at count.cfg file).  When the counter runs in strict mode, if
    the browser does not return the environment variable HTTP_REFERER,
    the counter will display the image 888888 instead of serving the
    counter.  The environment variable HTTP_REFERER should contain the web page running
    the counter. Some browsers do not return this variable in <img GET
    method.  
Technical notes: The way HTTP_REFERER environment variable gets available to a
CGI program is as follows: The browser sends a header like Referer:
http://foo.com/page.html, then according to the 
CGI 1.1 specification the server can add HTTP_ followed by the header name
and make it available to CGI program as environment variable. But according to 
CGI spec, the server can decide not to make these variables available to the 
CGI program. In this case, the counter will show 888888. Also, if the browser
decides not the send the Referer header to the server, there will not be
any environment variable called HTTP_REFERER, and the counter will show
888888.  Good news is, netscape and MS IE both send Referer when <img src
is is used to set an inline image, and apache and all good web servers also 
make this variable available to the CGI programs.
 5. The counter does not compile on UnixWare with cc, why?
    
    
    5. The counter does not compile on UnixWare with cc, why?
    
    
    
Answer:
    Note for UnixWare 2: Before running the configure
    script, set and export the environment variable CC to the string
    cc -Xc
 6. The counter does not compile on Solaris with cc, why?
    
    
    6. The counter does not compile on Solaris with cc, why?
    
    
    
Answer: 
        If you are using Sun's stock cc on Solaris, you may get errors about
        identifier redeclaration.  Try defining -D__STDC__=1
         in Makefile, it might work. You should not have any problem if
        you compile with gcc or ucb cc on Solaris.
 7. I get an error message "Could not write to counter file:
    x/y/sample.dat". What's the problem?
    
    
    7. I get an error message "Could not write to counter file:
    x/y/sample.dat". What's the problem?
    
    
    
    Answer: That means the user running the web server can not write 
    to the datafile. The correct way to make it work is to change the owner
    of the datafile to the user running the web server and give read/write
    permission to that user only. You can only do that if you're the super user.
    If you are not the super user, you have to give read/write permission to 
    world. In Unix, "chmod 666 file" will do that. But this will allow anyone to
    edit or delete your datafile.
 8. What does it mean when you say "user running the web server"?
    
    
    8. What does it mean when you say "user running the web server"?
    
    
    
    Answer: Web servers can be configured to run the CGI program as a 
    unique user and a group.   In apache web 
    server, the user and the group is specified with the directive User and
    Group in httpd.conf file respectively.  I suggest you create a unique user 
    and group first.  For the user, put a * in the password field in 
    passwd file and use /bin/true as its shell. This way this user will 
    never be able to login to the system. And all CGI programs should be
    owned by the user and read/write/execute permission to be given to that
    user only. Most of all, make sure you look at all the CGI programs in your
    system. CGI programs are always a security risk. But if you configured
    your server to execute CGI programs as a unique non-privileged user, the
    damage to your system will be minimal, in case security is compromised
    due to CGI programs.
 9. The counter seems to display random number. What's the problem?
    
    
    9. The counter seems to display random number. What's the problem?
    
    
    
    Answer:  If you do not specify a datafile with df= parameter, the
    counter will display a random number.
 10. I get an error message "Host foo.com is not authorized". What's the
    problem?
    
    
    10. I get an error message "Host foo.com is not authorized". What's the
    problem?
    
    
    
    Answer: Find the file 
    count.cfg. Edit it with your favorite text
    editor. Add the hostname in the error message in the section [authorized].
    If you do not have access to the file, you have to ask the person who
    installed the counter.
    
    If you are running a system with many virtual domains, you will probably
    want to list your IP addresses with wildcards.  This prevents you from
    having to add an entry every time a new virtual domain is added.  As of
    version 2.4, the referer host will be looked
    up in DNS if the USE_DNS directive is defined during compilation.
    Look at the comments in file src/Makefile.in for
    instructions.
    
For example, if you have the class C IP address of 192.160.166.[1-254], instead of listing every virtual host in this domain you could add:
192.160.166.*to your config file in the [authorized] section. Note that this feature will NOT work with versions prior to Count 2.4. Warning: If you compile with
 -DUSE_DNS=1, then hostname is resolved with each CGI
    request. This can be slow if your DNS server is busy or serving lots of
    requests. If DNS server does not respond, the counter will hang until 
    resolving request times out.
 11. What's the format of the data file?
    
    
    11. What's the format of the data file? 
    
    
    
    Answer: The counter data file is a text file. The format of this
    file is:   digits:IP$
     
     The line does not end with new line.
     Example:
        56787654567237875:131.349.3.10$
    
    The digits are the numeric ASCII characters and IP is the IP number of
    the last host visited the page. The $ at the end indicates the end of
    data.
    If you configured the counter to count reload, the datafile might contain
    something like:
    3432432434$
    Here the $ indicates the end of data as well.
    Technical note: Before the release of Count 2.5 there was no $
    to indicate the end of data. So ftruncate() was used to truncate the
    datafile before writing. It was kind of risky, because if the system was out
    of disk space, the data file was truncated to zero without any indication. 
    It will also help data integrity for the  systems where ftruncate() is not 
    available.  
 12. How can I reset the counter?
    
    
    12. How can I reset the counter?
    
    
    
    Answer: To reset the counter, find the file specified with df=
    parameter, edit it with your favorite text editor. If you do not have
    access to the datafile, your sysadmin has to do it for you.
 13. How does this program handle remote execution?
    
    
    13. How does this program handle remote execution?
    
    
    
    Answer: If you do not know, in most cases any CGI program can 
    be executed remotely without visiting the page with a browser.  For 
    example, a CGI program x.cgi (say it returns an in-lined image) in
    foo.com can be called from foobar.com as follows:
    <img src="http://foo.com/cgi-bin/x.cgi">
    That is, someone somewhere on the  Internet can refer to your counter
    and increase the hits and you will not have a clue. You will get the false
    impression of many people visiting your page. 
So how does this program handle this? The counter program tries to get a environment variable called HTTP_REFERER for remote referrer. It is necessary to check this variable because when someone remotely refers to a CGI program on your machine, the variable REMOTE_ADDR will be the address of your machine. So checking REMOTE_ADDR will not work. Most of the modern browsers returns the env variable HTTP_REFERER. If the browser does not return the variable, counter will be served anyway. But you are not lost totally here. If you decided to ignore count for your host running httpd, the counter will be served but it will not be increased. So, I suggest ignore count for your own host. Gen-conf program is used for generating the configuration file. Due to the architecture of the web itself, there is not good solution of this problem, a determined evil hacker can always circumvent it.
 14. What's the maximum number of hits the counter can handle?
    
    
    14. What's the maximum number of hits the counter can handle?
    
    
    
    Answer:
    By default compile time option, it can handle digits up to 80 character
    long which a very large number
(99999999999999999999999999999999999999999999999999999999999999999999999999999999).
It will not overflow in the life time of the Universe.
However, this can be easily increased by editing the MAX_DIGITS
    directive in count.h :). Now a pop quiz,
    if a site gets one million hits/day, in which year will the counter 
    overflow?
 15.  I sent you so many mails, how come you never respond?
    
    
    15.  I sent you so many mails, how come you never respond?
    
    
    
    Answer: I receive enormous number of mails. Please understand 
     that no way I can answer all of the mails I receive.  If the problem 
     can be solved by reading the documentation, you won't hear from me, 
     otherwise I try my best to respond. But often I just have too much
     to do and mails pile up.  Instead of sending me mails, please 
      subscribe to the mailing list and send mail there.
 16. How can I turn off "Reload Ignore" feature?
    
    
    16. How can I turn off "Reload Ignore" feature?
    
    
    
    Answer: This used to be a compile time option, but it is a
    run time option from Count 2.5+. 
    In the options section of the configuration 
    file specify count_reload=Yes if you want to count reload.
    
    Also if you do so, your counter users will have an option to ignore or 
    count reload with the parameter 
    reload=T or F.
 17. Is there any way to compile the counter without running
    the configuration scripts?
    
    
    17. Is there any way to compile the counter without running
    the configuration scripts?
    
    
    
    Answer: 
    It's simple in Count 2.5+.
    Just compile with defaults settings as described in the section
    Steps to compile and install of the 
    counter main page.
 18. Why do I have to add a line to the config file every time I add 
    a new virtual host?
    
    
    18. Why do I have to add a line to the config file every time I add 
    a new virtual host?
    
    
    
    Answer: It's a security feature, to prevent users on other systems
    from using your host as a "counter server".  For information on 
    automatically recognizing new virtual hosts as they're added, see the 
    answer to question 9.
    (Contributed by: Sean Reifschneider
            jafo@gateway.tummy.com)
 19. The counter does not seem to increment, what's going on?
    
    
    19. The counter does not seem to increment, what's going on?
    
    
    
    Answer:
    It's a feature in the new release. It will only increment, if the visitor's
    IP and the one in the datafile (last visitor) differs. It's there to handle
    people pressing the "Reload" button continuously.
    If you do not like it, you can turn it off at compile time. Please read
    the answer to Question 15.
 20. How do I configure the counter on virtual servers?
    
    
    20. How do I configure the counter on virtual servers?
    
    
    
    Answer:
    After running Count-config normally, edit
    src/config.h and change any references to directory paths in
    line 13,15, 16 and 17 to include the part of the path your virtual server
    can see. For example, if the real path is
    /user/mysite/local/etc/httpd/cgi-bin, while the virtual
    server might only access /usr/local/etc/httpd/cgi-bin.
    
(Contributed by: Jim Morrissey j.morrissey@videowaves.com.)
 21. The counter seems to reset to zero occasionally, what's going on?
    
    
    21. The counter seems to reset to zero occasionally, what's going on?
    
    
    
    
    Answer:
    If you are using Count 2.5+, it should not happen. Only make sure that 
    the disk partition where the datafile is located is not a NFS mounted 
    partition. If it is NFS mounted, you might find counter process is 
    hanging and consuming CPU and the data files are getting clobbered.
    The reason for this is, file locking is not reliable on all Unix over NFS.
 22: While compiling, I get a message
    
    
    22: While compiling, I get a message  sh: ar: not found, 
           what's the problem?
    
    
    
    
    Answer:
     You see this message, because the location of the program ar is not in
your PATH. You need to find out the location of ar first. To do this at the
shell prompt type:
       find / -name ar -print
If you are on a Solaris box, the output might look like: 
/usr/ccs/bin/ar .
Here /usr/ccs/bin is the directory where ar is located.
You need to add this location to  your path. To do this, if your shell is csh
or its variant, edit the file .cshrc and put a like like:
       set path = ( $path /usr/ccs/bin )
Then source the file by typing:  source .cshrc
    PATH=$PATH:/usr/ccs/bin
    export PATH
Then source the file by typing: . .bashrc
 23. How to stop the browsers to cache the counter image?
    
    
    23. How to stop the browsers to cache the counter image?
    
    
    
    Answer:
    If you want the browser to request the server for counter image each time
    you visit the page, use the parameters cache=F&expires=0.
    If the browser respects HTTP specification, it will not cache the image.
    You might want to do this if you're using the counter as clock to make sure
    the time is shown correctly each time someone visits the page.
    The downside to that is that the counter program gets executed each 
    time as browser does not cache the image. Another tick is to change 
    something in the parameter, like change ft or dd, so that the browser 
    will notice the tag is changed and ask the server for the image.
 24. Is there any way to stop showing error messages to the browsers?
    
    
    24. Is there any way to stop showing error messages to the browsers?
    
    
    
    Answer:
    Yes it's possible in Count 2.5+. It is specified in the
    configuration file with the keyword
    show_error_messages_to_browsers=Yes or No in the options section.
 25. How to make a counter hidden?
    
    
    25. How to make a counter hidden?
    
    
    
    Answer:
    Use the parameter sh=F. If you use the 
    option sh=F, the counter
    program sends a 1 pixel by 1 pixel  transparent GIF image to the 
    browser, which gives an illusion of hidden counter. If you want to monitor
    the hits from another page, use the option incr=F and df=the_data_file.
 
 26. Can this program act as a text counter?
    
    
    26. Can this program act as a text counter?
    
    
    
    Answer:
    No. When you use the tag <img src= tag, the browser expects an image.
    However you can use digits which look like text.
 27. How does this program display time of various time zones?
    
    
     27. How does this program display time of various time zones?
    
    
    
    Answer:
    This program uses offset from Greenwich Mean Time (GMT) to show
    time of various time zones. For example, to display US Eastern Standard
    Time using offset from GMT, use the parameter timezone like
    timezone=GMT-0500. Note, you 
    must use 4 digit offset.
 28. How to display countdown?
    
    
     28. How to display countdown?
    
    
    
    Answer: If you want to display countdown to year 2000 (a popular
     demand) just specify 
    display=countdown&
    dd=cd
    Note: we specified dd=cd, as the default digit styles cd has all
    the necessary image segments to display countdown.
    To display countdown to a specific date (past or future) use the
    parameter cdt to specify the target date. 
    If you like to show the current date with the countdown, use the parameter
    sfd. If you want to change the color of the
    from date, use the parameter prgb parameter.
    By default the countdown is calculated in reference to server time (
    where the Count.cgi program is running). If you want display in 
    reference to other timezonze (e.g. GMT) use the timezone parameter.
    Note: do not forget to use the
    parameters cache=F&expires =0 to force the browser to load a 
    fresh countdown image instead of loading it from cache. 
 29. I get a error message "Counter datafile "x/y/foo.dat
    must be created first!", how to create the file?
    
    
     29. I get a error message "Counter datafile "x/y/foo.dat
    must be created first!", how to create the file?
    
    
    
    Answer: In Unix, at the shell prompt type:
    touch /x/y/foo.dat
    Give read/write permission (600) to 
    the user running the web server.
    echo "1" > X:\x\y\foo.dat
Replace X: with the appropriate drive letter. If you see forward and back
slash combination in the error message, do not worry, it's OK.
 My clock shows 100 as year, what's going on?
    
    
    My clock shows 100 as year, what's going on?
    
    
    
    Answer: You are using an older version of the counter. It was fixed
    in Count 2.5 long time ago. Please update to the latest version.
 How can I tell what version of counter I'm running?
    
    
    
    How can I tell what version of counter I'm running?
    
    
    
    
    Answer: From command line type:
$ Count.cgi -version Count version Count.cgi 2.5,(Apr-08-2001-1) By Muhammad A Muquit http://www.muquit.com/muquit/software/Count/Count.htmlor via web:
<img src="/cgi-bin/Count.cgi?display=version">
Please make sure you're using the latest release of the counter.