在我们启动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,记录下最后几个数字;
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正常启动
解决办法:1、运行cmd,然后输入regedit 打开注册表
2、找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP,找到一个DWORD值Start,将其改为0
3、重启电脑,80端口就不会被占用了,你就可以正常使用80端口了