我花了几个小时研究并尝试各种方法让 Apache 作为 Xampp 的一部分运行,但没有任何效果。
- 我已关闭 Skype
- 注册表中的值已更改
- 卸载 IIS 和 IIS 管理器
...还是没有运气。
我正在运行 Windows 7 Dell 笔记本电脑。当我netstat
从命令行运行并查找进程/服务时,我发现系统正在使用端口 80。
我太害怕终止这项服务了,所以我想我除了在网上发布一个问题之外没有别的事可做。我花了太多时间处理这个问题,所以希望有人知道发生了什么。
答案1
在类似情况下,我发现以下链接很有用:
http://www.lukebrowning.com/blog/nt-kernel-system-using-port-80/
似乎有几个不同的应用程序可能会导致同样的问题;
- IIS 仍在运行。
- SQL Server Reporting Services 正在运行。
- Web 部署代理服务正在运行(这是我的问题)。
为了解决我的问题(第 3 号),我遵循了以下步骤:
- 打开服务屏幕(在桌面或开始菜单中右键单击“计算机”,然后单击“管理”。窗口打开后,展开“服务和应用程序”并选择“服务”)。
- 在服务屏幕上应该有一个名为“Web 部署代理服务”的服务,如果它正在运行,请双击它并停止该服务。
- 最后,将启动类型改为“已禁用”。
现在如果您尝试在端口 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
您只需执行以下操作:
- 停止并退出 Xampp 控制面板
- 以管理员身份重新启动
- 勾选列出的服务(Apache、MySQL、FileZilla、Tomcat 等)左侧的所有红色叉号。
- 安装这些服务
请注意,默认情况下不会安装这些服务。