XAMPP:无法启动Apache(Windows 10)


89

我正在使用XAMPP,并且可以启动Apache,但是,MySQL(phpMyAdmin)已启动!

当我开始时,出现此错误;

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

我对其进行搜索,然后在Config-> Service and Port setting中更改Apache的端口。我有;

Service name: Apache 2.4
Main port: 122
SSL port: 444

我还卸载了Skype(Windows 8/10 / Metro版本)。什么都没用。在httpd.conf文件中;

Listen 122
ServerName localhost:122

我通过它开始apache_start.bat并获得;

(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address [::]:445
(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address 0.0.0.0:445
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

请注意,所有日志文件都不存在! Skype已卸载。


您是否检查端口是否被阻塞?
Rizier123 2014年

1
也尝试以管理员身份运行
nonamorando 2014年

3
尝试启用apache时是否正在运行skype?如果是这样,请更改Skype设置。
iSaumya 2014年

3
您不能拥有localhost:80和收听port 122。选择要监听的端口。
洛伦兹·梅耶

好的,我做了一些修改:@ Rizier123->我检查了一下,但是我不确定这是否是好方法。@ Will-Campbell->是的,但仅此而已。@iSaumya-> Skype不在我的计算机上。@洛伦茨-梅耶尔- >我现在已经Listen 122ServerName localhost:122
费利克斯·德信

Answers:


223

更新:2018年5月15日:

最新的Windows 10更新(重新)激活了万维网发布服务(德语:WWW-Publishingdienst)。这可能取决于您在配置更新后选择的选项,然后再进行更新。

更新:2015年8月4日:

如果您已经完成Windows 10的全新安装,则可能没有Word Wide Web Publishing服务。在这种情况下,简单的WAMP / XAMPP安装应该可以正常工作。

如果不是,请尝试安装Visual C ++ Redistributable,然后重新安装WAMP / XAMPP。


我遇到了WAMP的类似问题。在Windows 10 TP中,预先安装了Word Wide Web Publishing服务。这与IIS有关,如果不需要,可以将其删除。

这阻塞了端口80,使Apache行为异常。您可以执行以下操作,然后重试。

  • 转到“开始”,键入services.msc
  • 在“服务”窗口中向下滚动以找到World Wide Web Publishing服务
  • 右键单击它,然后选择停止

这应该使端口80空闲,并且重新启动WAMP / XAMPP应该可以使您正常运行!

还有其他方法可以解决此问题。请参阅使WAMP在Windows 10上工作


7
如果我没有列出“万维网发布服务”作为服务怎么办?
Xtremefaith 2015年

6
服务的名称W3SVC描述World Wide Web Publishing服务。我最初认为我没有该服务,因为按名称排序时我没有看到所描述的服务。
Jake Z

1
是的,我也遇到这个问题,当我检查它时,它一直告诉我“一个PID为4的进程正在使用端口80”,进程名称为“ System”。我一直认为如果尝试停止此过程,可能会弄乱我的PC。但这完美地工作了。谢谢
Kebab程序员2015年

1
对于那些使用统一服务器Z的用户(这太好了!),我也可以确认该服务器也适用。
MisterM

1
@PraveenPuglia哼哼..有趣的评论,给我工作!我尝试删除文件“ ntoskrnl.exe”是端口4的原因...很多Google搜索说病毒...要停止的好服务是工作大声笑..谢谢,兄弟
KingRider

36

解决这个问题很容易:

  1. 使用管理员权限打开命令提示符
    • 找到“ cmd”,右键单击它,然后选择“管理员”。
  2. 在提示中,键入net stop W3SVC并按Enter。

现在,您可以单击WAMPP并重新启动所有服务。打开浏览器,然后导航到“ localhost”。

如果您需要再次启动W3SVC,

  1. 使用管理员权限打开命令提示符
  2. 在提示中,键入net start W3SVC并按Enter。

在Windows 10的发行版本上,我得到“发生系统错误3。访问被拒绝。”
Mike_Laird

您需要成为管理员。再试一次。
DIANGELISJ 2015年

是的,谢谢DIANGELISJ。在Windows 10中,右键单击cmd,然后单击上面的说明,然后右键单击httpd.exe,然后我又重新使Apache运行。httpd.exe框为黑色,但是Apache可以。
Mike_Laird

我在使用XAMPP的Windows 10上遇到了相同的问题。每次重新启动后,我都必须转到XAMPP控制面板,然后重新安装并重新启动Apache和MySQL服务。以管理员身份运行XAMPP控制面板似乎已解决问题,谢谢!
SharpC

这是正确的答案,您需要做的就是关闭IIS,然后启动xampp。控制面板-管理员-Internet信息服务-“停止”就是这样。非常简单。(与上述操作相同,只是通过接口。)
Elaine Ossipov 2015年

17

我找到了解决此问题的方法:

  1. 如果还使用Skype,请取消选中说明使用端口80和443的字段(“附加->设置->高级->连接->取消选中端口80和443”)
  2. 重新启动Skype和XAMPP。

如果这样不起作用,

  1. 转到开始,然后键入“ services.msc”
  2. 找到“万维网发布服务”
  3. 右键单击该条目,选择“停止”,然后重新启动XAMPP。

如果这不起作用,并且“万维网发布服务”不可用,

  1. 转到控制面板,导航到“卸载程序”,然后“打开/关闭Windows功能”
  2. 找到“ Internet信息服务”
  3. 单击复选框,然后单击“确定”。
  4. 重新启动,然后重复第二种方法(services.msc)

谢谢,但是答案已经回答了。也许它可以帮助别人ESE(:
费利克斯德贾斯丁

我想出了自己的解决办法,您的回答对我无济于事。无论如何,谢谢:)
Fazal 2015年

1
辉煌!只是Skype阻止了Apache!在此过程中,我最喜欢的部分是:关闭Skype的端口80和443之后,我不得不退出Skype。出现警告,措辞如下:“如果退出Skype,将无法使用它。” 好吧,du!
CJ Dennis

14

您可以更改Apache的端口:

  1. 转到C:\ xampp \ apache \ conf \ httpd。
  2. 通过组合键Ctrl + F查找#Listen 12.34.56.78:80并将80更改为任意值,例如81
  3. 收听80相同,更改为81
  4. 与ServerName localhost:80相同,更改为81。
  5. 转到C:\ xampp \ apache \ conf \ extra \ httpd-vhosts并将80更改为81

NameVirtualHost *:80在这里

VirtualHost *:80和此处(两次)

  1. 重新启动Apache

要输入您的网页,请输入:http:// localhost:81 / index.html


我会推荐这个
Shuhratjan Nizamov,

5
  1. Windows+ R,然后输入regedit

  2.  HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP

    将值更改Start为4,表示已禁用。

  3. 重新启动计算机。


1
Windows 10“ 11月升级”引起了我的问题-以前都在Win 10的较早版本上起作用。我没有运行W3svc或Skype。 这个解决方案成功了!谢谢@Do Nhu Vy!
Jim M

5

我也已经解决了这个问题,但是我不得不更改几件事。我要求在Windows 10机器上保留C#和Visual Studio开发环境,因此我不想修改任何服务。我要做的就是下载最新版本的XAMPP并更改80和443的侦听端口。它们位于两个文件中:

C:\xampp\apache\conf\httpd.conf

Listen 122
ServerName localhost:122

C:\xampp\apache\conf\extra\httpd-ssl.conf

Listen 444

将以上内容从端口80更改为122,将端口从443更改为444,可以使Apache运行并提供页面,同时保持其他一切与ASP.NET开发相同。希望这可以帮助某人。最后,这是一个非常简单的修复程序。

将浏览器定向到: http://localhost:122


我认为这是最简单的方法。非常感谢!
Diptangsu Goswami '18

+1,因为关闭.NET Services对我来说绝对不是选择。当然,我想同时运行IIS和Apache!
艾伦(Alan)

4

我遇到了同样的问题,但是以前的解决方案导致我们更改端口,而不是获得确切的解决方案。我搜索了简单的HTTP和HTTPS协议的端口并找到了。

如果本地计算机上的HTTP或HTTPS端口已经在运行另一个应用程序,则显然由于这些端口已在使用中并且处于繁忙状态,我们会遇到此问题

这就是为什么在更改端口号后它仍在工作。但是,我没有更改XAMPP服务器中的端口,而是使用了以下方法,它对我有用。

这是此修复过程中要执行的以下步骤。

  1. XAMPP服务器应用程序中出现的错误。

    XAMPP服务器错误

  2. 在右上角有一个名为Netstat的按钮。这对于查找系统上正在运行的端口非常有用。

    Netstat按钮

  3. 这是Netstat应用程序,在其中我发现一个应用程序已经在运行并且正在使用端口号443。就我而言,它是vmware-hostd.exe。您可能是另一个应用程序。尝试搜索端口80(HTTP)或端口443(HTTPS)。

    Netstat应用程序已打开

  4. 我刚刚打开Windows 任务管理器,选择了该应用程序vmware-hostd.exe,然后使用“ 结束进程”按钮终止了该进程。我已经杀死了使用端口443的进程。目前不需要该应用程序。

    打开任务管理器并杀死该应用程序

  5. 在Windows Task Manager中终止应用程序后,Apache现在可以使用了。这是证明。

    Apache工作


注意: *如果发现使用了任何类型的应用程序,则HTTPHTTPS端口表示端口80或端口443,并且该应用程序不重要或不重要,则只能终止该应用程序的进程。

否则,无需执行以下步骤。然后,您需要考虑更改XAMPP应用程序的端口,如先前的答案所述。*


4

我尝试了此处答案中列出的所有内容,但没有一个起作用。

然后,我要做的就是通过以下方式以管理员权限重新启动XAMPP:

开始菜单-右键单击XAMPP-选择以administartor身份运行

有效。就这么简单。

我卸载了IIS服务,停止了WWW服务,将端口更改回80,阻止了Windows 10防火墙中的所有apache和mysql连接,但是是的,它仍然有效!


2

玩完之后,实际上您要做的就是在httpd.conf文件中更改两行:

“ Listen 80”更改为“ Listen 122”(或您想要的其他任何内容)

从“ ServerName Localhost:80”“ Localhost:122”(或您在上面更改的端口)

然后一切都应该开始:P


2

看起来有很多选择。答案取决于您的Windows安装。这是我在Windows 10全新安装中遇到相同问题并通过以下步骤解决问题时的经验:

  1. 安装Visual C ++可再发行组件
  2. 打开XAMPP并在Apache服务中选择configure
  3. 将端口80更改为9000或81或将文件httpd.conf中的任何内容更改为该行Listen 80
  4. 更改httpd-ssl.conf上的端口并更改Listen 443Listen 441
  5. 重新启动XAMPP并启动Apache服务。这个对我有用。

注意:我使用的是XAMPP版本5.6.15和XAMPP控制面板版本3.2.2。


2
好的收获-确保http和https端口不冲突
Aaron Hudon

1
  • 转到“开始”菜单,然后键入“ 打开或关闭Windows功能”。
  • 取消选中Internet信息服务
  • OK

1

就我而言,这是删除IIS的简单情况,因为Windows 10预先安装了IIS(Internet信息服务)-与XAMPP冲突,因为这两个服务器都尝试使用端口80。如果您不想使用IIS,继续使用XAMPP

  1. 在Windows 10中运行/搜索
  2. 搜索“可选功能”
  3. 在该列表上取消选中Internet Information Service(IIS)

然后重新启动



1

万维网发布服务是不是在我的情况下,只有一个人负责。

我已经安装了IIS,因此不得不停止整个HTTP服务。

这些是我在CMD中(作为管理员)执行的命令:

net stop W3SVC
net stop http

1

如果已安装SQL Server,则其某些服务可能会阻止XAMPP需要的端口。我通过禁用SQL Server Reporting Services解决了我的问题,现在Apache可以正常启动了。

只需打开services.msc,向下滚动,然后找到SQL Server Reporting Services即可。右键单击它,然后单击Stop


0

实际上,默认情况下会安装IIS(Microsoft,.NET等)。

  • 转到控制面板
  • 打开或关闭Windows功能...
  • 在(IIS)Internet信息服务下,取消选中(WWWS)万维网服务。
  • 单击确定。

这可能是一个永久性的解决方案。:)


0

这个建议很棒。我遇到了同样的问题,但是我的解决方案有所不同,因为我是如此愚蠢,以至于我已将XAMPP所在的目录重命名,并且由于我安装了许多其他程序,所以无法将其重命名。

在我的情况下,原始目录为C:\ Programs \ Xampp,并将其重命名为C:\ PROGRAMS_ \ Xampp,这是错误的。

解决方案是在C:\ Programs上找到所有引用,并将它们重命名为XAMPP目录中的C:\ PROGRAMS_,因为由于某种原因,在安装过程中它会写入绝对路径,而不是相对路径。当然,注册表中也有一些引用。


这似乎是一个非常具体的情况,似乎与问题的情况不符。
dakab,2015年

是的,我同意,但是我认为这可能对某人有帮助,因为我面临着相同的情况(使用新的windodw 10)并且错误也相同,所以也许这是不完全相同的情况,再者,我认为有人觉得这很有帮助。
Mayk 2015年

0

只需使端口80可用于Apache服务即可。我解决问题的方法是:

  1. 在Windows 10上,右键单击开始按钮,然后选择运行。
  2. 键入services.msc,然后单击OK
  3. 查找并右键单击万维网发布服务
  4. 选择属性
  5. 启动类型值更改为自动(延迟启动)
  6. 重启你的电脑。

你有它。一切恢复正常。



0

我已经尝试了以上所有解决方案。但是它没有任何作用。

最后,我刚刚卸载了 XAMPP并再次安装。然后它对我有用。

现在,我可以在任何端口(包括80)上运行服务器


0

脚步:

  • 打开XAMMP控制面板
  • 打开Apache Config,然后选择Apache-xammp-配置文件
  • 搜索“端口443”,然后将其更改为其他端口,例如4433
  • 然后重新启动。

谢谢@Peter Mortensen编辑我的答案:)
C Williams

0

检查您的PHP安装是否有效。

检查您正在Apache的配置中运行哪个php.ini文件,并使用它运行php.exe ...


0

您可能只是将Windows更新为1903版(操作系统内部版本:18362.239), 或者更改了用户密码。尽管消除了所有端口冲突,但在本文开头,我仍然不断收到OP描述的消息。

最后,我通过将XAMPP升级到7.3.7来解决它。(当被迫重新安装时,您最好同时升级!)

但是,当我再次去更改“ root”用户密码时,问题再次出现。

控制台错误消息掩盖了表mysql.user已损坏的事实。

检查文件mysql_error.log。如果看到致命错误:无法打开和锁定特权表:表'user'的索引已损坏;尝试修复它,然后看看这个


0

我遇到了同样的问题,并通过卸载WAMP服务器解决了该问题。

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.