首页 > 代码库 > 解决Apache2.2不能启动,原因80端口被system pid 4占用
解决Apache2.2不能启动,原因80端口被system pid 4占用
Apache2.2的安装与配置。安装完成后,输入127.0.0.1:80,打开失败,发现是80端口被禁用,首先排除IIS服务端口是否为80,此服务没被启动(本人为手动),还有迅雷等,一些软件也有可能会占用80端口。
最后在命令行运行netstat -ano ,发现80端口果真被占用。发现占用的pid是4,名字是System。
解决方法为:
1.在运行窗口打开注册表,输入regedit
2.依次打开如下:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
3.找到一个名称为:Start,类型为:REG_DWORD的项,右击修改,将其数值数据改为0,点确定保存修改
4.重启系统,System进程不会占用80端口
测试:
输入:127.0.0.1,显示“It works!”,配置成功!
注意:或相当你再次启动电脑时,80端口任会被System占用,这种情况下的解决方法是将start项所在的HTTP文件夹权限设置为system拒绝!
关于pid=4的这个系统进程,不能kill掉,更过的解释如下:
该进程是Http.sys。它是http API的驱动组件,Http栈服务器。如果该端口被Http.sys占用,说明一些正在使用http.sys的应用程序在运行。这就是阻止Apache运行的原因,因为Http.sys占用着80端口。我们提供了一种应用程序的机制来帮助控制端口共享,但是我需要调查导致你遇到这种困难的是什么特殊应用程序。如果你能提供给我们“netsh http show servicestate”这条命令的输出结果,我就能找出是哪个应用程序在使用Http.sys。在你禁用Http.sys之前,请按照下面的步骤来运行命令:
1. sc config http stat = demand PowerBet
2. reboot
3. run the command(netsh http show servicestat)as administrator
在你使用这个命令之前,你可以按照下面步骤禁用http.sys:
1. net stop http
2. Sc config http start= disabled