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

Tom*_*ard 323 apache xampp

我刚刚重新安装了XAMPP,当我尝试在XAMPP控制面板中启动我的Apache服务器时,我现在收到以下错误:

16:50:25  [Apache]     Status change detected: running
16:50:26  [Apache]     Status change detected: stopped
16:50:26  [Apache]     Error: Apache shutdown unexpectedly.
16:50:26  [Apache]     This may be due to a blocked port, missing dependencies,
16:50:26  [Apache]     improper privileges, a crash, or a shutdown by another method.
16:50:26  [Apache]     Press the Logs button to view error logs and check
16:50:26  [Apache]     the Windows Event Viewer for more clues
16:50:26  [Apache]     If you need more help, copy and post this
16:50:26  [Apache]     entire log window on the forums
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?

Min*_*in2 698

由于我在开发人员面临防火墙问题的企业环境中工作,所以其他任何答案都没有解决我的问题.

由于该端口不是由Skype使用,而是由其他一些内部应用程序使用,因此我按照以下步骤解决了该问题:

步骤1 - 在XAMPP控制面板的Apache下,单击Config按钮,然后选择Apache(httpd.conf).

httpd.conf文件中,不知怎的,我发现了一行说:

Listen 80
Run Code Online (Sandbox Code Playgroud)

并将80更改为您想要的任何数字/端口.在我的场景中,我正在使用端口8080.

Listen 8080
Run Code Online (Sandbox Code Playgroud)

仍然从httpd.conf文件,我发现另一行说:

ServerName localhost:80
Run Code Online (Sandbox Code Playgroud)

将80更改为8080.

ServerName localhost:8080
Run Code Online (Sandbox Code Playgroud)

步骤2 - 从XAMPP控制面板,在Apache下,再次单击Config按钮,但这次选择Apache(httpd-ssl.conf).在httpd-ssl.conf文件中,找到说明的行

Listen 443
Run Code Online (Sandbox Code Playgroud)

并将443更改为您想要的任何数字/端口.我将使用4433作为新的端口号.

Listen 4433
Run Code Online (Sandbox Code Playgroud)

仍然从httpd-ssl.conf文件中找到另一行说明

<VirtualHost _default_:443>

ServerName localhost:443
Run Code Online (Sandbox Code Playgroud)

并将443更改为4433.

<VirtualHost _default_:4433>

ServerName localhost:4433
Run Code Online (Sandbox Code Playgroud)

记得在执行一些更改后保存httpd.confhttpd-ssl.conf文件.然后重启Apache服务.

  • 这是Windows 10 bug的修复.非常感谢 ! (6认同)
  • 似乎需要编辑的“httpd-ssl.conf”上的第二行称为:“ServerName www.example.com:4433” (6认同)
  • 我升级到Windows 10并且XAMPP无法正常工作.我按照你的解决方案,它工作正常. (4认同)
  • 我已经对 80 和 443 端口进行了更改,但仍然显示错误,我的系统中没有 Skype (4认同)
  • 为我工作。这应该是公认的解决方案;Skype解决方案非常有限。 (2认同)

小智 414

打开Skype.

工具 - >选项 - >高级 - >连接.

取消选中" 使用端口80和443替换传入连接 "复选框

注销并关闭所有Skype窗口.尝试重新启动Apache.

  • 这不是正确的解决方案,因为端口可能因任何应用程序而被阻止,而不仅仅是Skype.排名第二的最佳答案有更好的解决方案. (16认同)
  • 如果它不适合任何人尝试检查错误日志.或者,如果您正在使用vmware,请编辑>首选>共享VMS>禁用共享并将端口从443更改为任何其他端口,例如8443并保存更改.重启xampp或wamp (7认同)
  • 我改变了Skype,仍然注意到.解决方案最终(http://stackoverflow.com/questions/14548768/apache-could-not-be-started-serverroot-must-be-a-valid-directory-and-unable-to)[running setup_xampp.蝙蝠刷新路径] (5认同)
  • 这是人们面临的最常见问题,尽管这不是我的问题.如果您在httpd.conf和httpd-vhosts.conf中的任何文件中有错误的条目,也可能会出现此问题.在我的情况下,我创建了一个虚拟主机,指向我的外部硬盘驱动器上的文件位置,当我运行xampp时,我的外部硬盘驱动器没有连接.所以,我注释掉虚拟主机代码,直到我没有使用外部硬盘并重新启动xampp来解决问题. (3认同)
  • 它并不总是Skype.我的问题是使用端口443的vmware.如果是这种情况,你不必更改端口80配置. (2认同)

use*_*737 87

您可以做的一件事是通过发布来停止端口80上的服务

net stop http
Run Code Online (Sandbox Code Playgroud)

在一个cmd.系统会询问您是否确定要停止这些服务.我发现我有一些我没有使用的服务并禁用它们.

要查看还有谁在cmd中使用端口80类型

netstat -abno
Run Code Online (Sandbox Code Playgroud)

我假设您要在端口80上运行Apache.如果是这种情况并且您希望保留冲突的服务,则需要将它们关联到新端口.

如果问题不是繁忙端口,您还可以尝试以下操作:在XAMPP配置面板中选择"show debug information".启动Apache时,您将显示类似"执行"c:\ xampp\apache\bin\httpd.exe".如果您运行该

c:\xampp\apache\bin\httpd.exe
Run Code Online (Sandbox Code Playgroud)

在cmd中,您将获得更多信息(例如,我曾经对我的httpd.conf文件有一些问题).

相关:如何在localhost Windows上释放我的端口80?Apache不会在xampp中运行

  • 为httpd.exe +1.如果您丢失了模块,请确保您的防病毒软件没有删除它们(特别是如果您运行Kasperky). (8认同)
  • 谢谢man在cmd上运行c:\ xampp\apache\bin\httpd.exe抛出确切的错误并能够修复它 (8认同)
  • 我遇到了同样的问题,并通过确保 /apache/conf/extras/httpd-bhosts.conf 中指定的每个目录都是实际路径来解决它。 (2认同)

Ham*_*han 65

在XAMPP控制面板V3.2.1中,单击右上角的"NetStat"按钮.确保任何其他程序不使用端口80.然后点击它下面的"Shell".发出此命令"键入ap然后选择TAB两次"

Apache_Start.bat

您实际上会看到Apache失败的确切错误.它很可能是虚拟主机配置问题,或者可能是其他问题.它将显示发生错误的行号.只需修复该错误.请注意,在RootDocument中,尾随\也可能是错误的来源.删除任何尾随的"\".

有关详细解答,请点击此处

  • 这应该是最佳答案,因为它适用于XAMPP的任何可能的错误! (7认同)
  • 这只是帮助我度过了很长时间 - 它告诉我有一个错字 - 在花了几个小时试图找出问题之后.非常感谢@hmd (6认同)

kim*_*eri 36

跟着这些步骤:

  1. 打开XAMPP控制面板,然后单击其"配置"
  2. 选择"Apache(httpd.conf)"并在下面找到此代码并将其更改为以下代码:

    #Change this to Listen on specific IP address,如下所示

    #以防止Apache冒成所有绑定的IP地址.

    #Listen 0.0.0.0:80

    #Listen [::]:80

    Listen 80

    #动态共享对象(DSO)支持

    1. 保存(Ctrl+ S)
    2. 之后,返回XAMPP控制面板并再次单击其配置.
    3. 选择"Apache(httpd-ssl.conf)",在下面找到此代码,然后再次更改:

    #注意:使用IPv6而不是IPv4映射地址的配置需要两个

    #Listen指令:"Listen [::]:443"和"Listen 0.0.0.0:443"

    #

    #Listen 0.0.0.0:443

    #Listen [::]:443

    Listen 443

    1. 保存(Ctrl+ S)
    2. 然后,单击"配置"(注意:在netstat上方)并单击"服务和端口设置"​​.
    3. 将"主端口"更改为8080,将"SSL端口"更改为4433,然后保存.
    4. 最后,转到"控制面板" - >"程序和功能" - >"打开或关闭Windows".
    5. 取消选中"Internet信息服务",然后单击"确定".

只需等待它,您的计算机/笔记本电脑将自动重启并尝试再次打开您的XAMPP控制面板,然后启动您的Apache.

  • 小心.如果安装了VMWare Workstation(10.0),则共享VM的选项正在侦听端口443.这会阻止Apache服务器启动(xampp).请参见编辑>首选项>共享VM (10认同)
  • 听80 - >听81(第58行附近)ServerName localhost:80 - > ServerName localhost:81(第218行附近) (3认同)
  • 为我工作.我试图使用XAMPP'Config GUI'来改变Apache端口并且没有运气.手动更改它,一切正常.另一个懒惰的教训. (2认同)

Cra*_*rTV 25

我的问题是在httpd.conf中DocumentRoot,<Directory>条目指向不存在的文件夹.

例如,'原始'httpd.conf具有以下条目:

DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Run Code Online (Sandbox Code Playgroud)

如果您已安装在C:\ xampp中,则需要更改这些条目以匹配,即

DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
Run Code Online (Sandbox Code Playgroud)

  • +1,我完全忘记了我重组了我的文件夹 =) (2认同)
  • 只不过是一个简单的答案,有时提醒自己的愚蠢......:D为我做了,谢谢! (2认同)

Kun*_*nal 19

如果您使用的是Windows 7.在Windows搜索中搜索IIS(单击左下角的"窗口"图标,然后键入"搜索程序和文件"的位置).

打开IIS(Internet信息服务).

在动作面板的右侧.单击停止.

注意:屏幕截图中的停止链接已淡出.因为我已经停止了. IIS截图 问题解决了!

  • 在Windows 10上找不到要执行的IIS,然后我从"控制面板>程序>程序和功能> Windows组件"中卸载了IIS,最终解决了它. (2认同)

Pau*_*aul 14

我有同样的问题,结果我忘了跑setup_xampp.bat(便携版).

  • 将我的xampp文件夹移动到另一个驱动器之后,c:\ apache不再启动了.这个解决方案对我有用.非常感谢!:) (2认同)

小智 13

这对我有用...

如果您使用的是Windows ...

在Windows搜索栏中搜索“ cmd”。

输入此:C:\xampp\apache\bin\httpd.exe

查找发生错误的文件和行。

例如,第37行下方的文件中包含了mine。

httpd-multilang-errordoc.conf

打开代码并通过删除行或修复它来纠正错误。

做完了!我现在应该工作。

:)


vip*_*per 9

您可以做的简单事情是检查您的机器中是否安装了SkypeVMware.

Skype使用端口80和443作为传入连接的附加端口.要更改Skype中的端口号,请转到

工具>连接选项>连接

在Skype窗口中.现在将默认的80端口号更改为其他端口号.

VMware Workstation使用端口443进行共享.要更改此设置,请打开VMware Workstation并转到

编辑>首选项>共享Vms

  1. 点击"更改设置"按钮
  2. 然后单击"禁用共享"
  3. 然后更改正在使用的https端口号(443)
  4. 然后,您可以单击"启用共享"按钮

这就是你要做的一切.重新启动XAMPP并运行Apache服务器.


JDP*_*JDP 9

当我发现使用命令时没有使用端口80的进程

netstat -abno | find ":80"
Run Code Online (Sandbox Code Playgroud)

使用端口80没有任何进程的问题.

然后我跑了命令(在cmd)

C:\xampp\apache\bin\httpd.exe
Run Code Online (Sandbox Code Playgroud)

它在httpd-vhosts.conf我最近编辑的文件中的虚拟主机配置中显示了一些错误,以便在Eclipse IDE 中的WordPress PHP环境中安装.所以我删除了这些行,Apache完美地启动了.

  • 完善!我为日志文件指定了错误的目录,因此它没有启动.修复解决问题的方法! (2认同)

Pra*_*Das 9

我有时会遇到同样的问题.我有一台旧笔记本电脑,几乎所有端口都被堵塞或出现故障.这就是我做到的.

  1. 打开XAMPP控制面板.

  2. 单击" 配置"

  3. 然后,进入Apache httpd.conf文件.用文本编辑器打开它.

  4. 搜索"80" (Do Ctrl+ F并找到所有这些.将其替换为8080或4040或4000).

  5. 保存文件.然后重启XAMPP.

它对我很有用,我希望它对你也有帮助.


Sau*_*R S 7

原因之一可能是您没有以管理员身份运行 XAMPP 控制面板。


Lor*_*Jr. 7

似乎没有人回答有关执行xampp_start.exe的问题.

我做了以前的所有答案,但没有解决我的问题.我发现运行xampp_start.exe会给你一个关于这个问题的详细信息.

这是我在最后看到的:

xampp_start

正如您所看到的,我遇到了路径问题,或者xampp指向不存在的文件夹.


Lig*_*axx 7

有时,问题不是端口问题,而可能是由于您的配置错误导致的,并且 Apache 未在 Windows 中的事件查看器上记录错误。要解决这个问题,只需

cd C:\xampp\apache\bin
Run Code Online (Sandbox Code Playgroud)

然后运行

httpd.exe
Run Code Online (Sandbox Code Playgroud)

然后 Apache 会为您吐出错误,如下所示

AH00526: Syntax error on line 2 of C:/xampp/apache/conf/httpd.conf: Invalid command 'This', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)

我希望这能帮助一些可怜的灵魂:)


Mem*_*sen 6

对我来说,万维网发布服务正在使用端口80.我通过在cmd上运行以下命令来杀死它:

net stop http
Run Code Online (Sandbox Code Playgroud)

之后,XAMPP运行Apache没有任何问题.


Her*_*ker 6

尝试以下方法,以上方法都没有为我解决问题

  1. 选择Run as administrator

在此输入图像描述

  1. 然后单击 Apache 旁边的左侧大框

  2. 选择卸载Apache

在此输入图像描述


小智 6

第 1 步:在 Apache 中,转到“配置”,然后选择Apache(httpd.conf)

在记事本中找到Listen 80,再添加一个80,将端口改为Listen 8080

确保在关闭记事本之前保存。

第 2 步:在 Apache 中,转到“配置”,选择Apache(httpd-ssl.conf)

在记事本中找到Listen 443,在443后面再添加3,将端口改为Listen 4433

然后搜索VirtualHost default :443并添加另外 3 将端口更改为VirtualHost default :4433

确保在关闭记事本之前保存。

(注:这里有一个类似的答案,但它对我不起作用,直到我喜欢 YT 上的一个视频)


小智 5

发生此错误的原因是为另一个程序使用了为Apache分配的端口。要检查使用我们为Apache分配的端口的应用程序,可以通过单击以下命令进行使用,

Netstat按钮。

XAMPP主页

这是Netstat文件,

在此处输入图片说明

首先,我为Apache分配了端口8080,最近安装了Oracle DB.TNSLSNR.exe现在已使用8080端口。

因此,通过查看此文件,我们可以选择不与其他应用程序冲突的端口。就我而言,端口8060不会与任何应用程序冲突。通过选择,我们可以如上所述更改httpd.conf文件(XAMPP控制面板-> Config)。


sir*_*gid 5

  1. 下载新的xampp apachefriends
  2. 安装它
  3. 删除所有VPN应用
  4. 打开文件夹XAMPP运行setup_xampp.bat
  5. 运行xampp-control.exe