Windows无法在本地计算机上启动Apache2-问题


68

在安装Apache2的过程中,我将以下消息输入cmd窗口:

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

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

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

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

Apach2版本是2.2.9

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

Answers:


135

在端口80上还有其他监听程序,通常是

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

纠正该错误的方法是关闭正在使用端口80的程序,或者将其配置为使用其他端口,或者使用httpd.conf中的Listen指令将Apache配置为在其他端口上进行侦听。如果是防病毒软件,请配置防病毒软件以允许Apache绑定到您选择的端口上。

使用这些选项运行netstat来诊断已绑定到端口80的应用程序(如果有的话),在本地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-和-443在本地计算机上/


是的,我讨厌Skype如何尝试使用端口80 ...有时我忘记更改它,然后当我尝试测试我编写的某些Web东西时,Apache无法启动。
Powerlord

它看起来像是一个新的nod32问题:(
vaske

将Apache添加到其例外列表中以允许其绑定到端口80
Vinko Vrsalovic

5
您可能希望将以上netstat更改为:netstat -aon | findstr :80甚至netstat -aon | findstr /r ":80[^0-9]"更快地上线。您也可以从运行wmic process list brief或获得pid tasklist
Nux 2011年

1
我们可以在以下位置更改Skype的访问端口:工具->选项->高级->连接将出现一个带有文本“使用端口80 ...”的复选框,只需取消选中并通过重启Skype进行测试,访问端口将被更改
Dhaval

108

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

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

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

我的error.log为空,启动服务未给出提示性错误消息。


6
这个答案确实帮助了我。当我尝试通过启动服务来启动Apache时,我仅收到一条通用错误消息。当我尝试从命令窗口运行C:\ Program Files(x86)\ Apache Software Foundation \ Apache2.2 \ bin \ httpd.exe时,它会告诉我确切的配置文件中哪行不满意。
保罗

6
这个!只是Run the httpd.exe from the command line。它将完全告诉您出了什么问题。我仍然感到困惑,为什么XAMPP的控制面板不提供错误输出。
内森·杰伯

2
好答案。就我而言,即使我在端口80上运行apache,事实证明这是一个Skype服务正在侦听443端口,这阻塞了apache!
DigiOz Multimedia 2012年

4
神奇的答案。经过许多砖墙之后,这为解决方案提供了途径-谢谢!同意@ NathanJ.Brauer,不幸的是,XAMPP不会中继/显示此错误信息是短暂的。
Manachi

1
七年后,您刚刚保存了我的培根。我也同意@ NathanJ.Brauer的观点,因为CMD可以准确地告诉您问题出在哪里,并且XAMPP的控制面板需要在这方面进行更新。记录下来,我使用的是Windows 10,XAMPP 3.2.2,错误为:Syntax error on line 39 of D:/XAMPP/apache/conf/httpd.conf: ServerRoot must be a valid directory
DylRicho,

22

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


6
无需重新安装服务器;只需重新启动即可(实际上,已启动,因为它最初并未运行)。另外,这仅在不介意在其他端口上运行Apache的情况下解决了该问题。
Dave DuPlantis 2011年

5

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

因此,最终的解决方案是停止IIS。它起作用了:)

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



4

如Tim所述,从命令行运行httpd.exe。PostgreSQL的路径已更改,端口80上没有其他任何运行,并且在error.log文件中。

一旦建立了基础,我就克隆了我的启动驱动器/分区,因此我不必花三天的时间来安装和重新调整所有内容。轮到我重新安装了WAPP堆栈,并为PostgreSQL使用了非常特定的名称/版本。Windows不会返回特定的错误消息,除非您从命令行运行命令。


1
这是对我有用的方法。通过CMD行运行时,我看到vhosts.conf中存在一个错误,该错误仅在计算机重新启动时才抬起头来。要通过Windows中的命令行运行,请在“开始”菜单>“搜索框”中键入CMD,然后输入httpd.exe的路径。要找到httpd.exe的路径,一种方法是从搜索框中运行“服务”,找到Apache,右键单击它,然后将“路径复制到可执行文件”。您可以右键单击将其粘贴到CMD中。
liamvictor

3

按照此步骤,它将正常工作。转到“控制面板” ->“程序和功能” ->单击“打开和关闭Windows功能” ->查看“是否已检查IIS”。如果选中,请取消IIS并重新启动计算机。此后,打开服务将显示Web Deployment Agent服务的状态,如果它的启动请停止。如果尚未启动,请参阅WampAppache和WampSqlID,请手动启动。它会为我工作。


3

嗨,我今天也遇到了这个问题。事件查看器中的日志错误如下所示:名为Apache的服务报告了以下错误:

1.Wrapper php-cgi.exe无法访问:(720005)访问被拒绝。

2.Apache服务监控器:请求的操作失败

这是实际的访问问题。因此,作为解决方案,这是帮助我更改php-cgi.exe安全属性的方法

  • 没有父母的许可...

  • 请添加所有人用户


2

如果appache和IIS一次都在运行,则可以挂起apache服务。

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


2

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

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


1

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


1

我有两次这个问题。使用此页面上的标记答案已解决了第一个问题(谢谢您)。但是,第二次被证明更加困难。

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


1

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


1

是的,我不得不将端口:80更改为:90,因为其他系统资源正忙于端口:80。

您可以在Apache2.2 \ logs文件夹中查看日志

谢谢,


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 指向驱动器中必须存在的文件夹。


1

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

  • 两人认为应该注意。1)端口应该不同2)停止那些可以在端口80上运行的服务

1

我遇到了同样的问题,以我为例 ,我需要在httpd.conf中添加模块
该文件不完整,其中包含错误的关键字(例如LoadModule),
请转到命令行,请转到C:\ Apache24 \ bin

C:\ Apache24 \ bin > httpd.exe

错误的原因可以从上述命令的输出中得知


0

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


0

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


0

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


0

Windows 10-管理员帐户

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

httpd.exe -k install

无法添加具有足够用户权限的安装程序。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.