我试图用一个相当接近标准的configuration文件启动一个Apache 2.2服务器的实例。 我做了一个小小的改动,因为我希望Apache能够提供一个单独的XML文件,与其他所有的文件分开,纯粹是为了在本地机器上进行testing。 改变是我把它插入到httpd.conf :
# 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>
试图启动Apache导致了这一点:
(OS 10049)请求的地址在上下文中无效。 :make_sock:无法绑定到地址10.11.12.13:85
没有可用的sockets,closures
无法打开日志
没有Apache的实例正在运行。 没有什么是使用端口85(或80或8080)。 10.11.12.13:85没什么特别的; 我只是认为这是一个不会干涉任何事情的知识产权。
这个错误是什么意思,我该如何解决?
有可能是你指向的IP地址是通用的。 例如:-10.1.1.233:443而且出现错误>>>(OS 10049)请求的地址在上下文中无效。 :make_sock:无法绑定到地址10.1.1.233:443
在httpd-ssl.conf中注释该行并启动Apache
确保在networking接口上configuration了IP。
要在Windows 7上将IP添加到networking接口,您可以按照http://www.pctips3000.com/how-to-assign-more-than-one-ip-address-to-one-lan-in中的HOWTO -Windows 7的/
如果您有DHCP,那么您可能需要执行一些registry技巧,例如: http : //www.petri.co.il/configure_tcp_ip_to_use_dhcp_and_a_static_ip_address_at_the_same_time.htm或仅使用静态IP分配。
在CMD中 ,键入: ipconfig ,并查看您的本地IP地址。 然后设置这个而不是未知的10.11.12.13:85
由于没有人解释发生了什么事情:
Apache无法绑定到您提供的本地IP地址,因为计算机没有configuration该IP地址。
有几种方法可以解决这个问题:
您可以Listen计算机实际拥有的IP地址。 但请记住,指定一个IP地址会限制传入的连接,并且只有其他可以到达该地址的主机才能访问该服务器,并且只能通过该地址访问该服务器。 对于互联网上的生产networking服务器,这几乎总是不是你想要的,所以…
不要在Listen指令中指定IP地址。 然后,Apache将监听传入连接的所有接口。 如果连接来自哪里(如可公开访问的Web服务器或防火墙是否合适),则这是最简单的解决scheme。
为了find一个套接字绑定到你可以指向本地机器地址。 当您closures和打开电脑时,这似乎会改变。 要find正在使用的本地地址,进入控制面板,networking和共享中心,点击无线连接,然后在“详细信息”button上,IPv4地址应该是本地机器地址。 你可以把这个地址和一个像8088这样的好套接字添加到httpd.conf中作为“Listen”参数 – 例如Listen 127.0.0.1:8088(这是一个默认的本地主机,但你的IP将不同) – 你可以列出多个这些地址,它将绑定到一个免费的。 这在Windows中工作。 然后将相同的IP地址添加到主机文件。