启动Apache或nginx时显示80端口被占用解决办法汇总

在我们启动Apache或者nginx的时候经常会出现端口被占用或者一下错误

[emerg] 17992#18204: 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)

对于这个问题,网上的解放办法有很多种办法,对于有些情况也不太适用,在此我对这些方法和我遇到的情况进行一个汇总,常见的有一下几种情况:

1、被程序或其他应用软件占用了电脑的80端口

解决办法: 1、运行cmd,然后输入netstat -a -n -o;

                  2、查看开头几行包含0.0.0.0:80的那一行最后的pid,记录下最后几个数字;

                  启动Apache或nginx时显示80端口被占用解决办法汇总_第1张图片

                  3、启动任务管理器“进程”,在工具栏“选择列”前面的框里打上勾,对于Windows 10,在服务tab页中;

                  4、然后找到与刚才那个pid对应的是哪个程序,就是它与0.0.0.0:80进行了绑定(bind)结束进程;

                  备注:杀掉进程的命令:taskkill /pid 4 /f其中 /f表示强制关闭该进程

 

2、查找发现pid=4的system进程占用了80端口,因为是系统进程,也无法结束它,经查SQL Server ReportingServices (SQLEXPRESS) 服务占用80端口,停止SQL Server ReportingServices后APache正常启动

启动Apache或nginx时显示80端口被占用解决办法汇总_第2张图片

解决办法:1、运行cmd,然后输入regedit 打开注册表

                 2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP,找到一个DWORD值Start,将其改为0

              启动Apache或nginx时显示80端口被占用解决办法汇总_第3张图片

                3、重启电脑,80端口就不会被占用了,你就可以正常使用80端口了

 

你可能感兴趣的:(技术杂谈系列)