86

我已经在 Windows 7 上成功安装了 XAMPP (xampp-win32-1.8.2-0-VC9-installer.exe)。但不幸的是,在从 XAMPP 控制面板运行 Apache 的过程中发现了以下错误:

5:38:38 PM  [Apache]    Error: Apache shutdown unexpectedly.
5:38:38 PM  [Apache]    This may be due to a blocked port, missing dependencies, 
5:38:38 PM  [Apache]    improper privileges, a crash, or a shutdown by another method.
5:38:38 PM  [Apache]    Press the Logs button to view error logs and check
5:38:38 PM  [Apache]    the Windows Event Viewer for more clues
5:38:38 PM  [Apache]    If you need more help, copy and post this
5:38:38 PM  [Apache]    entire log window on the forums

在 XAMPP 控制面板上运行 Apache 时出错

4

28 回答 28

99

这个问题有很多可能的答案。最常见且最有可能的是您正在运行另一个程序,该程序阻塞了端口 80 或 443。如果您安装了 Skype,那么您就发现了问题!将 apache 的端口设置更改为 81,apache 就可以工作了。有一个很好的教程要检查这一点,您可以通过单击开始菜单并输入“cmd”来打开命令行,然后输入命令

    netstat -nab

这将返回一个与此模式类似的程序列表

    [someprogram.exe]
    UDP     [fe80::numbers:numbers:numbers:numbers%numbers]:portnumber

您需要找到以 :80 结尾的一行(或多行)并终止它们以启动 apache。如果没有以 :80 结尾的行,您可以做更多的事情。

首先,导航到 xampp 的目录(默认为 c:\xampp)并双击 apache_start.bat。这将打开一个命令行并返回有关为什么 apache 无法运行的更详细的错误。大多数情况下,寻找可以通过编辑 httpd.conf 或 httpd-ssl.conf 文件创建的语法错误。如果您已经对其进行了编辑并且是新用户,那么这很容易做到。

如果仍然失败,您最后的希望是通过单击 xampp 控制面板中 apache 行中的日志选项卡并单击错误日志来检查 apache 错误日志。

如果这些都不起作用,请不要放弃!你有这个!

编辑:如果您更改 apache 的端口,您还必须进入 httpd.conf(位于 xampp/apache/conf 中)并靠近第 184 行,替换

ServerName localhost:80

ServerName localhost:81

也可以在 localhost 的 url 中指定端口 81,即

本地主机:81/my_project.php

于 2013-07-31T17:56:45.570 回答
40

1. Go in xampp/apache/conf/httpd.conf and open it.
In the httpd.conf file at line 176 Replace

ServerName localhost:80
with
ServerName localhost:81
It will work.

Or 2. Even if the above procedure doesn't work. Then in the same file (httpd.conf) at line 45 replace

   #Listen 0.0.0.0:80
   #Listen [::]:80
   Listen 80 

with

  #Listen 0.0.0.0:81
  #Listen [::]:81
  Listen 81
于 2014-03-09T18:29:11.670 回答
21

Windows 下的 XAMPP 控制面板并不总是反映实际发生的情况,除非您通过“以管理员身份运行”来启动它。

于 2014-03-14T00:50:42.030 回答
17

进入 xampp/apache/conf/httpd.conf 并打开它。然后只需更改 2 行

Listen 80
to
Listen 81

ServerName localhost:80
to
ServerName localhost:81

然后开始使用管理员权限。

当我在开发人员面临防火墙问题的公司环境中工作时,其他答案都没有解决我的问题。

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

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

在 httpd.conf 文件中,不知何故我发现了一行:

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

听 8080 仍然来自 httpd.conf 文件,

您也应该在同一过程中执行此操作 仍然从 httpd-ssl.conf 文件中,找到另一行说

ServerName localhost:443 并将443改为4433。

ServerName localhost:4433 请记住在执行一些更改后保存 httpd.conf 和 httpd-ssl.conf 文件。然后重新启动 Apache 服务。

于 2014-02-25T18:39:56.273 回答
15

您是否执行过“setup_xampp.bat”脚本?它在 XAMPP 文件夹中,每次更改 XAMPP 文件夹时都必须执行它。

于 2013-07-31T18:45:27.263 回答
13

伴随 Timmay 的回答,您需要做两处更改-

听 80 --> 听 81(靠近 58 行)

ServerName localhost:80 --> ServerName localhost:81(近 218 行)

于 2014-01-02T04:06:58.603 回答
13

在我的情况下,问题是端口 80 和 443 都在使用中: 用于修复它的步骤是:

  1. 打开 xampp 并单击配置按钮
  2. 现在点击(Appache)httpd.conf(在记事本或其他编辑器中打开)
  3. 现在单击ctrl+ h
  4. 查找80并替换为8080
  5. 现在保存并点击 Appache(httpd-ssl.conf)。
  6. 现在查找443并替换为4430.
  7. 现在您的 xampp 必须工作正常,因为这两个代码都不会被系统上的其他程序使用。

现在您的本地主机将作为localhost:8080

于 2017-09-19T17:40:01.740 回答
8

如果您安装了 Skype,请选中此选项。

在此处输入图像描述

另一个案例是 Windows 10

检查这个:

  1. 转到开始,输入 services.msc
  2. 在“服务”窗口中向下滚动以找到万维网发布服务。
  3. 如果您只想使用 XAMPP,请右键单击它,然后选择停止或禁用它。

在此处输入图像描述

于 2016-07-14T12:12:22.780 回答
6

我已经安装了 VMWare 工作站。所以,它导致了错误。

Services.msc and stopped the 'Workstation' Services.

这解决了我的问题。

谢谢

于 2015-02-19T16:36:11.690 回答
6

检查您的计算机上是否安装了 Skype。

登录并转到工具-选项-高级-连接并取消选中使用端口80的框

--

通过从运行命令提示符启动 services.msc 来检查 Apache 服务是否已经安装。

如何从命令提示符删除服务?sc 删除“服务名称”</p>

请记住 serviceName 应该替换为 Apache 服务的确切名称,如服务列表所示。

检查 IIS 是否正在运行并占用端口 80。如果是,请禁用它。

--

检查 AVP (Kaspersky) 是否正在运行并占用端口 80。如果是,请将 httpd.exe 作为例外添加到允许的程序。

--

希望能帮助到你。

于 2013-10-09T09:32:07.073 回答
4

转到C:xampp\apache\conf\extra\httpd-ssl.conf
找到它说 Listen 443 的行,将其更改为 Listen 4330 并重新启动计算机

在此处输入图像描述

[![在此处输入图像描述][2]][2]

于 2018-11-28T14:01:24.610 回答
3

我在我的系统上发现了类似的问题,这是在安装 xampp 之前安装的 Skype 造成的。我有类似的错误。为了修复错误,我遵循了这些,

  1. 登出Skype一段时间,
  2. 从 xampp 控制面板重新启动 apache,
  3. 通过http://localhost/检查浏览器是否有效
  4. 搞定了,
  5. 再次登录Skype,
  6. 一切都很好,就这么简单

我不需要安装或卸载任何东西,这在不到 1 分钟的时间内就对我有用。

干杯

于 2015-01-24T06:32:30.747 回答
2

如果您安装了 SQL Express 或任何 .Net 服务器,那么您需要停止。以管理员模式打开 cmd 并键入此行...

净止损

现在启动apache

于 2015-09-14T04:55:57.193 回答
2

最好的方法:

上面解释的其他方法会让你卡在很多地方不要去改变端口

两步流程

1)以管理员身份打开命令提示符

2)类型net stop http (如果它说它没有识别关键字,那只是因为你的环境变量的路径不包含程序文件/系统32的路径你可以搜索如何去做)在它询问的每个地方按Y你去,别担心你没有停止任何重要的进程,只是一些占用你端口的进程。一旦您不工作,该过程将再次接管您的端口。

于 2017-06-05T06:42:21.710 回答
1

目前使用 XAMPP 进行 laravel 开发。

我在我的桌面上安装了 Skype,它阻止了端口 80 和 443(Apache 都使用了这两个端口)

这个修复对我有用:

1) 在 下C:\xampp\apache\conf\httpd.conf,搜索Listen 80并更改为Listen 81

2) 在 下C:\xampp\apache\conf\extra\httpd-ssl.conf,搜索Listen 443并更改为Listen 444

于 2019-04-02T13:35:50.127 回答
1

For my case, I didn't have htdocs folder in xampp folder. It seems that it requires htdocs folder to run so you can create an empty htdocs folder in the xampp folder.

于 2018-07-25T04:02:03.900 回答
1

在终端中运行这些命令,一切都会正常工作:

sudo /etc/init.d/apache2 stop   
sudo /opt/lampp/lampp start
于 2020-04-22T07:19:39.397 回答
1

有同样的问题,上述解决方案都没有奏效。因此,通过仔细阅读日志,我发现了这条消息:

10:55:42 [Apache] ""C:\Program Files (x86)\VMware\VMware Workstation\vmware-hostd.exe" -u "C:\ProgramData\VMware\hostd\config.xml 正在使用端口 443 "" 带有 PID 1908!

在此处输入图像描述

就我而言,我只需要停止自动运行的 VMWare 服务。

在此处输入图像描述

关键是仔细阅读XAMPP Panel启动时给出的信息。

希望这有帮助!

于 2019-11-14T09:12:08.980 回答
1

可以有很多方法来解决这个问题,但这里是最简单的一种:

转到 XAMPP 控制和...

以管理员身份运行

就这样..

这是任何此类异常的黄金点。

作品背后的理念

实际上 Xampp 中的所有服务都需要 Ports 依赖。发生的情况是,当没有赋予 xampp 特殊权力时,它只会寻找一些预定义的端口来运行这些服务。而且,如果以防万一,这些端口不知何故已经很忙了……哎呀!服务无法启动。

但是,如果我们赋予 Xampp 控制超能力(通过以管理员身份运行),它将以某种方式进行管理,并且肯定会在端口上运行服务。和胜利!你做到了。

给我亲爱的兄弟姐妹的永久小费

要一劳永逸地努力,请按照下列步骤操作:

  • 右键单击xampp-control.exe 文件并转到属性。
  • 转到兼容性选项卡。
  • 在下面的设置中,选择复选框Run this program as an administrator
  • 应用更改。你完成了。

现在,每次您运行应用程序时,它都会以管理员身份运行,您根本不需要关心端口。

于 2017-04-09T06:47:50.533 回答
1

如果您在 Windows 上全新安装后直接遇到此问题:

似乎安装程序已经启动了 http.exe 进程并阻止了初始端口 80,但并未在控制面板中反映此状态。

要验证,只需在浏览器中测试正在运行的服务器。在浏览器地址栏中输入:

本地主机

如果这会显示 XAMPP 仪表板,那就没问题了。或者,检查任务管理器以查看正在运行的“Apache HTTP 服务器”(httpd.exe) 进程。

您可以使用 xampp 基本文件夹中的 xampp_stop.exe 停止 apache 进程。然后,XAMPP 控制面板应该按预期工作。

于 2015-12-08T13:15:09.227 回答
0

我有一个解决方案。我遇到了这个问题并研究了解决方案,但我没有成功。所以我下载了更新版本的 XAMPP 并点击了程序中的 netstats 选项。
那里他给了我一个程序列表和他们使用的端口,所以我看了看,没有使用端口的程序80,但是 apache Beyond80也使用端口443......并且这扇门有一个名为 Pando Media Boster 的程序,我启动了任务管理器并完成了 pando Average boster 的过程。希望它有所帮助:)。

于 2014-02-23T14:08:20.323 回答
0

对于那些刚刚手动激活 Windows Defer 勒索软件保护的人;可能是您的 xampp 文件夹或 c:\ 驱动器已在受保护的文件夹中列出,并且 httpd.exe、php.exe 被阻止访问它。

于 2022-02-04T08:29:42.147 回答
0

因为我有同样的问题,所以现在才看到这个,但是更改端口或任何其他答案对我不起作用。

这就是问题所在 - 我已将 XAMPP 安装到自定义位置(例如 D:\Programming\XAMPP)。现在,由于 xampp 中的配置文件有简单的位置(/xampp/mysql/data 等),我的服务无法启动。

因此,我只需将所有这些位置从 /xampp/mysql/data 重命名为 D:/Programming/XAMPP/mysql/data,现在它就可以工作了。

于 2021-07-03T20:43:21.760 回答
0

我也面临同样的问题。我找到了一个简单快捷的解决方案。

您唯一需要做的就是每次都以管理员身份运行 XAMPP 服务器。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

于 2015-12-31T10:54:48.260 回答
0

使用服务器正在运行的任何方法,之后您可以使用此地址在浏览器上打开页面(如果您已将端口 80 替换为 81 )

http://localhost:81/phpmyadmin/
于 2020-01-30T11:22:11.403 回答
0

对我来说,这是因为 vmware(服务——它有大约 2 或 3 个不同的服务),停止它,一切正常

于 2018-12-23T08:19:21.023 回答
0

即使您已将 Apache 配置为侦听另一个端口,如果另一个程序使用默认的 SSL 端口 443,您仍然会收到此错误。

您还需要编辑的是 http-ssl.conf 文件并更改 Listen 443行并更改那里的端口号。

于 2017-08-23T09:45:44.983 回答
0

可能您更改了“httpd-ssl.conf”中的配置文件

<VirtualHost _default_:443>
DocumentRoot "D:/Server/xServer"
ServerName xyz.abc.com
SSLCertificateFile "conf/ssl.crt/xyz.crt"
SSLCertificateKeyFile "conf/ssl.key/sftaps.in.key"
</VirtualHost>

可能是您更改了 Apache 文件夹中的证书名称或其他内容。

于 2017-03-30T12:19:32.650 回答