I’m trying to start an instance of Apache 2.2 server with a fairly-close-to-standard configuration file. I made one small change because I want Apache to serve a single XML file separately from everything else it does, purely for testing on my local machine. The change is that I inserted this into
# Based on http://httpd.apache.org/docs/2.2/vhosts/examples.html Listen 10.11.12.13:85 NameVirtualHost 10.11.12.13:85 <VirtualHost 10.11.12.13:85> DocumentRoot "C:\foo\bar" ServerName www.MyCompanyMyProjectFooBarTestURL.com </VirtualHost>
Attempting to start Apache resulted in this:
(OS 10049)The requested address is not valid in its context. : make_sock: could not bind to address 10.11.12.13:85
no listening sockets available, shutting down
Unable to open logs
No instances of Apache are running. Nothing is using port 85 (or 80 or 8080). There’s nothing special about
10.11.12.13:85; I just figured that was an IP that wouldn’t interfere with anything.
What does this error mean, and how can I resolve it?
Since nobody has yet explained what is going on:
Apache cannot bind to the local IP address you gave, because the computer is not configured with that IP address.
There are a couple of ways to solve this:
Listento an IP address that the computer actually has. But keep in mind that specifying an IP address restricts incoming connections, and only other hosts which can reach that address will be able to access the server, and only via that address. For a production web server on the Internet, this is almost always not what you want, so…
Don’t specify an IP address in the
Listendirective. Apache will then listen to all interfaces for incoming connections. If it doesn’t matter where the connections come from, such as a publicly accessible web server or one which is properly firewalled, then this is the simplest solution.
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.