71

在安装 Apache2 期间,我在 cmd 窗口中收到以下消息:

安装Apache2.2服务 Apache2.2服务安装成功。测试 httpd.conf....

必须先纠正此处报告的错误,然后才能启动服务。httpd.exe:无法可靠地确定服务器的完全限定域名,使用 192.168.1.3 作为 ServerName (OS 10048) 通常只允许使用每个套接字地址(协议/网络地址/端口)。: make_sock: 无法绑定到地址 0.0.0.0:80 没有可用的监听套接字,正在关闭 无法打开日志 请注意上面的错误或消息,然后按 键退出。24...

安装后一切看起来都很好,但事实并非如此。如果我尝试启动服务,则会收到以下消息:

Windows 无法在本地计算机上启动 Apache2。有关详细信息,请查看系统事件日志。如果这是一项非 Micorsoft 服务,请联系服务供应商,并参阅特定于服务的错误代码 1。

Apache2版本是2.2.9

有没有人有同样的问题,或者可以帮助我。

4

20 回答 20

139

还有一些其他程序在监听 80 端口,通常的嫌疑人是

  1. Skype(监听端口 80)
  2. NOD32(将 Apache 添加到 IMON 例外列表以允许 apache 绑定)
  3. 其他一些杀毒软件(同上)

纠正它的方法是关闭使用端口 80 的程序,或者将其配置为使用不同的端口,或者使用 httpd.conf 中的 Listen 指令将 Apache 配置为侦听不同的端口。在防病毒的情况下,配置防病毒以允许 Apache 绑定到您选择的端口。

诊断哪个应用程序(如果有)绑定到端口 80 的方法是使用这些选项运行 netstat,在本地 IP 地址(第二列)旁边查找 :80 并找到 PID(最后一列)。然后,在任务管理器上,您可以找到哪个进程具有您在上一步中获得的 PID。(您可能需要在任务管理器上添加 PID 列)

C:\Users\vinko>netstat -ao -p tcp

Conexiones activas

  Proto  Dirección local          Dirección remota        Estado           PID
  TCP    127.0.0.1:1110         127.0.0.1:51373        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51379        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51381        ESTABLISHED     388
  TCP    127.0.0.1:1110         127.0.0.1:51382        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51479        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51481        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51483        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51485        ESTABLISHED     388
  TCP    127.0.0.1:1110         127.0.0.1:51487        TIME_WAIT       0
  TCP    127.0.0.1:1110         127.0.0.1:51489        ESTABLISHED     388
  TCP    127.0.0.1:51381        127.0.0.1:1110         ESTABLISHED     5168
  TCP    127.0.0.1:51485        127.0.0.1:1110         ESTABLISHED     5168
  TCP    127.0.0.1:51489        127.0.0.1:1110         ESTABLISHED     5168
  TCP    127.0.0.1:59264        127.0.0.1:59265        ESTABLISHED     5168
  TCP    127.0.0.1:59265        127.0.0.1:59264        ESTABLISHED     5168
  TCP    127.0.0.1:59268        127.0.0.1:59269        ESTABLISHED     5168
  TCP    127.0.0.1:59269        127.0.0.1:59268        ESTABLISHED     5168
  TCP    192.168.1.34:51278     192.168.1.33:445       ESTABLISHED     4
  TCP    192.168.1.34:51383     67.199.15.132:80       ESTABLISHED     388
  TCP    192.168.1.34:51486     66.102.9.18:80         ESTABLISHED     388
  TCP    192.168.1.34:51490     74.125.4.20:80         ESTABLISHED     388

如果您想禁用 Skype 监听端口 80 和 443,您可以点击链接http://www.mydigitallife.info/disable-skype-from-using-opening-and-listening-on-port-80-and -443-on-local-computer/

于 2008-10-12T16:21:55.303 回答
111

我希望这可以帮助其他人解决此错误。

从命令行运行 httpd.exe以获得对问题的准确描述。

我有相同的错误消息,结果是未配置的 ServerRoot 路径。即使在运行 setup_xampp.bat 之后,httpd.conf 的路径也错误。

我的 error.log 是空的,并且启动服务不会提供信息丰富的错误消息。

于 2011-12-18T03:11:44.150 回答
22

解决此问题的更好方法是更改​​ Apache2\conf\httpd.conf 中的端口号。更改端口号为 fallows::: Listen 8888 和 ServerName machinename:8888 。更改端口号后重新启动Apache服务器。

于 2009-06-24T07:01:06.333 回答
5

我有同样的问题。我检查了 netstat,其他进程正在运行,防火墙并更改了 httpd.conf,停止了防病毒,但我所有的努力都是徒劳的。:(

所以最后的解决方案是停止 IIS。它奏效了:)

我猜 IIS 和 apache 不能一起工作。如果有人知道任何解决方法,请告诉我们。

于 2009-01-10T14:34:08.433 回答
4

正如 Tim 所说,从命令行运行 httpd.exe。PostgreSQL 的路径发生了变化,端口 80 上没有运行其他任何东西,我在文件中没有看到任何内容error.log

设置好基础后,我会克隆我的引导驱动器/分区,这样我就不必花费三天的时间来安装和重新调整所有内容。轮到我重新安装了我的 WAPP 堆栈并为 PostgreSQL 使用了非常具体的名称/版本。除非您从命令行运行该命令,否则 Windows 不会返回特定的错误消息。

于 2015-04-27T15:45:25.563 回答
3

按照这个步骤,它会正常工作。转到控制面板->程序和功能->单击打开和关闭Windows功能->查看是否选中了IIS如果选中,请取消选中IIS并重新启动计算机。之后打开服务查看Web部署代理服务状态如果它已启动,请停止。如果未启动,请手动启动WampAppache 和 WampSqlID 。它对我有用。

于 2013-07-11T04:09:31.593 回答
3

你好我今天也遇到这个问题。并且事件查看器中的日志错误如下 Apache 服务命名报告了以下错误:

1.Wrapper php-cgi.exe 无法访问:(720005)Access is denied.

2.apache服务监视器:请求的操作失败

这是实际的访问问题。所以流动的解决方案是帮助我更改 php-cgi.exe 安全属性

  • 不继承父母的许可...

  • 请添加所有人用户

于 2013-08-15T16:44:05.047 回答
2

如果 appache 和 IIS 同时运行,那么就有可能挂起 apache 服务,,,,

当我一次停止所有 IIS 网站然后重新启动 apache 服务时,它对我有用.... Jai ...

于 2011-01-10T05:48:35.447 回答
2

Windows Vista Home Premium 操作系统问题:解决问题的最简单方法是更改​​ Apache2\conf\httpd.conf 中的端口号。

在以下行中更改端口号。'Listen' 从 80 到 8888 和 'ServerName' 机器名(例如:localhost)从 80 到 8888。保存然后关闭。打开 Apache Service Monitor 并重新启动服务或转到计算机管理 > 服务并找到 Apache 2.2 并启动或重新启动。

于 2011-03-27T04:29:35.637 回答
1

从控制面板中删除 apache 并从 Program Files 中删除 apache 文件夹并重新启动机器,然后再次安装 apache。这将解决问题;如果没有,请执行以下操作:安装 IIS 如果未安装,则启动 IIS 并停止它...使用服务启动 apache 服务...享受 apache。

于 2010-07-13T09:13:23.183 回答
1

我遇到过两次这个问题。使用此页面上的标记答案解决了第一个问题(谢谢)。然而,第二次证明有点困难。

我发现在我的 httpd-vhosts.conf 文件中,我在将文档根分配给域名时犯了一个错误。解决这个问题解决了我的问题。非常值得检查(甚至恢复为空白副本)您的 httpd-vhosts.conf 文件是否有任何错误和拼写错误。

于 2012-03-01T15:02:31.117 回答
1

如果您使用的是 windows 操作系统并且认为 skype 不是嫌疑人,那么您可能需要检查任务管理器并检查“显示所有用户的进程”并确保没有 httpd.exe 条目。否则,结束其进程。这解决了我的问题。

于 2013-03-13T06:00:01.257 回答
1

是的,我不得不将端口 :80 更改为 :90,因为端口 :80 正被其他一些系统资源占用。

可以看到Apache2.2\logs文件夹下的日志

谢谢,

于 2013-08-26T05:37:46.880 回答
1

始终仔细检查 httpd.conf 以查看文档根目录是否正确指向现有文件夹

#if you have c:\your-main-folder\www\
DocumentRoot "c:/your-main-folder/www/" 

#if you have c:\your-main-folder\www\sub-folder\
DocumentRoot "c:/your-main-folder/www/sub-folder/" 

DocumentRoot指向驱动器中必须存在的文件夹。

于 2013-11-23T21:26:29.840 回答
1

我遇到过同样的问题。当我重新启动我的 wamp 时,它变成黄色图标但不是绿色。在服务中,我停止所有 sql server 服务。之后它对我有用..

  • 二认为应该小心。1 ) 端口应该不同 2 ) 停止那些可以在端口 80 上的服务
于 2014-03-08T09:33:07.583 回答
1

我遇到了同样的问题,在我的情况下,我需要在 httpd.conf 中添加模块
文件不完整,关键字不正确(如 LoadModule )
转到命令行,转到C:\Apache24\bin

C:\Apache24\bin > httpd.exe

从上面命令的输出中可以知道错误的原因

于 2019-12-08T05:22:34.383 回答
0

谢谢你们的帮助。我发现了另一个罪魁祸首。最近 SimplifyMedia 添加了照片共享选项。显然它也使用端口 80 并阻止 Apache 启动。我希望这可以帮助某人。

于 2009-09-10T16:53:14.190 回答
0

我也来了同样的问题。解决方案是转到添加或删除程序,然后单击打开或关闭 Windows 功能。关闭 IIS。即关闭“互联网信息服务”和“互联网信息服务可移动网络核心”。我选择了其余的功能都开启了。计算机将要求重新启动系统。重新启动您的计算机,然后安装 apache http 服务器。我得到了它。服务器成功运行...

于 2010-05-10T19:59:29.233 回答
0

对我来说,这是将文档根目录 (in httpd.conf) 设置为一个不存在的目录的结果(我刚刚清空了以前项目的 htdocs)。

于 2016-05-29T00:54:56.400 回答
0

Windows 10 - 管理员帐户

我需要在 Windows 服务中将帐户切换为管理员类型帐户

httpd.exe -k install

未能添加具有足够用户权限的设置。

于 2017-06-14T02:55:35.173 回答