XAMPP Apache无法启动

13

我正在使用Windows 8 Pro。我刚刚安装了XAMPP Windows 1.8.1。

我尝试从XAMPP控制面板启动Apache,但它无法启动。它会显示以下错误:

图片描述

此外,我没有运行任何IIS服务,Web部署代理服务也没有运行,全球网络发布服务也没有运行……

可能是什么问题?有人可以帮忙吗?

错误日志


问题似乎很明显:文件不存在。文件是否存在?如果不存在,那就是你的问题了。如果存在,那么Apache可能没有访问文件的权限。 - Strike
3
以管理员权限启动XAMPP工具。 - KV Prajapati
是的,那些文件不存在。不管怎样,我在另一个驱动器上重新安装了它,现在它可以工作了。这很奇怪,因为我检查了已安装的文件,那些文件仍然不存在,但它却以某种方式工作了。 - rohan_vg
通常,该错误是由 http.conf 文件中的不良配置行导致的。可能有一个 # 缺失或缺失一个 #。 - Brad
23个回答

14

给Windows用户的提示:

你可以通过直接调用Apache httpd服务来轻松“调试”此错误。

  1. 转到 XAMPP\apache\bin
  2. 在此处打开cmd-shell或Powershell(从资源管理器中:在文件夹的空白区域上单击“Shift”+“右键单击”)
  3. 输入 httpd.exe
  4. 阅读输出

通常情况下,问题出现在XAMPP\apache\conf\extra文件夹中的众多*.conf文件之一中。


它输出了我在*.conf文件中的语法错误的确切文件和行号。谢谢! - jnbm
PowerShell没有识别exe文件,但命令行可以。非常好的答案。 - Jannick Breunis

12

如上述评论中所提及 - 我也进行了测试:

这个错误相当模糊。因此,您应该检查位于\xampp\apache\logs的error.log

当我遇到这个问题时,是因为Skype已经在端口80和445上监听。我通过退出Skype、启动Apache服务,然后重新启动Skype来解决了这个问题。您可以通过打开命令提示符并输入Netstat -a来检查当前的端口监听器。

建议将用户账户控制关闭,因为它可能会阻止xxamp内置的某些功能。

但在此之前,我曾在修改了我的Apache httpd.conf文件后遇到了问题。恢复这些更改(或在用户的情况下重新安装)将解决该问题。


作为一条注释,我曾经在使用Xampp时遇到过类似的问题。在同一台机器上安装Spiceworks之后,Xampp停止工作了。Spiceworks默认监听的端口是80和443(与Xampp中Apache的默认端口相同)。如果你遇到了和我一样的问题,这个链接可能会有所帮助:https://community.spiceworks.com/topic/14561-how-do-i-change-spice-works-port - Brandon S.

5
我在Windows 8 64位的XAMPP [XAMPP控制面板v3.2.1]中也遇到了这个问题。我首先使用“拥有权”命令(请参见下面的链接)来创建了一个更好的错误消息。
从上面的错误消息中,它变成了:
5:49:08 p.m. [Apache] 发现问题!
5:49:08 p.m. [Apache] 端口80被PID为4968的"C:\ Program Files(x86)\ Skype \ Phone \ Skype.exe"占用!
5:49:08 p.m. [Apache] Apache将不能启动,除非配置的端口空闲!
5:49:08 p.m. [Apache] 您需要卸载/禁用/重新配置阻止应用程序
5:49:08 p.m. [Apache] 或重新配置Apache和控制面板以监听不同的端口
关闭Skype可以解决此问题,重新打开Skype可以让它自行更改端口号。
因为谷歌将此错误作为“xampp apache无法启动”的最佳结果,所以加入这个帖子。抱歉发布旧问题。
取得所有权命令:http://www.eightforums.com/tutorials/2814-take-ownership-add-context-menu-windows-8-a.html

5

我正在使用 Windows 7,遇到了同样的问题。我使用 Skype 时 Apache 无法启动,但最终解决了这个问题,现在它可以正常工作。

请检查连接设置: 在 Skype 中点击“工具”-> 点击“选项”-> 点击“高级”-> 点击“连接” 取消选中端口号并保存。


4
我遇到了同样的错误,但是错误日志为空,最终我通过XAMPP安装Apache作为服务。现在,当我尝试启动Apache时,至少可以在Windows事件查看器中获得一些有意义的错误信息。结果发现vhost缺失目录,很容易修复,但只能在尝试将Apache作为服务启动时查看此错误。

类似的问题也发生在我身上:别名所指向的目录丢失了(网络映射驱动器此时已经下线)。谢谢。 - menrfa

4

请查看控制面板:该服务尚未安装!

点击 (X) 按钮安装 Apache 为 Windows 服务并重新启动,现在应该可以正常工作了。


3

首先,在安装完成后重新启动Windows。这可能看起来很奇怪,但确实很重要。另外,请检查所有占用80端口的应用程序(例如Skype)。

最后,解决我的问题的是443端口。VMWare一直在使用这个端口。关闭VMWare进程后,Apache就可以正常工作了。


2

我将其重新安装在另一个驱动器上,问题得到了解决。但我不知道最初是什么原因导致了这个问题。


2

对于 Linux 用户:

解决方案: 在终端输入:sudo /etc/init.d/apache2 stop

注:如果下次启动计算机仍然出现此类错误,则可能是 apache2 进程在计算机启动时开始运行。

为了防止 apache2 在启动时自动启动: cd /etc/init.d/ sudo update-rc.d -f apache2 remove

重新启动计算机,现在您应该可以从 XAMPP 控制面板打开 Apache 了!


1
谢谢,这对我在Debian 10中使用XAMPP 8.1.6有所帮助。 - Ventolinmono

1
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我遇到了这个问题,我希望释放端口.80,这样我的XAMPP / Apache就可以重新启动。 这就是我如何释放端口.80的方法。 首先: -打开命令提示符并输入:

netstat -aon | findstr :80

你将会看到如下显示:输入图像描述 然后输入以下命令:
tasklist /fi "pid eq 4"

您将获得使用is displayed的进程名称。现在,按下Win+R,在邀请中输入services.msc,然后按确定。现在您可以开始停止所有可能使用端口.80的服务。
在此处找到其中一些:W3SVC、WAS、SSRS、PeerDistSvc、NcbService。

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