Win7下nginx默认80端口被System占用
Win7下nginx默认80端口被System占用,造成nginx启动报错的解决方案
方法一:
在win7 32位旗舰版下,启动1.0.8版本nginx,显示如下错误:
[plain]
2012/04/02 13:55:59 [emerg] 7864#2376: bind() to 0.0.0.0:80 failed (10013: An attempt was made to access a socket in a way forbidden by its access permissions)
在cmd窗口运行如下命令:
[plain]
C:\Users\Administrator>netstat -aon | findstr :80
www.2cto.com
看到80端口果真被占用。发现占用的pid是4,名字是System。怎么禁用呢?
1、打开注册表:regedit
2、找到:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
3、找到一个REG_DWORD类型的项Start,将其改为0
4、重启系统,System进程不会占用80端口
重启之后,start nginx.exe 。在浏览器中,输入127.0.01,即可看到亲爱的“Welcome to nginx!” 了。
方法二:
查询:查看占用80端口的信息,那么可以在cmd窗口输入netstat -ano | findstr "80" 命令
常见的几种情况:
1、迅雷等程序或者一些其他有上传功能的软件都会占用电脑的80端口
2、netstat -abno后查看,经过查找为pid=4的system进程,因为是系统进程,
也无法结束它,经查SQL Server Reporting Services (SQLEXPRESS) 服务占用80端口,停止
SQL Server Reporting Services
3、Cmd命令窗口 net stop http 选择Y http服务成功终止,现在启动start nginx.exe可以正常启动
方法三:
貌似是做了什么更新,或者装了 WebMatrix 之后,就发现个怪事情。Nginx 启动不了,报告端口被占。原来为了省事就改了 81,但想想也不能那么回事啊,80 到底在干嘛呢?
1
>
netstat
-ano
80 端口居然被 PID 为 4 的进程所占据,更令人惊讶的是 PID=4 的是 System!
Google 了一番,有说 关闭 “World Wide Web Publishing Service” 的,有说是 关闭 IIS 信息服务 的,更有是 修改注册表 的…… 除了注册表实在不想改,其它都试了下,WWW 发布服务根本没找到,IIS 信息服务也没有打开。这时候就蛋疼了。
往往疼能激发潜能。在将所有服务按状态排序之后,逐一检查所有已启动项。迅速得到一个可疑项:“Web 部署代理服务”。
设置手动启动并禁用之。
再检查 80 端口,成功解放