Starting Apache

Starting Apache

On Windows, Apache is normally run as a service on Windows

NT, or as a console application on Windows 95. This does not

apply in its full extend for the Cygwin platform. For details,

is run as a daemon which executes continuously in the

background to handle requests. It is possible to have Apache

invoked by the Internet daemon inetd each time a

connection to the HTTP service is made using the ServerType directive, but

the configuration file is the default of 80 (or any other port

below 1024), then it is necessary to have root privileges in

order to start Apache, so that it can bind to this privileged

port. Once the server has started and completed a few

preliminary activities such as opening its log files, it will

launch several child processes which do the work of

listening for and answering requests from clients. The main

httpd process continues to run as the root user,

but the child processes run as a less privileged user. This is

The first thing that httpd does when it is

invoked is to locate and read the configuration file

httpd.conf. The location of this file is set at

compile-time, but it is possible to specify its location at run

time using the -f command-line option as in

/usr/local/apache/bin/httpd -f

/usr/local/apache/conf/httpd.conf

As an alternative to invoking the httpd binary

directly, a shell script called apachectl is provided which

can be used to control the daemon process with simple commands

such as apachectl start and apachectl

If all goes well during startup, the server will detach from

the terminal and the command prompt will return almost

immediately. This indicates that the server is up and running.

You can then use your browser to connect to the server and view

the test page in the DocumentRoot directory

and the local copy of the documentation linked from that

If Apache suffers a fatal problem during startup, it will

write a message describing the problem either to the console or

exiting. One of the most common error messages is "Unable

to bind to Port ...". This message is usually caused by

Trying to start the server on a privileged port when not

logged in as the root user; or

Trying to start the server when there is another instance

of Apache or some other web server already bound to the same

For further trouble-shooting instructions, consult the

If you want your server to continue running after a system

reboot, you should add a call to httpd or

apachectl to your system startup files (typically

rc.local or a file in an rc.N

directory). This will start Apache as root. Before doing this

ensure that your server is properly configured for security and

access restrictions. The apachectl script is

designed so that it can often be linked directly as an init

script, but be sure to check the exact requirements of your

Additional information about the command-line options of httpd and apachectl as well as other

support programs included with the server is available on the

There is also documentation on all the modules included with the Apache distribution