Xampp - Apache 意外关闭、空日志文件且没有事件

Posted

技术标签:

【中文标题】Xampp - Apache 意外关闭、空日志文件且没有事件【英文标题】:Xampp - Apache Shuts Down Unexpectedly, Empty Log File And No Events 【发布时间】:2014-02-01 20:56:54 【问题描述】:

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

我通过右键单击快捷方式并选择“以管理员身份运行”来启动 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

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

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

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

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

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

谢谢。

更新

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

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

【问题讨论】:

我在运行 Skype 并收到关于端口 80 的错误,所以我退出了 Skype。 UPDATE 我发现了问题所在。我的 http.conf 文件有无效条目。特别是 ServerRoot 和 DocumentRoot 指向错误/丢失的目录。 很高兴你明白了:) 谢谢伙计...你节省了很多时间 :) cheeerrss @Jan Tacci - 谢谢你的无效条目答案解决了我的问题。实际上,我创建了一个虚拟主机,它指向我的外部硬盘驱动器上的文件位置,当我运行 xampp 时,我的外部硬盘驱动器没有连接。注释掉该代码并重新启动 xampp 解决了该问题。 【参考方案1】:

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

【讨论】:

感谢有关从命令行运行 Apache 的说明...我遇到了另一个错误,但从 xampp 控制台运行非常没有帮助【参考方案2】:

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

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

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

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

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

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

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

希望这对某些人有所帮助!

【讨论】:

这帮助我找到了我需要找到的东西。在我的情况下,我需要在 httpd.config 文件中更改我的端口(侦听)和 ServerName。谢谢! 非常感谢。帮助过我。根目录的语法有问题。我用反斜杠做了,这是错误的。 错误C:\Users\projects 正确C:/Users/projects 谢谢先生。此外,我的新“apache/extra”文件夹不包含正确的文件(以前的安装),所以我只是从旧安装中复制它们并用旧文件覆盖新文件。我升级了,它工作正常。 谢谢,您的解决方案 3 对我调试错误很有帮助【参考方案3】:

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

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

【讨论】:

【参考方案4】:

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

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

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

【讨论】:

【参考方案5】:

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

#听 12.34.56.78:80

#听 80

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

也许它会解决问题。

【讨论】:

您可能希望删除前导 # 否则该行仍会被注释掉并被忽略,Apache 仍将使用默认的 80。【参考方案6】:

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


【讨论】:

【参考方案7】:

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

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

【讨论】:

以上是关于Xampp - Apache 意外关闭、空日志文件且没有事件的主要内容,如果未能解决你的问题,请参考以下文章

XAMPP,Apache - 错误:Apache 意外关闭

XAMPP,Apache - 错误:Apache 意外关闭

Windows 10 XAMPP Apache 意外关闭

Xampp Apache 服务器无法启动 - “错误:Apache 意外关闭。”

XAMPP MySQL 意外关闭 - 日志中没有错误

Xampp x64-7.4.3-0-VC15 Apache 意外关闭