昨天剛更新了Windows10,總體上來說效果還是蠻不錯(cuò)的,然而今天在開啟Apache服務(wù)器的時(shí)候卻發(fā)現(xiàn),Apache莫名其妙的打不開了,起初以為是權(quán)限的問題,于是使用管理員身份的控制臺(tái)去調(diào)用命令net start Apache2.4,結(jié)果依然是無法打開。手動(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)以一種訪問權(quán)限不允許的方式做了一個(gè)訪問套接字的嘗試。 : 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 來查看一下到底是哪個(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)果然有問題,如下圖所示:
圖中可以看到,80端口被一個(gè)DefaultAppPool的東西占用了,如果用過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ǎng)服務(wù)的問題。
解決方案:
控制面板–>程序–>啟用或者關(guān)閉Windows功能–>找到Internet Information Service,將其關(guān)閉即可
最近電腦時(shí)不時(shí)就發(fā)生了80端口被占用的情況,簡(jiǎn)單百度解決后,當(dāng)重啟電腦的時(shí)候又發(fā)生被占用的情況.今天非常幸運(yùn)的是,發(fā)生了80端口和8080端口都被占用了情況,忍無可忍決定下定決心解決這個(gè)坑爹的問題,經(jīng)過重新百度完美地解決了這個(gè)問題,下面貼出解決方法:
一:原文地址: http://www.2cto.com/os/201505/399603.html
我的占用原因是 SQL Server Reporting Services,停止掉這個(gè)服務(wù)并設(shè)置其為手動(dòng)啟動(dòng)即可
如果你并沒有安裝 SQL Server,請(qǐng)參考下文解決
===============================================================================
突然發(fā)現(xiàn) 80 端口被莫名占用,咋一看還是 System 這個(gè)進(jìn)程
又無法結(jié)束這貨,于是開始慢慢查看到底是什么東西占用了
首先,打開 cmd 跑這一句,80 端口被System 占用,肯定是 HTTP 服務(wù)搞的鬼
?1
netsh http show servicestate
看到 REPORTSERVER 略顯疑惑
我們繼續(xù)看,得到使用 80 端口的 PID了,還等什么?開 taskmgr?。ㄈ蝿?wù)管理器)
任務(wù)管理器查看 PID 的方法:
上方在 cmd 中,我們得到 PID = 4212,現(xiàn)在我們看看是什么東西在作怪
看到上圖的結(jié)果,恍然大悟!如果大家不確定那是一個(gè)什么進(jìn)程,我們對(duì)他右鍵 - 打開文件所在位置
這下大家應(yīng)該都明白了吧。我這個(gè)占用的根本是 SQL Server 的報(bào)告服務(wù)
最后我去 services.msc 里停止他并設(shè)置這個(gè)服務(wù)為手動(dòng)就搞定了。
如何查看當(dāng)前 80 端口占用情況:
?1
netstat -ano | findstr 0.0.0.0:80
這段命令輸入后回車,中間無內(nèi)容即表示無占用
二:原文地址:https://www.caogenjava.com/detail/75.html今天筆者想在server2008服務(wù)器上用80端口跑個(gè)項(xiàng)目,但是系統(tǒng)提示80端口被占用,端口被占用這在開發(fā)過程中是常見的事情,查一下被誰占用了,干掉他不就完了。一查不要緊,結(jié)果太詭異,使用netstat -ano命令查看,80端口被pid的為0的進(jìn)程給占用了,用任務(wù)管理器一看,這個(gè)pid為0的進(jìn)程竟然是系統(tǒng)閑置進(jìn)程即system idle process,這個(gè)進(jìn)程可是干不掉的,于是乎一通百度。
說的是被sqlserver數(shù)據(jù)庫(kù)給占用了,因?yàn)槲夷桥_(tái)服務(wù)器確實(shí)也安裝了該數(shù)據(jù)庫(kù),原以為就是它的原因,但是按照文章中的說明處理之后80端口還是被占用,重啟服務(wù)器之后依舊。那篇帖子地址是這個(gè):
《解決Windows Server 2008 System進(jìn)程占用80端口》。
最終終于在其他帖子里找到了答案,廢話不多說,直接上方案。
打開設(shè)備管理器,點(diǎn)擊菜單欄中的查看-->顯示隱藏設(shè)備,這時(shí)候你能看到非即插即用驅(qū)動(dòng)程序,展開,找到HTTP,雙擊切換到驅(qū)動(dòng)程序選項(xiàng)卡,將類型設(shè)為已禁用,確定,重啟系統(tǒng)。(注:理論上,你直接點(diǎn)停止也是可以的,但是我點(diǎn)擊之后系統(tǒng)總是卡死。禁用還是要設(shè)置的,否則系統(tǒng)重啟之后80又被占用了),HTTP驅(qū)動(dòng)通常是打印機(jī)之類的設(shè)備連接造成的端口占用