80埠一般被當做網頁伺服器的預設埠,使用本機搭建伺服器環境的時候,都會預設使用80埠來作為網頁訪問端,但是有的時候80埠會被其他的不明身份的程式占用,導致 apache 啟動失敗,修改 apache 的預設埠後訪問本機位址又非常麻煩。下面介紹一下如果80埠被占用後應該如何處理。
修改 apache 埠的方法是最妥協的方法了,後果是當你開啟 apache 伺服器的時候,訪問的本機位址將會附帶埠號,比如 http://localhost:8888 。
修改方式是直接修改 httpd.conf 檔案,檔案的位置在 apache 安裝目錄下的 conf 資料夾下,直接用記事本開啟,找到 listen 80 ,將80修改為其他未被占用的埠。
注:httpd.conf 檔案中,以#開頭的行是關閉的,不生效的,不以#開頭的行是啟用的。進入命令提示行(開始執行輸入 cmd),輸入命令 netstat –ano ,就可以看到本機所有埠的使用情況,一般80埠在第一行,截圖顯示,埠已經被占用,pid 中寫明 listening 4。
埠占用情況
pid=4 的程式是哪乙個呢?接著在命令提示和下輸入指令 tasklist ,列出所有當前執行的程序,
發現 pid=4 的程序,居然是 system 。
其實本身我用的 apache 好好的,只是突然不能啟動了,回想在此期間新安裝的軟體,面子這麼大,能讓系統占用80埠的,也只能有 sql server 2008 了。經過查詢,發現占用80埠的確是 sql server 2008 裡面的元件——sql server reporting services (mssqlserver)。是 sql server 的日誌系統,就是他好端端的突然占用了80埠,而且對於普通人來講,這個元件的作用沒啥用,關掉也是節約資源。
關閉方法很簡單,在cmd中輸入 services.msc ,進入服務視窗。或者直接在開始選單裡面的搜尋框中輸入「服務」即可開啟。然後找到 sql server reporting services (mssqlserver) 這個服務,然後停止,被占用的80埠就被釋放出來了。你也可以設定它的啟動方式為「禁用」。
sql server reporting services
看清楚了,就是它。
除此之外,我還在網上找到了另外80埠被 system 占用的原因,就是微軟家的 iis 服務,關閉方式可以去控制面板去關閉即可。
80埠被system(pid 4)占用
1 檢視80埠被哪個程序占用,cmd netstat ano findstr 80 2 cmd tasklist列出當前執行中的程序,或在任務管理器中檢視pid為4的程序。經檢視,pid的程序為system。3 取消system對80埠的占用 目前已知有兩種可能,一為sql server占用 二為i...
80埠被System占用pid 4
該程序是http.sys。它是http api的驅動元件,http棧伺服器。如果該埠被http.sys占用,說明一些正在使用http.sys的應用程式在執行。這就是阻止apache執行的原因,因為http.sys占用著80埠。我們提供了一種應用程式的機制來幫助控制埠共享,但是我需要調查導致你遇到這種...
80埠被system 占用
1 執行 netstat ano 發現80埠被pid 4的程序占用 2 開啟任務管理器,發現pid 4的程序,其實是system程序,其對應的程序描述是nt kernel system。3 如何清除呢?需要使用登錄檔,開始 regedit,開啟 4 找到hkey local machine目錄 5 ...