20

我的机器上安装了 XAMPP。我正在尝试从 XAMPP 控制面板运行 Apache。

我通过右键单击快捷方式并选择“以管理员身份运行”来启动 XAMPP 控制面板(我以具有管理员权限的帐户登录)。控制面板启动,一切正常(没有错误消息/警告)。

启动后的 Xampp 控制面板

当我单击Apache 旁边的开始按钮时,我收到以下错误消息:

2:22:44 PM  [Apache]    Attempting to start Apache app...
2:22:45 PM  [Apache]    Status change detected: running
2:22:45 PM  [Apache]    Status change detected: stopped
2:22:45 PM  [Apache]    Error: Apache shutdown unexpectedly.
2:22:45 PM  [Apache]    This may be due to a blocked port, missing dependencies, 
2:22:45 PM  [Apache]    improper privileges, a crash, or a shutdown by another method.
2:22:45 PM  [Apache]    Check the "/xampp/apache/logs/error.log" file
2:22:45 PM  [Apache]    and the Windows Event Viewer for more clues

Xampp 控制面板 Apache 错误

请注意,它告诉我 Apache 已意外关闭并检查 error.log 文件和 Windows 事件查看器。

我检查了 error.log 文件,但它是空的:

Apache 错误日志文件为空

我还使用 Windows 事件查看器检查了任何事件,但事件查看器未显示任何事件(在应用程序下):

Windows 事件查看器无应用程序事件

我检查了可能阻塞端口等的程序(如 Skype、Visual SVN 服务器)并关闭了所有可能导致问题的程序。

我还能做些什么来找出可能发生的事情吗?

谢谢你。

更新

我通过尝试从 DOS 命令提示符运行 apache 解决了这个问题。从命令提示符运行给了我特定的错误以及这些错误在 httpd.conf 文件中的位置。事实证明,我的ServerRootDocumentRoot值不正确(指向错误的目录)。我将它们更改为指向正确的目录,现在我可以从控制面板启动 apache。

很好奇,为什么我从控制面板启动时没有看到有关ServerRootDocumentRoot的错误消息?

4

7 回答 7

26

只是想提一下,我还使用了命令提示符技术。

我的问题:我重新启动了 Apache,但无法让程序重新启动。

解决方案尝试 1:这不起作用。 我没有诸如 SKYPE 之类的程序占用端口,但我还是尝试调整我的端口设置。

解决方案尝试 2:这不起作用。 我读过的另一个解决方案是在 Windows 防火墙中也允许公共访问或禁用防火墙。我尝试过这个。

解决方案尝试 3:这确实有效 最后我偶然发现了这篇文章。我打开了 gitbash(尽管默认的 windows 命令提示符可以正常工作)。

我输入“cd c:/xampp/apache/bin”然后输入“httpd”

这给我带来了一个语法错误,并指向我的“httpd-vhosts”文件中的特定行。我弄清楚那条线出了什么问题,在我的例子中缺少“#”。保存文件,然后再次键入“httpd”。这次apache服务器启动了。

希望这可以帮助一些人!

于 2014-03-31T11:48:42.613 回答
1

就我而言,我必须在运行 IIS 的服务器上安装 XAMPP,并且必须运行 IIS。因此,在 XAMPP 中,如果您通过主配置按钮 > 服务和端口设置更改端口,它不会做任何事情。相反,只需单击 Apache 的配置按钮,然后单击 Apache (httpd.conf)。将“listen 80”更改为“listen 8080”(无引号)或您希望的任何端口号 - 只需确保它当前未被使用。我希望它可以帮助某人。

于 2014-02-21T21:35:01.610 回答
0

出现此问题的原因可能有以下三个: 1. ServerRoot、DocumentRoot 路径不正确 2. 其他应用程序已经在使用 httpd.config 或 httpd-ssl.config 中的端口。XAMP 控制面板上的用户 NetStat 按钮以检查此冲突 3. XAMP 控制面板上为 httpd/httpd-ssl 设置的端口与其各自的配置文件中设置的不匹配

请更正上述不匹配以纠正问题

于 2015-02-27T04:25:51.983 回答
0

也许您必须配置端口。在 XAMPP 控制面板中,在 Apache 行中,您可以看到一个名为“Config”的按钮。单击它,然后单击“Apache (httpd.conf)”。它会打开一个文件,您必须将其向下滚动到类似以下内容的行:

#听 12.34.56.78:80

#听 80

将“#Listen 80”行更改为“#Listen 8088”。

也许它会解决问题。

于 2018-05-15T20:38:35.200 回答
0

我在这里遇到了与许多人相同的问题,并且能够将其跟踪到apache/conf/extra/httpd-ssl.config。我不得不发表评论SSLCertificateFile "conf/ssl.crt/server.crt"。但是,仅此一项并不能解决我的问题,并且从 CLI 运行 httpd 并没有显示任何错误。我发现我还必须SSLEngine off在 httpd-ssl.config 中进行设置。

注意:我是在本地测试服务器上完成的。

于 2021-01-27T20:40:18.613 回答
0

我的日志文件没有填充 Windows 事件查看器没有记录 apache 引发的错误。但是从 cmd 行启动 apache 给出了错误消息无法绑定端口 80。我在端口 80 上运行了 Skype。退出 Skype 并没有解决问题。所以我在 httpd.conf文件中将端口配置为 90。


于 2019-09-25T08:58:25.880 回答
0

我遇到了同样的问题,以下是我解决它的方法。

  • Skype 使用的是 Apache 服务器所需的端口 80。因此打开 Skype 并转到工具 > 选项 > 高级 > 连接。取消勾选“使用端口 80 和 443 进行其他传入连接”

  • 打开 XAMPP 控制面板并打开“httpd-ssl.config”文件并找到“Listen 443”行到另一个端口(例如“Listen 444”)。

于 2015-09-22T18:18:33.487 回答