Windows 无法在本地计算机上启动 Apache2 - 问题
Posted
技术标签:
【中文标题】Windows 无法在本地计算机上启动 Apache2 - 问题【英文标题】:Windows could not start the Apache2 on Local Computer - problem 【发布时间】:2010-09-16 18:36:17 【问题描述】:在安装 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 本地计算机。了解更多信息, 查看系统事件日志。如果这 是非 Microsoft 服务,请联系 服务供应商,并参考 服务特定的错误代码 1。
Apache2版本为2.2.9
有没有人有同样的问题,或者可以帮助我。
【问题讨论】:
【参考方案1】:还有一些其他程序在监听 80 端口,通常的嫌疑人是
-
Skype(监听端口 80)
NOD32(将 Apache 添加到 IMON 例外列表中以允许 apache 绑定)
其他一些杀毒软件(同上)
纠正它的方法是关闭使用端口 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/
【讨论】:
是的,我讨厌 Skype 尝试使用端口 80... 我有时会忘记更改它,然后当我尝试测试我编写的一些 Web 内容时,Apache 将无法启动。 看起来像一个新的 nod32 问题:( 将 Apache 添加到其例外列表以允许其绑定到端口 80 您可能希望将 netstat 上方更改为:netstat -aon | findstr :80
或什至 netstat -aon | findstr /r ":80[^0-9]"
以更快地获取线路。您也可以通过运行wmic process list brief
或tasklist
来获取pid。
我们可以在以下位置更改Skype的访问端口:工具->选项->高级->连接将出现带有文本“使用端口80 ...”的复选框,只需取消选中并重新启动Skype进行测试,访问端口将被更改【参考方案2】:
我希望这可以帮助其他人解决此错误。
从命令行运行 httpd.exe 以获得对问题的准确描述。
我收到了同样的错误消息,结果证明是未配置的 ServerRoot 路径。即使在运行 setup_xampp.bat 之后,httpd.conf 的路径也是错误的。
我的 error.log 是空的,并且启动服务没有给出信息性错误消息。
【讨论】:
这个答案对我很有帮助。当我尝试通过启动服务来启动 Apache 时,我收到了一条通用错误消息。当我尝试从命令窗口运行 C:\Program Files (x86)\Apache Software Foundation\Apache2.2\bin\httpd.exe 时,它准确地告诉我配置文件中它不喜欢的行。 这个!只需Run the httpd.exe from the command line
。它会准确地告诉你出了什么问题。我仍然很困惑为什么 XAMPP 的控制面板不提供错误输出。
很好的答案。在我的情况下,它原来是一个 Skype 服务在端口 443 上侦听阻塞 apache,即使我在端口 80 上运行 apache!
绝妙的答案。经过大量的砖墙后,这提供了解决方案的途径 - 谢谢!同意@NathanJ.Brauer 的观点,不幸的是 XAMPP 没有中继/显示此错误信息。
七年后,你刚刚救了我的培根。我也同意@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
【参考方案3】:
解决问题的更好方法是更改 Apache2\conf\httpd.conf 中的端口号。更改端口号为 fallows::: Listen 8888 和 ServerName machinename:8888 。更改端口号后重启Apache服务器。
【讨论】:
不需要重新安装服务器;它只需要重新启动(实际上是启动,因为它一开始没有运行)。此外,这只解决了您不介意在另一个端口上运行 Apache 的情况。【参考方案4】:我遇到了同样的问题。我检查了 netstat,其他进程正在运行,防火墙并更改了 httpd.conf,停止了防病毒,但我所有的努力都是徒劳的。 :(
所以最终解决方案是停止 IIS。它奏效了:)
我猜 IIS 和 apache 不能一起工作。如果有人知道任何解决方法,请告诉我们。
【讨论】:
见***.com/questions/431041/…【参考方案5】:正如 Tim 所说,从命令行运行 httpd.exe。 PostgreSQL 的路径已更改,端口 80 上没有运行其他任何内容,我在 error.log
文件中没有看到任何内容。
一旦基础设置完成,我就会克隆我的引导驱动器/分区,这样我就不必花费三天时间安装和重新调整所有内容。轮到我重新安装了我的 WAPP 堆栈并为 PostgreSQL 使用了非常具体的名称/版本。 除非您从命令行运行该命令,否则 Windows 不会返回特定的错误消息。
【讨论】:
这是对我有用的方法。通过 CMD 行运行,我看到 vhosts.conf 中有一个错误,只有在计算机重新启动时才抬起它丑陋的头。要通过 Windows 中的命令行运行,请在开始菜单 > 搜索框中输入 CMD,然后输入 httpd.exe 的路径。要找到 httpd.exe 的路径,一种方法是从搜索框中运行“服务”,找到 Apache,右键单击它,然后复制“可执行文件的路径”。您可以通过右键单击将其粘贴到 CMD 中。【参考方案6】:按照此步骤操作即可。 转到控制面板-->程序和功能-->点击打开和关闭Windows功能-->查看IIS是勾选或不勾选如果勾选请取消勾选IIS并重新启动计算机。之后打开服务查看Web Deployement Agent服务状态如果已启动请停止。同时查看WampAppache 和 WampSqlID 如果没有启动,请手动启动。它对我有用。
【讨论】:
【参考方案7】:嗨,我今天也遇到了这个问题。 事件查看器中的日志错误如下 Apache服务name报如下错误:
1.Wrapper php-cgi.exe 无法访问:(720005)访问被拒绝。
2.apache服务监控:请求的操作失败
这是实际的访问问题。所以流动的解决方案是帮助我 更改 php-cgi.exe 安全属性
没有从父母那里继承权限...
请添加所有人用户
【讨论】:
【参考方案8】:如果 appache 和 IIS 同时运行,那么就有可能挂起 apache 服务,,,,
当我停止所有 IIS 网站,然后重新启动 apache 服务,它对我有用....Jai...
【讨论】:
【参考方案9】:Windows Vista Home Premium 操作系统问题:解决问题的最简单方法是更改 Apache2\conf\httpd.conf 中的端口号。
在以下行中更改端口号。 'Listen' 从 80 到 8888 和 'ServerName' 机器名(例如:localhost)从 80 到 8888。保存然后关闭。打开 Apache Service Monitor 并重新启动服务或转到计算机管理 > 服务并找到 Apache 2.2 并启动或重新启动。
【讨论】:
【参考方案10】:从控制面板中删除 apache 并从 Program Files 中删除 apache 文件夹并重新启动机器,然后再次安装 apache。这将解决问题;如果没有,请执行以下操作:安装 IIS 如果未安装,则启动 IIS 并停止它...使用服务启动 apache 服务...享受 apache。
【讨论】:
【参考方案11】:我遇到过两次这个问题。使用此页面上的标记答案解决了第一个问题(谢谢)。然而,第二次证明有点困难。
我发现在我的 httpd-vhosts.conf 文件中,我在将文档根目录分配给域名时犯了一个错误。解决这个问题解决了我的问题。非常值得检查(甚至恢复为空白副本)您的 httpd-vhosts.conf 文件是否有任何错误和拼写错误。
【讨论】:
【参考方案12】:如果您使用的是 windows 操作系统并且认为 skype 不是嫌疑人,那么您可能需要检查任务管理器并检查“显示所有用户的进程”并确保没有 httpd.exe 条目。否则,结束其进程。这解决了我的问题。
【讨论】:
【参考方案13】:是的,我不得不将端口 :80 更改为 :90,因为端口 :80 正被其他系统资源占用。
可以在Apache2.2\logs文件夹下看到日志
谢谢,
【讨论】:
【参考方案14】:始终仔细检查 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
指向驱动器中必须存在的文件夹。
【讨论】:
【参考方案15】:我遇到了同样的问题。当我重新启动我的 wamp 时,它变成黄色图标但不是绿色。 在服务中,我停止所有 sql server 服务。之后它对我有用..
二想应该小心点。 1)端口应该不同 2 ) 停止那些可以在端口 80 上的服务【讨论】:
【参考方案16】:我遇到了同样的问题,在我的情况下,我需要在 httpd.conf 中添加模块 文件不完整,关键字不正确(如 LoadModule) 转到命令行,转到 C:\Apache24\bin
C:\Apache24\bin > httpd.exe
错误原因可以从上述命令的输出中得知
【讨论】:
【参考方案17】:感谢各位的帮助。我发现了另一个罪魁祸首。最近 SimplifyMedia 添加了照片共享选项。显然它也使用端口 80 并阻止 Apache 启动。我希望这对某人有所帮助。
【讨论】:
【参考方案18】:我也遇到了同样的问题。解决方案是转到添加或删除程序,然后单击打开或关闭 Windows 功能。关闭 IIS。即关闭“互联网信息服务”和“互联网信息服务可移动网络核心”。我选择了其余的功能都开启了。计算机将要求重新启动系统。重新启动您的计算机,然后安装 apache http 服务器。我得到了它。服务器成功运行...
【讨论】:
【参考方案19】:对我来说,这是将文档根目录(httpd.conf
)设置为一个不存在的目录(我刚刚清空了以前项目的 htdocs)的结果。
【讨论】:
【参考方案20】:Windows 10 - 管理员帐户
我需要在 Windows 服务中将帐户切换为管理员类型帐户
httpd.exe -k install
未能添加具有足够用户权限的设置。
【讨论】:
以上是关于Windows 无法在本地计算机上启动 Apache2 - 问题的主要内容,如果未能解决你的问题,请参考以下文章
Windows 无法在本地计算机上启动 Apache2 - 问题
windows无法启动server服务(位于本地计算机上)错误1068;依赖服务或组无法启动
windows无法启动server服务(位于本地计算机上)错误1068;依赖服务或组无法启动
windows 无法启动 SQL Server (MSSQLSERVER) 服务(位于本地计算机上)。错误 1069由于登入失败而无法启动