XAMPP端口80被占用/EasyPHP中Apache配置文件的错误。

18

这个问题彻底毁了我的一整天。我重新格式化了我的旧Windows XP电脑,尝试安装XAMPP,结果发现当我尝试启动Apache时,xampp声称端口80已被占用....这是什么意思?

所以我尝试卸载并改用EasyPHP,但是在安装后出现了错误“Apache配置文件中的错误:系统无法执行指定的程序”。

不,我没有Skype或其他程序,就像我说的,我刚刚重新格式化了电脑,不知道发生了什么。

我很想解决这个问题,但如果您给我答案,请具体说明步骤,因为我只是一个编程新手,对于命令行之类的IT操作并不太感兴趣。

13个回答

26

释放端口80需要做以下几件事情:

  1. 检查skype是否在运行,退出skype
  2. 检查services.msc是否Web部署代理服务正在运行
  3. 检查IIS是否在运行,停止它。

一旦您启动Apache,您就可以登录skype。


3
Web Deployment Agent Service真的很重要,你做得非常好! - Timofey Drozhzhin
我使用XAMPP的Netstat命令,发现Skype占用了80端口。退出Skype后,Apache可以启动,但是我该如何同时使用两者呢?我能否更改Skype的配置端口或采用其他方法解决? - zquanghoangz
在 Skype 中,转到“工具”->“选项”->“高级”->“连接”,取消选中“使用端口 80 和 443 进行其他传入连接”。现在 Xampp 和 Skype 将同时运行 :) - iltaf khalid

17

同时只有一个进程可以使用80端口。 80端口是Web服务器的默认端口,因此当您通过HTTP访问网站时,默认情况下实际上是在访问该服务器的80端口(使用HTTPS时,端口为443)。

您可以尝试查找所有正在运行80端口的程序,但有一种更简单的方法可用于开发。 在运行XAMPP时,单击“Apache”下的“Config”。将Listen 80替换为Listen 8080,将ServerName localhost:80替换为ServerName localhost:8080

然后,当您想查看您的杰作时,在浏览器中导航到http://localhost:8080


8

SQL Server Reporting Services (SSRS)
即使卸载SQL Server,SSRS也可以保持活动状态。
停止服务的方法:

打开SQL Server配置管理器。 在左侧窗格中选择“SQL Server服务”。 双击“SQL Server Reporting Services”。 点击“停止”。 切换到“服务”选项卡,将启动模式设置为“手动”。


Skype
令人烦恼的是,Skype可以切换到80端口。要禁用它,请选择
工具 > 选项 > 高级 > 连接 然后取消选中
“使用端口80和443作为传入连接的备用端口”


IIS(Microsoft Internet Information Server)

对于Windows 7(或vista),这可能是最有可能的罪魁祸首。您可以从命令行停止服务。

打开命令行cmd.exe并输入:

net stop was /y

对于旧版本的Windows,请输入:

net stop iisadmin /y

其他

如果这不解决问题,进一步的调查工作是必要的,如果IIS、SSRS和Skype没有问题。在命令行上输入以下内容:

netstat -ao

会显示活动的TCP地址和端口。找到带有本地地址“0.0.0.0:80” 的行并注意PID值。启动任务管理器。导航到进程选项卡,如果需要,单击查看 > 选择列以确保选中“PID(进程标识符)”。现在您可以定位上面记下的PID。描述和属性应该帮助您确定使用该端口的应用程序。


1
这真的很棒,xampp有时候会很有趣。 - Michael

7

在命令提示符中运行此命令:

netstat -ano | find ":80"

它将显示在 80 端口上监听的进程(PID)。

从那里,您可以打开任务管理器,确保在列视图选项中选择了 PID,并查找匹配的 PID 以找到进程。

如果是 svchost.exe,则需要进行更深入的挖掘(请参见 tasklist /svc)。

最近我也遇到这种情况,而且不是像 Skype 这样的流行答案之一,可能是 Adobe、Java 或其他任何东西。


4

端口80可能被其他应用程序占用,如IIS。如果您不想停止它,可以更改Apache端口。以下是方法。

  1. 进入C:\xampp\apache\conf(您安装xampp的目录)。现在,找到httpd.conf
  2. 使用任何文本编辑器(如记事本)打开它,并转到其中说Listen 80的行。
  3. 将其更改为任何其他端口(如Listen 1234
  4. 保存文件。重新启动服务器并继续操作。

我还必须在 C:\xampp\xampp-control.ini 文件中进行更改,并将端口从80更改为1234。 - Adarsh Madrecha

2

当其他应用程序正在使用端口时,xampp端口80会忙碌。这可以通过以下方法之一解决:

  1. 检测使用端口80的应用程序并关闭它。
  2. 这种方法更有效。xampp默认安装带有端口80的Apache服务器。因此,您可以手动将此端口更改为任何数字。

只需找到xampp安装中的httpd.conf文件,并替换以下代码行。

#Listen 12.34.56.78:1234
Listen 80

可以选择任意端口号。这里,我选择了8000。

#Listen 12.34.56.78:1234
Listen 8000

请在同一文件 httpd.conf 中查找以下代码。
ServerName localhost

请将以下文本替换为上面代码中使用的相同数字。

ServerName localhost:8000

如果需要详细的解答,请查看http://webolute.com/blog/programming/this-may-be-due-to-a-blocked-port-missing-dependencies

此问题可能是由于端口被阻止或缺少依赖项导致的。

1
我发现在新的Windows安装中,占用80端口的最大罪魁祸首是BranchCache服务(#3)在此列表中...

  1. SQL Server Reporting Services

  2. Web Deployment Agent Service

  3. BranchCache

  4. World Wide Web Publishing Service

这4个服务可能涵盖了占用80端口的90%的本机Windows服务。

其他10%是隐藏的HTTP.sys服务/驱动程序,当另一个服务请求它时,它会占用80端口。运行此命令以禁用它并重新启动计算机。

sc config http start= disabled

除了Skype,TeamViewer也是非常常见的安装软件,如果没有进行其他配置,它将占用80端口。
列表取自:在Windows上打开80端口供Apache使用

我曾经遇到过同样的问题,后来发现:BranchCachePrintSpooler使用了80/443端口。 - Pini Cheyni

1
我曾遇到启动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服务。
另一个选择是从中更改Apache监听端口,并设置其他端口号。
希望这个解决方案能帮助任何再次遇到同样问题的人。

1
如果您正在运行VMWare Workstation,则还需要停止VmWare Workstation服务器-端口443。

1

只需做一件事

打开skype > 工具 > 高级或高级设置,将端口80更改为7395

重新启动您的系统,然后启动Apache


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