Apache不在XAMPP控制面板上运行(错误:Apache意外关闭。这可能是由于端口被阻塞)


77

我已经在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时出错


1
最有可能的是,默认端口80被另一个应用程序占用了
Ripon Al Wasim

1
请注意,控制面板不一定提供这些详细信息,它可能只是说“ Apache startet [Port 80]”,而实际上并未启动服务器。分辨率是一样的。
PeerBr 2014年

大多数情况是由于Skype导致,请向下滚动以查看我的询问
vanduc1102 '16

Answers:


92

对于此问题有许多可能的答案。最常见和最有可能的原因是您正在运行另一个阻止端口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

也可以在本地主机的URL中指定端口81,即

本地主机:81 / my_project.php


3
我将端口更改为81而不是80。当我在Skype登录时,Apache无法启动。错误是443被占用。因此,在登录Skype之前运行Apache可以使我感觉很好。顺序如下:首先运行Apache,然后登录Skype
Ripon Al Wasim,2013年

1
当我启动Apache时,它的运行方式为:PID:5316和5340端口:81,443
Ripon Al Wasim 2013年

3
我已将httpd-ssl.conf文件上的“侦听443”行修改为“侦听444”。因此,即使在登录Skype期间,Apache仍在运行。因此,Apache在端口81、444上运行。很好。再次感谢Timmay。
Ripon Al Wasim 2013年

2
尝试它为我工作XAMPP控制时做以管理员身份运行,我力Skype帐户或使用80端口的任何其他应用程序
Mightian

2
apache_start.bat解决了我的问题。您应该首先提到它:)
Beatles1692

38

1.进入xampp/apache/conf/httpd.conf并打开它。
在替换httpd.conf文件中line 176

ServerName localhost:80

ServerName localhost:81
它将工作。

或2.即使上述步骤无效。然后在第45行的同一文件(httpd.conf)中替换

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

  #Listen 0.0.0.0:81
  #Listen [::]:81
  Listen 81

另外,我检查了Apache和MySQL,这是我不应该做的,因为Windows已经有了它们。我取消选中它们,一切都很好。谢谢。
timmyt123 '16

可行,但也很烂。您不需要浏览至localhost:81
理查德(Richard)

19

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


这也是我在Windows 10的问题
雷米

以管理员身份运行它可以为我提供解决问题所需的信息。谢谢。
Slicktrick

我知道这些端口是免费的,并且不确定出什么问题。感谢您的解决方案!我正在运行Windows Server 2019
Yannis P.

14

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


这对我有效,因为我正在运行Windows Server 2012 R2,所以当我刷新Windows时,全新安装后XAMPP安装不在C驱动器中,我只运行setup_xampp.bat,它成功地配置了所有东西,谢谢!
Zain Ul Abidin

13

进入xampp / apache / conf / httpd.conf并打开它。然后只要换两行

Listen 80
to
Listen 81

ServerName localhost:80
to
ServerName localhost:81

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


2
我也有运行apache server.i的问题,我更改了端口号,但是它不起作用。plz帮助我。
SrividhyaShama 2015年

1
更改端口后,重新启动pc,然后重试或将端口81替换为82或83,依此类推
Behnam Mohammadi 2015年

1
您还需要更改httpd-ssl.config文件,以更改apache的443默认ssl端口。
自动驾驶

12

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

听80->听81(第58行附近)

ServerName本地主机:80-> ServerName本地主机:81(在第218行附近)


11

就我而言,问题是端口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


1
最完整的答案。
tno2007 '18

6

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

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

-

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

如何从命令提示符下删除服务?sc删除“ serviceName”

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

检查IIS是否正在运行并占用了端口80。如果是,则将其禁用。

-

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

-

希望能帮助到你。


6

我已经安装了VMWare Workstation。因此,这是导致错误的原因。

Services.msc and stopped the 'Workstation' Services.

这解决了我的问题。

谢谢


6

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

在此处输入图片说明

另一种情况是Windows 10

检查一下:

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

在此处输入图片说明


4

转到C:xampp \ apache \ conf \ extra \ httpd-ssl.conf
找到显示“侦听443”的行,将其更改为“侦听4330”,然后重新启动计算机

在此处输入图片说明

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


3

我在我的系统上发现了类似的问题,那是由于在安装xampp之前先安装了Skype。我有类似的错误。为了解决我遵循的错误,

  1. 登出Skype一段时间,
  2. 从xampp控制面板重新启动apache,
  3. 在浏览器上通过http:// localhost /检查
  4. 成功了
  5. 再次登录以使用Skype,
  6. 一切都很好,就这么简单

我不需要安装或卸载,这在不到1分钟的时间内为我工作。

干杯


是的,应该可以。Skype XAMPP正在使用的端口也尝试使用相同的端口。因此,当您注销Skype时,问题就不会发生
Ripon Al Wasim 2015年

2

如果您安装了SQL Express或任何.Net服务器,则需要停止。在管理员模式下打开cmd,然后输入以下内容:

净止损为

现在开始阿帕奇


2

最好的方法是:

上面介绍的其他方法将使您陷于很多地方请勿更改端口

两步法

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

2)键入net stop http (如果它说它不能识别关键字,那仅仅是因为您的环境变量的PATH不包含指向Program Files / System32的路径,您可以搜索如何执行此操作)在询问的每个位置按Y您不必担心,您不会停止任何重要的流程,而只是占用了您的端口的某些流程。一旦您不工作,该过程将再次接管您的端口。


这是整个主题中最被低估的评论!太好了
jasttim

1

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

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

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

本地主机

如果显示XAMPP仪表板,就可以了。或者,在任务管理器中检查正在运行的“ Apache HTTP Server”(httpd.exe)进程。

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


1

有很多方法可以解决此问题,但这是最简单的方法:

转到XAMPP控制并...

以管理员身份运行

就这样..

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

工作背后的概念

实际上,Xampp中的所有服务都需要Ports依赖性。发生的事情是,当没有给予xampp特殊权限时,它只会寻找一些预定义的端口来运行那些服务。而且,以防万一,这些端口已经因为某种原因而繁忙了…… 该服务无法启动。

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

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

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

  • 右键点击xampp-control.exe文件,然后转到属性。
  • 转到兼容性选项卡。
  • 在下面的设置中,选中复选框以管理员身份运行该程序
  • 应用更改。您完成了。

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


1

就我而言,我的htdocsxampp文件夹中没有文件夹。似乎需要htdocs文件夹才能运行,因此您可以htdocsxampp文件夹中创建一个空文件夹。


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


1

遇到相同的问题,以上解决方案均无效。因此,通过仔细阅读日志,我发现了以下消息:

10:55:42 [Apache]端口443被““ C:\ Program Files(x86)\ VMware \ VMware Workstation \ vmware-hostd.exe” -u“ C:\ ProgramData \ VMware \ hostd \ config.xml使用PID为1908的“”!

在此处输入图片说明

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

在此处输入图片说明

关键是启动时要仔细阅读XAMPP面板给出的消息。

希望有帮助!


我有同样的问题。谢谢!!
Maverick

0

我有解决办法。我遇到了这个问题并研究了解决方案,但没有成功。因此,我下载了XAMPP的较新版本,并在程序中单击了netstats选项。
在那里,他给了我程序列表以及它们使用的端口,因此我查找并没有使用port的程序80,但是apache以外的地方80也使用port 443...,这扇门有一个名为Pando Media Boster的程序,我启动了任务管理器并完成了Pando Average boster的过程。希望它能帮助:)。



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文件夹中的内容。


0

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

您还需要编辑的是http-ssl.conf文件,并更改“侦听443 ”行 并在此处更改端口号。


0

对我而言,这是因为vmware(服务-它具有大约2或3种不同的服务),请停止它,一切正常




-7

萨拉姆

您不需要更改端口号。

只能转到任务管理器并结束正在运行的任何其他程序的任务。

然后您可以开始APACHE .....

真诚的


2
终止每个程序似乎有些过头。
EWit 2014年

感谢您的回答。但是我不喜欢关闭其他程序。
Ripon Al Wasim 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.