|
WWW Count
Frequently Asked Questions
- Is there a support group or mailing list?
- My CGI scripts don't work. What's wrong?
- I get errors while compiling on SGI, what's the problem?
- Why does the counter show "888888" all the time?
- The counter does not compile on UnixWare with cc, why?
- The counter does not compile on Solaris with cc, why?
- I get an error message "Could not write to counter
file: x/y/sample.dat". What's the problem?
- What does it mean when you say "user running the web
server"?
- The counter seems to display random number. What's the
problem?
- I get an error message "Host foo.com is not
authorized". What's the problem?
- What's the format of the data file?
- How can I reset the counter?
- How does this program handle remote execution?
- What's the maximum number of hits the counter can handle?
- I sent you so many mails, how come you never respond?
- How can I turn off "Reload Ignore" feature?
- Is there any way to compile the counter without running the
configuration scripts?
- Why do I have to add a line to the config file every time I
add a new virtual host?
- The counter does not seem to increment, what's going on?
- How do I configure the counter on virtual servers?
- The counter seems to reset to zero occasionally, what's
going on?
- While compiling, I get a message
sh: ar: not found,
what's the problem?
- How to stop the browsers to cache the counter image?
- Is there any way to stop showing error messages to the
browsers?
- How to make a counter hidden?
- Can this program act as a text counter?
- How does this program display time of various time zones?
- How to display countdown?
- I get a error message "Counter datafile "x/y/foo.dat
must be created first!", how to create the file?
- My clock shows 100 as year, what's going on?
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 send a message to wwwcount-request@pcraft.com
with subscribe your-email@domain.com in the BODY of the message (no
subject is needed). You also can browse the mailing list archive at: http://wwwcount.yeehaw.net.
NOTE: 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, ashley@photocraftlab.com for creating
and maintaining the list.
Also, sometimes After 11 PM US EST, I stay on-line for a little while in IRC
channel #wwwcount on EFnet.
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?
Answer: In SGI you might get errors like:
: 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?
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?
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?
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?
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"?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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?
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 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
If your shell is sh, bash or a variant of sh, edit the file .profile or .bashrc
and put a line like:
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?
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?
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?
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?
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?
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?
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?
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.
In NT, go to Command Prompt from Start menu, at the prompt type:
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?
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.
Back to Counter page
|