XAMPP端口80已被进程ID为4的"Unable to open process"占用

53
XAMPP无法工作,它显示了以下内容。
Port 80 in use by "Unable to open process" with PID 4!
6:32:24 PM  [Apache]    Apache WILL NOT start without the configured ports free!
6:32:24 PM  [Apache]    You need to uninstall/disable/reconfigure the blocking application
6:32:24 PM  [Apache]    or reconfigure Apache and the Control Panel to listen on a different port

我已经尝试了各种方法,包括删除全球网络发布服务(但这并不起作用,因为我甚至没有安装它),还使用了命令提示符,结果是

Active Connections

  Proto  Local Address          Foreign Address        State           PID
  TCP    0.0.0.0:80             Dave:0                 LISTENING       4
  TCP    0.0.0.0:135            Dave:0                 LISTENING       776
  TCP    0.0.0.0:445            Dave:0                 LISTENING       4
  TCP    0.0.0.0:2382           Dave:0                 LISTENING       2576
  TCP    0.0.0.0:5357           Dave:0                 LISTENING       4
  TCP    0.0.0.0:49152          Dave:0                 LISTENING       548
  TCP    0.0.0.0:49153          Dave:0                 LISTENING       928
  TCP    0.0.0.0:49154          Dave:0                 LISTENING       972
  TCP    0.0.0.0:49155          Dave:0                 LISTENING       1264
  TCP    0.0.0.0:49156          Dave:0                 LISTENING       660
  TCP    0.0.0.0:49157          Dave:0                 LISTENING       1832
  TCP    0.0.0.0:49159          Dave:0                 LISTENING       652
  TCP    0.0.0.0:51782          Dave:0                 LISTENING       1884
  TCP    127.0.0.1:51783        Dave:0                 LISTENING       1884
  TCP    192.168.0.16:139       Dave:0                 LISTENING       4
  TCP    192.168.0.16:50260     stackoverflow:https    ESTABLISHED     5768
  TCP    192.168.0.16:50263     ec2-54-237-50-81:https  ESTABLISHED     5768
  TCP    192.168.0.16:50287     bn1wns1011221:https    ESTABLISHED     1640
  TCP    192.168.0.16:50456     bn1wns2011310:https    ESTABLISHED     1640
  TCP    192.168.0.16:50489     stackoverflow:http     ESTABLISHED     5768

我不明白为什么它不起作用,因为几天前它还运行良好,请问有人能帮忙吗?谢谢。当我执行netstat -a -b时,它显示如下:

Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.

C:\WINDOWS\system32>netstat -a -b

Active Connections

  Proto  Local Address          Foreign Address        State
  TCP    0.0.0.0:80             Dave:0                 LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:82             Dave:0                 LISTENING
 [httpd.exe]
  TCP    0.0.0.0:135            Dave:0                 LISTENING
  RpcSs
 [svchost.exe]
  TCP    0.0.0.0:443            Dave:0                 LISTENING
 [httpd.exe]
  TCP    0.0.0.0:445            Dave:0                 LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:2382           Dave:0                 LISTENING
 [sqlbrowser.exe]
  TCP    0.0.0.0:3306           Dave:0                 LISTENING
 [mysqld.exe]
  TCP    0.0.0.0:3306           Dave:0                 LISTENING
 [mysqld.exe]
  TCP    0.0.0.0:5357           Dave:0                 LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:49152          Dave:0                 LISTENING
 [wininit.exe]
  TCP    0.0.0.0:49153          Dave:0                 LISTENING
  EventLog
 [svchost.exe]
  TCP    0.0.0.0:49154          Dave:0                 LISTENING
  Schedule
 [svchost.exe]
  TCP    0.0.0.0:49155          Dave:0                 LISTENING
 [spoolsv.exe]
  TCP    0.0.0.0:49156          Dave:0                 LISTENING
 [lsass.exe]
  TCP    0.0.0.0:49157          Dave:0                 LISTENING
 [msmdsrv.exe]
  TCP    0.0.0.0:49159          Dave:0                 LISTENING
 Can not obtain ownership information
  TCP    0.0.0.0:51782          Dave:0                 LISTENING
 [sqlservr.exe]
  TCP    127.0.0.1:51783        Dave:0                 LISTENING
 [sqlservr.exe]
  TCP    192.168.0.16:139       Dave:0                 LISTENING
 Can not obtain ownership information
  TCP    192.168.0.16:49180     bn1wns2011302:https    ESTABLISHED
 [Explorer.EXE]
  TCP    192.168.0.16:49267     ec2-54-80-62-105:https  ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49318     bn1wns2011304:https    ESTABLISHED
 [Explorer.EXE]
  TCP    192.168.0.16:49397     ord08s08-in-f14:http   ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49417     ord08s08-in-f14:http   ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49418     ord08s09-in-f5:http    ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49427     static-acs-24-101-16-41:http  TIME_WAIT
  TCP    192.168.0.16:49428     static-acs-24-101-16-24:http  TIME_WAIT
  TCP    192.168.0.16:49429     static-acs-24-101-16-41:http  TIME_WAIT
  TCP    192.168.0.16:49430     static-acs-24-101-16-41:http  TIME_WAIT
  TCP    192.168.0.16:49431     static-acs-24-101-16-41:http  TIME_WAIT
  TCP    192.168.0.16:49432     ord08s08-in-f2:http    ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49434     ord08s08-in-f5:http    ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49435     ord08s08-in-f5:http    ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49436     ord08s08-in-f5:http    ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49437     ord08s08-in-f5:http    ESTABLISHED
 [opera.exe]
  TCP    192.168.0.16:49438     ord08s08-in-f5:http    ESTABLISHED
 [opera.exe]

netstat -a -b 显示在端口80上正在监听什么?基本上你有一些其他的程序在监听...比如Skype? - Lawrence Cherone
重新启动您的电脑,以管理员身份运行XAMPP,将PHP和MySQL安装为服务。 - Jason OOO
@JasonOOO 它仍然显示以下内容:7:10:22 PM [Apache] 检测到问题! 7:10:22 PM [Apache] 端口80已被“无法打开进程”的PID 4使用! 7:10:22 PM [Apache] Apache将无法在配置的端口不空闲的情况下启动! 7:10:22 PM [Apache] 您需要卸载/禁用/重新配置阻止应用程序 7:10:22 PM [Apache] 或重新配置Apache和控制面板以侦听不同的端口 7:10:22 PM [Apache] 尝试启动Apache服务... - Dave Cribbs
@LozCherone,它说“所请求的操作需要提升”...这是什么意思? - Dave Cribbs
@DaveCribbs:这意味着您需要更高的权限。 - Jason OOO
4个回答

111

只需要将Apache设置为监听不同的端口即可。可以点击与“Apache”模块在同一行的“Config”按钮,从下拉列表中选择“httpd.conf”文件,然后将“Listen 80”行更改为“Listen 8080”。保存并关闭文件。

现在它避免使用端口80,并改用8080端口而没有问题。您需要做的唯一额外事项是确保在浏览器中输入localhost:8080,以便浏览器知道要查找8080端口。否则它会默认使用端口80,无法找到您的本地站点。


13
同时更改CONFIG -> 服务和端口设置 -> 将其更改为8080。 - kim de castro
太好了,Kim。我忘记改这些设置了,一直出错,尽管它确实起作用了。谢谢。 - M0CH1R0N
CONFIG在哪里?@kimdecastro - Pratik Butani
@kimdecastro 来自哪里? - Moeez
@M0CH1R0N 配置文件在哪里? - Moeez
2
当您打开xampp控制面板的右上角时,您会看到配置按钮,单击该按钮后,您会看到端口和服务设置按钮,单击该按钮后,您将被要求更改端口号,在文件中更改后,您还需要在此处更改端口和ssl端口,否则它将无法正常工作。 - Kavya Hanumantharaju

36

我曾经遇到过启动apache服务时的相同问题,现在我想与大家分享我的解决方案。

以下是一些可能使用端口80的服务或程序的注意事项:

  1. Skype:默认情况下,Skype使用端口80/443。您可以通过“工具->选项->高级->连接”更改此设置并禁用“使用端口80和443进行其他传入连接”复选框。
  2. IIS:IIS默认使用端口80,因此您需要将其关闭。您可以使用以下两个命令 net stop w3svc net stop iisadmin
  3. SQL Server Reporting Service:如果IIS没有运行,则需要停止此服务,因为它可能会占用端口80。转到本地服务并停止它。

这些选项对我非常有效,我可以无错误地启动Apache服务。

另一个选项是从httpd.conf更改Apache监听端口并设置另一个端口号。

希望这个解决方案能帮助那些再次遇到同样问题的人。


“SQL Server Reporting Service” 已经安装在我的电脑上了! - Tom
“SQL Server Reporting Service” 在我的系统中引起了问题,停止它后,Apache 就正常工作了。 - ramya
最佳答案,谢谢兄弟。 - Juned Ansari
SQL Server Reporting Services正在运行。我想同时运行两个,该怎么办?我能否以任何方式更改SQL Reporting端口? - Hafiz Shehbaz Ali
SQL Server Reporting Service 解决了我的生活。 - khalid J-A

35

系统正在使用您的80端口。

  1. 在Windows中,“World Wide Publishing”服务使用此端口,其进程是系统,并且PID最大为4。停止此服务(“World Wide Publishing”)将释放80端口,然后您可以使用此端口连接Apache。要停止服务,请转到“任务管理器->服务选项卡”,右键单击“World Wide Publishing Service”,然后停止它。
  2. 如果您在那里找不到该服务,则转到“运行> services.msc”,再次查找并右键单击“World Wide Publishing Service”,然后停止它。
  3. 如果您在那里找不到“World Wide Publishing Service”,则转到“运行>>resmon.exe>>网络选项卡>>侦听端口”,看看哪个进程正在使用80端口。

enter image description here

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


1
直接在资源监视器中结束进程是可以的,因为这里一些进程并没有在任务管理器中列出。+1 - Kevin
意思是什么?简要告诉我 :) - Muhammad Ashikuzzaman
1
xampp控制面板指定端口443被PID4544使用,因此Apache无法启动。所以我打开了任务管理器,但在进程选项卡中没有显示它,我偶然发现了这个答案(使用资源监视器、结束进程等),并且解决了问题。因此点了赞。祝您愉快! - Kevin
1
如果那个进程确实是系统进程,我该怎么办? - Barrosy
1
@VirusEcks 谢谢你提供的有用信息。我会尝试更新我的回答,愿真主保佑。:) - Muhammad Ashikuzzaman
显示剩余2条评论

10
我收到了以下错误消息: 端口80被“无法打开进程”PID 4占用! Apache在没有配置的空闲端口的情况下将无法启动! 您需要卸载/禁用/重新配置阻止应用程序, 或重新配置Apache和控制面板以侦听不同的端口。 开始检查计时器 控制面板准备就绪
我打开了httpd.conf并在两个位置将侦听端口从80更改为1234。

Listen 12.34.56.78:1234

Listen 1234

然后转到xampp控制面板的配置,进入服务和端口设置,并将端口从80更改为1234。
那样就可以了。

这是我在2或3年前第一次安装XAMPP时得到的帮助答案(我知道因为我仍然看到我的点赞),今天我安装了更新版本的XAMPP,它仍然对我有所帮助。非常感谢。 - Mickael Bergeron Néron
更改端口后,我应该使用localhost还是Localhost:1234? - Suman Thapa Magar

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