如果系统使用端口 80,如何使 Apache 工作?

如果系统使用端口 80,如何使 Apache 工作?

我花了几个小时研究并尝试各种方法让 Apache 作为 Xampp 的一部分运行,但没有任何效果。

  • 我已关闭 Skype
  • 注册表中的值已更改
  • 卸载 IIS 和 IIS 管理器

...还是没有运气。

我正在运行 Windows 7 Dell 笔记本电脑。当我netstat从命令行运行并查找进程/服务时,我发现系统正在使用端口 80。

我太害怕终止这项服务了,所以我想我除了在网上发布一个问题之外没有别的事可做。我花了太多时间处理这个问题,所以希望有人知道发生了什么。

答案1

在类似情况下,我发现以下链接很有用:

http://www.lukebrowning.com/blog/nt-kernel-system-using-port-80/

似乎有几个不同的应用程序可能会导致同样的问题;

  1. IIS 仍在运行。
  2. SQL Server Reporting Services 正在运行。
  3. Web 部署代理服务正在运行(这是我的问题)。

为了解决我的问题(第 3 号),我遵循了以下步骤:

  1. 打开服务屏幕(在桌面或开始菜单中右键单击“计算机”,然后单击“管理”。窗口打开后,展开“服务和应用程序”并选择“服务”)。
  2. 在服务屏幕上应该有一个名为“Web 部署代理服务”的服务,如果它正在运行,请双击它并停止该服务。
  3. 最后,将启动类型改为“已禁用”。

现在如果您尝试在端口 80 上运行 apache,它应该可以正常启动!

就我而言,我让报告服务保持运行,然后将其关闭即可解决问题。

答案2

如果您希望 Apache 使用端口 80,则肯定需要停止当前正在使用端口 80 的服务。您需要找出哪个服务仍在使用端口 80,“系统”听起来太笼统了,不适合停止该服务。您是否尝试过在卸载 IIS 后重新启动?

或者,您可以将 Apache 的端口更改为未使用的端口,例如 8080。然后在访问 Apache 服务器时指定端口,如下所示:http://本地主机:8080/

答案3

顾名思义,它是系统即内核,所以你如果不关闭所有窗口,则无法停止或终止它。此外,System 进程类似于svchost,也就是说,它包含多个项目,因此您需要找出哪个特定组件占用了端口 80。令人担忧的是,在 System 组件中运行的大多数组件往往是驱动程序等,因此对系统具有高级访问权限。Web 服务器不需要这样的访问权限,因此我会非常警惕,因为这听起来像是病毒或 rootkit 在系统上运行并提供 Web 界面。

您将需要运行一些安全软件来检查系统中是否存在恶意软件。

(据我所知,似乎出于某种原因,IIS 确实植入到了系统中而不是像运行良好的程序那样的专用进程,但如果您卸载了它,那么它就不可能是问题的根源。也就是说,请检查Services.msc以确保 IIS 不再存在和/或正在运行。)

要查找占用端口 80 的特定组件,请运行进程探索器然后在进程树中双击系统。查看线程选项卡并按起始地址排序。现在查看驱动程序列表,看看是否有可疑的驱动程序。会有一些 Windows 文件以及视频、音频、网卡等驱动程序文件,但您可以谷歌搜索任何看起来不熟悉的文件。您可以检查TCP查看器监控与您的系统的任何连接。

答案4

您只需执行以下操作:

  1. 停止并退出 Xampp 控制面板
  2. 以管理员身份重新启动
  3. 勾选列出的服务(Apache、MySQL、FileZilla、Tomcat 等)左侧的所有红色叉号。
  4. 安装这些服务

请注意,默认情况下不会安装这些服务。

相关内容