启动window上的nginx总是报错,查看logs目录下的error文件,发现报错信息:
1340#3540: 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)
大概意思是 nginx listen的80后端口被占用.
在cmd窗口运行如下命令:
[plain]
C:\Users\Administrator>netstat -aon | findstr :80
如果是被系统占用:
看到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!” 了。
如果是其它的占用,就找到相应进程pid,然后kill掉,重启nginx,比如:
C:\>netstat -aon|findstr "80"
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
端口被进程号为2448的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2448"
TCP 127.0.0.1:80 0.0.0.0:0 LISTENING 2448
端口被进程号为2448的进程占用,继续执行下面命令:
C:\>tasklist|findstr "2448"
httpd.exe 2560 RDP-Tcp#5 2 16,984 K
上面很明显,是httpd这个进行占用了80端口,大家都知道httpd这个进程是apache的进程,也确实我的服务器上已经启动了apache,所以关掉apache就行了。
如果是其它的,可以直接kill掉。
当然也可以你的nginx就不要监听80端口了~~~~