B.9 Address Already in Use
If, when
attempting to start your Apache
server, you get the following error message:
[Thu May 15 01:23:40 2003] [crit] (98)Address already in use: make_sock: could not
bind to port 80
One of three things is happening:
You are attempting to start the server as a nonroot user. Become the
root user and try again. There is already some process running (perhaps another Apache server)
using port 80. Run netstat, or perhaps look at the
process list and kill any process that seems to fill this role. You have more than one Listen directive in your
configuration file pointing to the same port number. Find the
offending duplicate directive and remove it.
In the case of the first condition, you will need to become the root
user in order to start Apache. By long tradition, only the root user
may bind to any port lower than 1025. Since Apache typically runs on
port 80, this requires root privileges.
The second condition can be a little trickier. Sometimes a child
process will refuse to die and will remain running after Apache has
been shut down. There are numerous reasons this might happen. Most of
the time, you can kill this process forcibly using
kill or kill -9 while logged in
as root. As long as this process is running and has the port
occupied, you will be unable to start anything else wanting to bind
to that same port.
In the case of the third condition, the second
Listen directive attempts to bind to port 80,
which has already been taken by the first Listen
directive. Simply removing one of the Listen
directives will clear up this problem.
|