本帖最后由 舞出我人生 于 2019-1-22 15:03 编辑
前言:
在项目中用到nginx,启动时闪退,查看错误日志,给出的错误如下:
nginx: [emerg] 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的默认端口是80,通过错误日志可以看出是80端口被占用导致了nginx无法启动。
解决办法:
1、按键win+R打开运行界面,输入cmd进入控制台界面
2、输入netstat -ano | findstr ":80 "
通过上述命令查看80端口占用情况,查看后,pid的值为4。
3、输入tasklist /fi "PID eq 4"
通过上述命令查看4所对应的服务名称,为System
4、在运行中输入regedit打开注册表编辑器
5、找到 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\HTTP
6、找到Start,右键修改将其制改为4。
7、重新启动系统,System进程就不会占用80端口,nginx就可以正常启动。
可以通过步骤2查看80端口占用情况8、再次启动nginx,可以正常启动,可以在任务管理器中查看到nginx的进程
总结: 这次的nginx启动闪退是由于System占用了80端口所导致的,通过修改注册表编辑器中HTTP下Start所对应的值来释放System所占用的80端口。从而是nginx启动正常。
|