Windows10下80端口被PID為4的System占用導(dǎo)致Apache無(wú)法啟動(dòng)的分析和解決方法
更新了Windows10,總體上來(lái)說(shuō)效果還是蠻不錯(cuò)的,然而今天在開啟Apache服務(wù)器的時(shí)候卻發(fā)現(xiàn),Apache莫名其妙的打不開了,起初以為是權(quán)限的問(wèn)題,于是使用管理員身份的控制臺(tái)去調(diào)用命令net start Apache2.4,結(jié)果依然是無(wú)法打開。手動(dòng)啟動(dòng)服務(wù)報(bào)錯(cuò)“Windows不能再本地計(jì)算機(jī)啟動(dòng)Apache,有關(guān)更多信息,查閱系統(tǒng)時(shí)間日志。如果這是非Microsoft服務(wù),請(qǐng)與服務(wù)廠商聯(lián)系,并參考特定服務(wù)錯(cuò)誤代碼1?!比缦聢D所示:
Windows不能再本地計(jì)算機(jī)啟動(dòng)Apache,有關(guān)更多信息,查閱系統(tǒng)時(shí)間日志。如果這是非Microsoft服務(wù),請(qǐng)與服務(wù)廠商聯(lián)系,并參考特定服務(wù)錯(cuò)誤代碼1。
看到這種情況,我有手動(dòng)cd到Apache的httpd.exe的目錄,執(zhí)行了一下httpd,這下原因找到了,如下圖所示:
(OS 10013)以一種訪問(wèn)權(quán)限不允許的方式做了一個(gè)訪問(wèn)套接字的嘗試。 : AH00072: make_sock: could not bind to address 127.0.0.1:80 AH00451: no listening sockets available, shutting down AH00015: Unable to open logs
從圖中可以看到錯(cuò)誤的原因是套接字綁定錯(cuò)誤,這下可以確定是Apache的80端口被占用了。于是就使用命令 netstat -ano 來(lái)查看一下到底是哪個(gè)程序占用了80端口,如圖所示端口查找的結(jié)果:
看到80端口被PID為4的System進(jìn)程占用。仔細(xì)想了想,一般的程序不會(huì)占用80,遂使用命令 netsh http show servicestate 查看一下當(dāng)前的http服務(wù)狀態(tài),發(fā)現(xiàn)果然有問(wèn)題,如下圖所示:
圖中可以看到,80端口被一個(gè)DefaultAppPool的東西占用了,如果用過(guò)IIS的童鞋,這時(shí)候肯定一定想到了原因,這里我們依然要接著往下找原因,圖中可以看出控制器進(jìn)程ID為4640,那么就 就繼續(xù)查看一下4640進(jìn)程是什么鬼,進(jìn)入任務(wù)管理器,找到PID4640的進(jìn)程,右鍵轉(zhuǎn)到服務(wù),可以看到當(dāng)前的進(jìn)程所在的服務(wù),如圖所示:
看到圖中的服務(wù),這里原因也就找到了,IIS的World Wid Web Publishing Service 萬(wàn)維網(wǎng)服務(wù)的問(wèn)題。
會(huì)員登錄
賬號(hào)登錄 還沒(méi)有賬號(hào)?立即注冊(cè)