home page named index.html
as a test under the /var/www/html/usage
directory. The proper way to run Apache is to set system initialization to have the server run after booting, network configuration, and any firewall configuration. See Chapter 11, 'Automating Tasks,' for more information about how Fedora boots.
It is time to start Apache up for the first time. The following sections show how to start and stop Apache, or configure Fedora to start or not start Apache when booting.
Starting the Apache Server Manually
You can start Apache from the command line of a text-based console or X terminal window, and you must have root permission to do so. The server daemon, httpd
, recognizes several command-line options you can use to set some defaults, such as specifying where httpd
reads its configuration directives. The Apache httpd
executable also understands other options that enable you to selectively use parts of its configuration file, specify a different location of the actual server and supporting files, use a different configuration file (perhaps for testing), and save startup errors to a specific log. The -v
option causes Apache to print its development version and quit. The -V
option shows all the settings that were in effect when the server was compiled.
The -h
option prints the following usage information for the server (assuming that you're running the command as root):
# httpd -h
Usage: httpd [-D name] [-d directory] [-f file]
[-C 'directive'] [-c 'directive']
[-k start|restart|graceful|stop]
[-v] [-V] [-h] [-l] [-L] [-t]
Options:
-D name : define a name for use in <IfDefine name> directives
-d directory : specify an alternate initial ServerRoot
-f file : specify an alternate ServerConfigFile
-C 'directive' : process directive before reading config files
-c 'directive' : process directive after reading config files
-e level : show startup errors of level (see LogLevel)
-E file : log startup errors to file
-v : show version number
-V : show compile settings
-h : list available command-line options (this page)
-l : list compiled in modules
-L : list available configuration directives
-t -D DUMP_VHOSTS : show parsed settings (currently only vhost settings)
-t : run syntax check for config files
Other options include listing Apache's
The -t
option is used to check your configuration files. It's a good idea to run this check before restarting your server, especially if you've made changes to your configuration files.
Such tests are important because a configuration file error can result in your server shut ting down when you try to restart it.
When you build and install Apache from source and don't use Fedora's Apache RPM files, start the server manually from the command line as root (such as when testing). You do this for two reasons:
> The standalone server uses the default HTTP port (port 80), and only the super- user can bind to Internet ports that are lower than 1024.
> Only processes owned by root can change their UID and GID as specified by Apache's User
and Group
directives. If you start the server under another UID, it runs with the permissions of the user starting the process.
Note that although some of the following examples show how to start the server as root, you should do so only for testing after building and installing Apache. Fedora is set up to run web services as the apache
user if you use Fedora RPM files to install Apache.
Using /etc/rc.d/init.d/httpd
Fedora uses the scripts in the /etc/rc.d/init.d
directory to control the startup and shut down of various services, including the Apache web server. The main script installed for the Apache web server is /etc/rc.d/init.d/httpd
, although the actual work is done by the apachectl
shell script included with Apache.
/etc/rc.d/init.d/httpd
is a shell script and isn't the same as the Apache server located in /usr/sbin
. That is, /usr/sbin/httpd
is the program executable file (the server); /etc/rc.d/init.d/httpd
is a shell script that uses another shell script, apachectl
, to control the server. See Chapter 11 for a description of some service scripts under /etc/rc.d/init.d
and how the scripts are used to manage services such as httpd
.
You can use the /etc/rc.d/init.d/httpd
script and the following options to control the web server:
> start
— The system uses this option to start the web server during bootup. You, as root, can also use this script to start the server.
> stop
— The system uses this option to stop the server gracefully. You should use this script, rather than the kill command, to stop the server.
> reload
— You can use this option to send the HUP
signal to the httpd
server to have it reread the configuration files after modification.
> restart
— This option is a convenient way to stop and then immediately start the web server. If the httpd
server isn't running, it is started.
> condrestart
— The same as the restart
parameter, except that it restarts the httpd
server only if it's actually running.
> status
— This option indicates whether the server is running; if it is, it provides the various PIDs for each instance of the server.
For example, to check on the status of your server, use the command
# /etc/rc.d/init.d/httpd status
This prints the following for me:
httpd (pid 15997 1791 1790 1789 1788 1787 1786 1785 1784 1781) is running...
This indicates that the web server is running; in fact, 10 instances of the server are currently running in this