Configuring an Apache HTTP Server with a Red Hat distro would have been a painful task several releases ago. But with the release of Red Hat 8, getting Apache to play nice is a piece of cake.

The Apache HTTP Server has been graciously updated to version 2.0, and the package has been renamed httpd. You can use the HTTP Configuration Tool to simplify setup. If you’ve used the tool in earlier versions of Red Hat Linux, you should feel right at home in using the latest version. Your Red Hat manuals can fill you in on the details of migrating from earlier versions.

Previously, you had to contend with the srm.conf and the access.conf configuration files, but now you have to work only with /etc/httpd/conf/httpd.conf to set up and maintain your system. Just ignore srm.conf and access.conf and leave them empty unless you have some particular reason for using them.

Stick with the GUI
The HTTP Configuration Tool offers a graphical user interface that makes it easy to configure the httpd.conf file for the Apache Server. It allows you to configure directives such as virtual hosts, logging attributes, and the maximum number of connections, among other things. To access the tool, click on the Main menu and select Server Settings | HTTP Server. You can also launch the tool from a shell prompt by typing redhat-config-httpd.

Configuration overview
To begin the configuration for the first time, you’ll use the basic settings in the Main tab, shown in Figure A. The Virtual Hosts tab lets you configure the default virtual host. If you want to serve more than one URL or virtual host, you can use this tab to add more. The Server tab enables you to make any desired changes or additions to your server configuration. And in the Performance Tuning tab, you can configure the connections settings.

Before saving your settings, you should consult the Red Hat Linux 8.0 Official Red Hat Linux Customization Guide. There are a number of issues covered there that may apply to your particular situation. Once you are satisfied that everything is correct, you can save your settings using the HTTP Configuration Tool.

Figure A
Basic settings

Don’t overlook these important settings
Although the HTTP Configuration Tool makes configuring Apache much easier than it used to be, it’s still possible to overlook important settings. To avoid having to search for and correct mistakes later, take your time and check your settings twice before saving them. Remember that the tool is “directive driven,” which gives you a lot of control over how the system is set up.

For example, in the Main tab, you must enter a fully qualified domain name (you have the legal right to use it) in the Server Name text box. Whatever name you enter corresponds to the ServerName directive in httpd.conf. Of course, the ServerName directive simply sets the hostname of the Web server. If you don’t define a server name, the Web server will attempt to assign one from the IP address of the system. You have some flexibility here. You can name your server, for example, even if your server’s real DNS name is something like

Let’s take a look at some of the key settings on each tab in the HTTP Configuration Tool.

The Main tab
In the Main tab, you’ll need to enter the e-mail address of the person who maintains the Web server in the Webmaster Email Address text box. This entry corresponds to the ServerAdmin directive in httpd.conf. The directive primarily provides the user with an address they can use to report problems to the server’s administrator. In most cases, this will probably be you. The default address for this option is root@localhost, but you may want to use something more personalized, such as lizlaker@localhost.

Available addresses
You may need to pay particular attention to the Available Addresses area in the Main tab, where you will define the ports on which the server will accept incoming requests. If you look in your httpd.conf file, you will see this option listed as the Listen directive. By default, Red Hat has the HTTP server listen to port 80 for nonsecure Web communications. If you want to change this, click the Add button beside the Available Addresses area to open the dialog box shown in Figure B. Here, you can define additional ports for accepting requests. You can choose to Listen to all addresses or specify an IP address over which the server will accept connections. To prevent a DNS lookup failure, use an IP address instead of a domain name. You can also edit your entries if you make a mistake.

Figure B
Available addresses

The Virtual Hosts tab
In the Virtual Hosts tab (Figure C), you can configure the settings for your Web server. The Virtual Hosts tab also enables you to run different servers for different IP addresses, different host names, or different ports on the same Linux machine. A default virtual host is defined, but you can configure this for your own needs. If you need more information about virtual hosts, you can find it here.

Figure C
Virtual Hosts tab

The Server tab
The options in the Server tab allow you to configure basic server settings, but in most cases, the default settings will be appropriate. Keep in mind that you shouldn’t set the User directive to root unless you know what you are doing because you might end up with large security holes in your server.

The Performance Tuning tab
The Performance Tuning tab lets you set the maximum number of child server processes you want and configure the Apache HTTP Server options for client connections. In most situations, the default settings will suffice. Be careful about altering these settings, since you might compromise server performance. Also remember that you can’t set the Max Number Of Connections to more than 256 without recompiling. This option corresponds to the MaxClients directive.

Another minor concern is that if you set the Persistent Connections to a high value, you may cause the server to slow down considerably due to waiting processes. If you notice an appreciable slowness on your system, this is one of the primary places to start looking for the cause.

Rest easy
Once you’ve entered all your settings and you’re satisfied that all the configuration changes and additions are correct, you can save your settings. If you decide not to save the configuration, just click Cancel; otherwise, click OK and then click Yes. Your configuration will be saved in /etc/httpd/conf/httpd.conf, but remember that this action overwrites any previous httpd.conf file you have saved there.

At this point, you should use a good text editor and view the contents of httpd.conf to get familiar with your system configuration. Now that you have entered all the information needed to run your Apache server, you should have fewer sleepless nights.