Apache在xampp中无法运行

29

我刚刚安装了XAMPP,除了无法运行apache之外,一切都正常。看起来端口80是问题所在,我已经禁用Skype来使用端口80,但它似乎没有解决问题。我在某个地方读到说SSL端口可能是问题所在,应该更改。但我无法找到端口在哪里或如何更改。

"Check the "/xampp/apache/logs/error.log" file"

我已经尝试检查这个文件,但是在“logs”文件夹里面没有任何内容。从apache中,我可以进入错误日志,但是没有任何最近更改过的文档。

错误信息:

20:34:24  [Apache]  Problem detected!
20:34:24  [Apache]  Port 80 in use by "system"!
20:34:24  [Apache]  Apache WILL NOT start without the configured ports free!
20:34:24  [Apache]  You need to uninstall/disable/reconfigure the blocking application
20:34:24  [Apache]  or reconfigure Apache to listen on a different port

20:40:50  [Apache]  Attempting to start Apache app...
20:40:50  [Apache]  Status change detected: running
20:40:51  [Apache]  Status change detected: stopped
20:40:51  [Apache]  Error: Apache shutdown unexpectedly.
20:40:51  [Apache]  This may be due to a blocked port, missing dependencies, 
20:40:51  [Apache]  improper privileges, a crash, or a shutdown by another method.
20:40:51  [Apache]  Check the "/xampp/apache/logs/error.log" file
20:40:51  [Apache]  and the Windows Event Viewer for more clues

我该如何修复这些错误?


通常 Skype 使用免费端口 80 进行传入连接。请按照以下教程解决此问题。只需在 Skype 中禁用它即可。请参考以下教程获取更多信息:http://www.feelzdroid.com/2015/12/install-php-server-local-machine.html - Naruto
我有同样的问题,请查看我的答案:https://dev59.com/J2Ij5IYBdhLWcg3wKiPs#46904133 - Günay Gültekin
17个回答

47

如果您只想运行Apache并不介意它在哪个端口上运行,请按照以下步骤操作:

在XAMPP控制面板中,单击Apache旁边的“配置”按钮(位于“日志”按钮旁边)。

从下拉列表中选择“Apache(httpd.conf)”。(记事本应该会打开)

使用Ctrl + F查找“80”。点击“查找下一个”三次,并将Listen 80改为Listen 8080

再次点击“查找下一个”几次,直到看到ServerName localhost:80这一行,将其更改为ServerName localhost:8080

使用Ctrl + S保存,然后退出记事本。

在XAMPP控制面板中再次启动Apache,Apache应该能够成功运行。

使用http://localhost:8080/在浏览器地址栏中检查是否一切正常。

注意

如果您正在运行IIS,则可能无法同时运行XAMPP。 如果您正在运行IIS,则最好停止服务,然后启动XAMPP。


我没有 Skype,端口 80 仍然被占用。虽然这个方法可行,但我想把它改回端口 80。有人知道还有什么可能在使用端口 80 吗? - Coomie

22

查找使用端口80的其他服务。

我听说skype使用端口80。请检查是否有另一个服务器或数据库在后台运行端口80。

xampp的两个很好的替代品是wampeasyphp。其中,wamp最为用户友好,并且它还具有内置工具,可用于检查端口80是否被占用以及当前正在使用该端口的服务。

或者禁用iis。已知它默认使用端口80。


1
我该如何检查哪些其他服务正在使用端口80?:] 我已经禁用了Skype使用端口80:] - Madde
2
打开命令提示符并输入“netstat -aon”(不带引号)。这将列出所有服务及其pid。找到使用端口80的服务并列出其pid。然后打开任务管理器,转到服务选项卡,并终止具有相应pid的进程。 - shash7
1
必须是系统进程。尝试禁用或卸载iis。哦,还要编辑htaccess或conf文件以更改端口。据我所知,它在里面。 - shash7
Skype在我的情况下是罪魁祸首。 工具 > 选项 > 高级 > 连接 取消勾选“使用端口80和443…” - Dmytro Sukhovoy
1
使用"netstat -aon"找到有问题的进程后,您可以使用"taskkill /pid <pid>"命令从cmd中终止它们。 - Nick Kuznia
显示剩余7条评论

13

解决此问题有两种方法。

  1. 如果您想在另一个端口上运行Apache,则需要执行以下操作:在xampp / apache / conf / httpd.conf中将“ServerName localhost:80”替换为“ServerName localhost:81”,位于第184行。然后即使它可能无法正常工作,请进行替换
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80 

需要翻译的内容:

by

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

在第45行

  1. 如果您想使用80端口,则需按照以下步骤操作。在Windows 8中,“万维网发布服务”正在使用此端口,停止此服务将释放端口80,然后您可以使用该端口连接Apache。要停止服务,请转到“任务管理器 -> 服务选项卡”,右键单击“万维网发布服务”并停止该服务。如果在此处找不到它,则转到“运行 > services.msc”,再次查找并右键单击“万维网发布服务”并停止。

如果您没有在那里找到“万维网发布服务”,则请转到“运行>>resmon.exe>>网络选项卡>>监听端口”,查看哪个进程正在使用端口80。

enter image description here

从“概览>>CPU”中,右键单击该进程,然后点击“结束进程树”。如果该进程是系统进程,则可能存在关键问题。


9

如果遇到Skype无法正常使用,可以尝试先关闭Skype再启动xampp,如果成功了,则需要将Skype的端口更改以避免占用80端口。


在我的情况下,Skype 阻塞了端口80 :) 谢谢提示。 - Tobias Oberrauch

7
请看这个网站:http://www.lukebrowning.com/blog/nt-kernel-system-using-port-80/
在我的情况下,是SQL Server Reporting Service,但其他人可能会看到IIS或Web Deployment Agent Service。
打开cmd窗口并运行services.msc,找到服务并停止它。然后尝试启动Apache。如果可以工作,请禁用其他服务。

非常感谢!我停止了Apache和MySql服务器。然后启动了Apache,再启动了MySql。然后它就可以工作了!!! - Adrian Smith

6
请注意,这个问题通常由以下两个原因引起:
1. 端口80已被占用。
2. 端口443已被占用。
对于第一个原因,像其他人说的那样,您可以从Windows任务管理器的“服务”选项卡中的“服务...”按钮中关闭Skype和SQL Serever Reporter。
但是,如果这不奏效,那么很可能是因为端口443,所以请尝试以下方法:
如果您使用VMware,请前往Windows任务管理器的“服务”选项卡中的“服务...”按钮,并找到“VMware Workstation Server”服务,双击它并按下“停止”按钮。
没有必要停止其他VMware的服务。
然后再次尝试运行Apache。

谢谢,我不知道VMWare也在使用443端口。 - Jacky
停止 VMWare Workstation 服务器对我也起了作用。 - saintjab

1
在我的情况下,是其他问题。前一天我试图使用XAMPP的Bitnami安装WordPress,但我没有成功。当我看到错误日志时,发现有一个错误:

httpd.exe: Syntax error on line 560 of C:/xampp/apache/conf/httpd.conf: Could not open configuration file C:/xampp/apps/wordpress/conf/httpd-prefix.conf: The system cannot find the path specified.

我打开了httpd.conf文件并找到了这一行:


Include "C:/xampp/apps/wordpress/conf/httpd-prefix.conf"

我刚刚使用#进行了注释,

现在它运行良好。:)


1
谢谢!我已经搜寻了好几个小时才找到这个。棒棒哒 :) - Eoin

1

在Skype中注销您的帐户.. 然后在xampp控制面板中,单击Apache行中的启动按钮..


0
在我的情况下,问题出在其他地方。一天早些时候,我尝试使用xampp的bitnami安装Magento。然后我删除了那个模块。
我打开了httpd.conf文件并发现了这行代码:
Include "C:/xampp/apps/magento/conf/httpd-prefix.conf"

我刚刚用 # 注释了它,

现在它正常运行。:)


0

以上方法都对我没用。这是最终解决方案:

1) Start Services (Type services in your start > search)
2) Look for Apache services.It was disabled in my case. Enabling it worked for me.

一些人也报告了Apache服务的重复列表,这阻止了它的启动。如果是这种情况,请删除/禁用与错误路径对应的一个Apache服务。

可能需要重新启动XAMPP。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接