2.1. What Is a Web Site?
It might be
a good idea to get a firm idea of what, in the Apache business, a
web site is: It is a directory somewhere on the
server, say, /usr/www/site.for_instance. It
contains at least three essential subdirectories:
- conf
Contains the
Config file, which tells Apache how to respond to different kinds of
requests
-
htdocs
Contains the documents, images, data, and so forth that you want to
serve up to your clients
-
logs
Contains the log files that record what happened
Most of this book is about writing the Config file, using
Apache's 150 or so directives. Nothing happens until you start Apache. If the
conf subdirectory is not in the default location
(it usually isn't), you need a flag that tells Apache where it
is.
httpd -d /usr/www/site.for_instance
apache -d c:/usr/www/site.for_instance
Notice that the executable names are different under Win32 and Unix.
The Apache Group decided to make this change, despite the
difficulties it causes for documentation, because "httpd"
is not a particularly sensible name for a specific web server, and,
indeed, is used by other web servers. However, it was felt that the
name change would cause too many backward compatibility issues on
Unix, and so the new name is implemented only on Win32.
Also note that the Win32 version still uses forward slashes rather
than backslashes. This is because Apache internally uses forward
slashes on all platforms; therefore, you should never use a backslash
in an Apache Config file, regardless of the operating system.
Once you start the executable, Apache runs silently in the
background, waiting for a client's request to arrive on a port
to which it is listening. When a request arrives, Apache either does
its thing or fouls up and makes a note in the log file.
What we call "a site" here may appear to the outside
world as many, perhaps hundred, of sites, because the Config file can
invoke many virtual hosts.
When you are tired of the whole Web business, you kill Apache (see
Section 2.4, "Setting Up a Unix Server ", later in this chapter) and the
computer reverts to being a doorstop.
Various issues arise in the course of implementing this simple
scheme, and the rest of this book is an attempt to deal with some of
them. As we pointed out in the preface, running a web site can
involve many questions far outside the scope of this book. All we
deal with here is how to make Apache do what you want. We often have
to leave the questions of what you want to do and why you might want to do it to a higher tribunal.