80埠一般被當做網頁伺服器的預設埠,使用本機搭建伺服器環境的時候,都會預設使用80埠來作為網頁訪問端,但是有的時候80埠會被其他的不明身份的程式佔用,導致 Apache 啟動失敗,修改 Apache 的預設埠後訪問本機地址又非常麻煩。下面介紹一下如果80埠被佔用後應該如何處理。
修改 Apache 的預設埠(強迫症不要用) 修改 Apache 埠的方法是最妥協的方法了,後果是當你開啟 Apache 伺服器的時候,訪問的本機地址將會附帶埠號,比如 http://localhost:8888 。
修改方式是直接修改 httpd.conf 檔案,檔案的位置在 Apache 安裝目錄下的 conf 資料夾下,直接用記事本開啟,找到 Listen 80 ,將80修改為其他未被佔用的埠。
注:httpd.conf 檔案中,以#開頭的行是關閉的,不生效的,不以#開頭的行是啟用的。
查詢80埠被誰佔用的方法 進入命令提示行(開始執行輸入 CMD),輸入命令 netstat –ano ,就可以看到本機所有埠的使用情況,一般80埠在第一行,截圖顯示,埠已經被佔用,PID 中寫明 LISTENING 4。
PID=4 的程式是哪一個呢?接著在命令提示和下輸入指令 tasklist ,列出所有當前執行的程式,發現 PID=4 的程式,居然是 system 。
取消 system 程式對80埠的佔用 其實本身我用的 Apache 好好的,只是突然不能啟動了,回想在此期間新安裝的軟體,面子這麼大,能讓系統佔用80埠的,也只能有 SQL Server 2008 了。經過查詢,發現佔用80埠的確是 SQL Server 2008 裡面的元件——SQL Server Reporting Services (MSSQLSERVER)。是 SQL Server 的日誌系統,就是他好端端的突然佔用了80埠,而且對於普通人來講,這個元件的作用沒啥用,關掉也是節約資源。關閉方法很簡單,在執行框中輸入 services.msc ,進入服務視窗。或者直接在開始選單裡面的搜尋框中輸入“服務”即可開啟。然後找到 SQL Server Reporting Services (MSSQLSERVER) 這個服務,然後停止,被佔用的80埠就被釋放出來了。你也可以設定它的啟動方式為“禁用”。
看清楚了,就是它。另外的一個被佔用的原因 除此之外,我還在網上找到了另外80埠被 system 佔用的原因,就是微軟家的 IIS 服務,關閉方式可以去控制皮膚去關閉即可。