在Windows 7上安装Apache

5

我是Apache的新手。我正在学习...... 在安装完之后,当我尝试启动服务时,出现了以下错误。

Apache服务报告了以下错误:

无法打开日志文件。

Apache服务报告了以下错误:

没有可用的侦听套接字,正在关闭服务。

Apache服务报告了以下错误:

(OS 10048)每个套接字地址(协议/网络地址/端口)通常只允许使用一次。: make_sock:无法绑定到地址0.0.0.0:80。

Apache服务报告了以下错误:

httpd.exe:无法确定服务器的完全限定域名,正在使用192.168.1.6作为ServerName。


您可以安全地忽略最后一个错误,它非常普遍,不会影响服务器的使用。如果您真的不想看到它,请在 apache2.conf 中添加一行 ServerName 192.168.1.6 - Delan Azabani
@Delan:你是说这是因为Apache不知道要绑定到哪个接口,所以选择“0.0.0.0”吗?我不这么认为。我认为问题是OP已经有一个在端口80上监听的服务器,可能是一个IM客户端(Skype在启动时会监听端口80和443)。 - Adrian Pronk
如果现在已经解决了,@Adrian为什么不把你的评论添加为答案,这样@Huzaifa就可以将其标记为已接受。 - Pekka
@Delan:抱歉,是我的错误。我以为你指的是之前灰色的错误。一开始我没有看到最后一个错误。 - Adrian Pronk
显示剩余4条评论
9个回答

12
以下错误通常意味着另一个程序正在监听HTTP端口(80)。
(OS 10048)每个套接字地址(协议/网络地址/端口)通常只允许使用一次:make_sock:无法绑定到地址0.0.0.0:80。
根据我的经验,即时通讯(聊天)客户端喜欢连接到80端口。
从命令提示符(cmd.exe)中运行以下命令:
netstat -an
查看80端口上是否有侦听器(查找一行内容为“)。
   TCP    0.0.0.0:80           0.0.0.0:0              LISTENING
   ===           ====

重要的是TCP和80端口。如果你找到了什么,你需要使用类似TcpView这样的工具来跟踪它。


这是一个非常棒的工具!非常感谢你。 - NobleUplift
我只是作为评论添加一下(因为这是一个边缘情况),如果您的应用程序使用一个端口进行SSL,另一个端口进行常规HTTP,则此类错误可能由错误配置引起,其中SSL和HTTP端口相同。这样,应用程序会阻止自己的端口。因此,如果您遇到此问题但没有其他应用程序阻止它,请考虑配置错误。 - pzkpfw

5
如果Skype是您的问题,而且似乎通常都是这样,请更改Skype的端口使用。
点击Skype中的工具, 点击选项, 点击高级, 点击连接。 在连接中,有使用另一个端口的选项。我使用一个高编号的端口,例如65432,然后取消选择端口80和443的备用使用。 关闭并重新启动Skype。

3

修改C:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd文件可以解决问题。

如果你在安装过程中遇到问题,注意可能会出现一些错误,例如“未安装服务”,这是因为Apache试图与另一个Web服务器或应用程序共享端口80,例如本地安装的防火墙应用程序。为了解决这个问题,您可以告诉Apache使用不同的端口。在conf子目录中打开您的httpd.conf文件(默认情况下为C:\Program Files\Apache Software Foundation\Apache2.2\conf),并找到以下行:

# Listen: Allows you to bind Apache to specific IP addresses and/or
# ports, instead of the default. See also the < VirtualHost >
# directive.
#
# Change this to Listen on specific IP addresses as shown below to
# prevent Apache from glomming onto all bound IP addresses (0.0.0.0)
#
#Listen 12.34.56.78:80
Listen 80
Change the last line of this block to read:
Listen 8080

3

Skype使用80端口,尝试注销并关闭程序...现在运行Apache。


2

如果你使用的是Windows操作系统,并认为Skype不是罪犯,那么你可能想要检查任务管理器,并勾选“显示所有用户的进程”,确保没有 httpd.exe 的条目。否则,结束该进程即可解决我的问题。


1
请注意,不仅 http 端口 80,您的 SSL 端口 443 也可能被其他服务或软件使用。 我在我的电脑上安装了 vmware workstation,因此由 Vmware Workstation 启动的进程正在使用 ssl 端口 443。 在我的情况下,它是 vmware-hostd.exe,它正在利用 ssl 端口 443。
尝试关闭 vmware-hostd.exe 或者简单地更改您的 ssl-httpd.conf 并将 Listen 从 443 修改为 8080 或其他端口号。 在选择端口号时,请确保您不输入任何其他软件可以使用的端口号。

1

1
端口80冲突。有许多知名的Windows程序使用端口80:
IIS
最有可能的罪犯是Microsoft Internet Information Server。在Windows 7/Vista上,通过命令行停止服务:
net stop was /y
如果需要,在Windows/Vista上通过命令行重新启动服务:
net start was /y

1
在配置文件中将所有指向 Apache 路径的地方(例如:“C:/Users/xxxx/Desktop/Apache Software Foundation/”)更改为新位置(如果您通过复制粘贴移动了 Apache 安装目录),这解决了我的问题。希望它也能帮到你。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接