Book: LPI Linux Certification in a Nutshell
Section: Chapter 20.  Networking Services (Topic 1.13)



20.3 Objective 3: Operate and Perform Basic Configuration of Apache

Apache is a phenomenal open source success story. Despite the availability of commercial web servers, Apache continues to be the most popular web server on the Internet. It is also widely deployed inside corporate networks for managing internal communications. Apache is known as an HTTP daemon, or httpd .

Because it is so popular and likely to be found on just about every Linux server, understanding the basics of Apache administration is required for Exam 102.

20.3.1 Configuring Apache

Apache is configured using one or more text files. The names and locations of Apache configuration files vary by distribution. If you acquire Apache as source code, compile it, and install it, you get the default setup as provided with the software. If you use the preconfigured Apache version that came with a Linux distribution, things may be somewhat different. A typical Apache configuration is controlled by three files[2] located in /etc/httpd/conf or /usr/local/apache/conf, depending on how Apache is installed:

[2] To simplify editing during Apache configuration, some distributions concatenate httpd.conf, srm.conf, and access.conf into a single httpd.conf file.

httpd.conf

This file contains general attributes about the Apache server, such as the name of the administrator, the username under which the server should execute, how logging is handled, and others.

srm.conf

This file is used to specify some local parameters about your system and your web site. Included here are definitions for the top of the HTML tree, where CGI programs are located, languages, and more.

access.conf

This is a security definition file, which controls access to the server by client browsers.

Configuration is managed through configuration directives, one per line, in each of the files. The configuration files can also contain comments, which begin with a #. Directives are in the form:

DirectiveName [argument-list]

For example, the DocumentRoot directive, which tells Apache where the top of the HTML tree is located, might look like this:

DocumentRoot /home/httpd/html

Here are some basic Apache configuration directives:

ServerType

This directive can be either standalone or inetd. If you prefer to have inetd listen for inbound HTTP requests, set this to inetd and configure inetd.conf as needed. For web servers that see a significant amount of traffic, standalone is often specified, making Apache independent of inetd, and running indefinitely.

Port

This parameter defines the port to which Apache listens. The default HTTP port is 80.

User and Group

These two parameters determine the name and group, respectively, that Apache executes under. Typical examples are nobody, www, and httpd.

ServerAdmin

This directive specifies the email address of the administrator, such as root@localhost.

DocumentRoot

This directive tells Apache where to find the top of the HTML tree, such as /home/httpd/html.

UserDir

System users may use a standard personal subdirectory for their own HTML documents. This directive determines the name of that directory. It is often set to public_html. Files for user jdean would be accessed using a URL of http://localhost/~jdean.

Of course, there are many more, and additional syntax is used when necessary. In access.conf, groups can be delineated by keywords that look like HTML. Directives in such a group affect only a subset of the content served by Apache. For example, the following group of directives controls CGI execution in /home/httpd/cgi-bin:

<Directory /home/httpd/cgi-bin>
AllowOverride None
Options ExecCGI
</Directory>

On the Exam

The LPI exam Objectives don't specify particular Apache configuration directives, but you should be prepared to interpret various configuration examples and have knowledge of the three configuration files and their likely locations.

20.3.2 Starting and Stopping Apache

Typically, Apache is managed through the runlevel system and the series of scripts and links in /etc/rc.d. See Chapter 5 for information on starting and stopping services such as Apache.