如何解決網站無法訪問 Apache也無法啟動?
1、錯誤現象
這是創新互聯一個客戶的案例,客戶告知網站無法訪問了,并且Apache也無法啟動。客戶的網站是基于Apache+Tomcat+Mysql構建,于是登錄服務器查看信息如下圖。
這里提示的是http.pid文件的錯誤,熟悉Apache的讀者應該知道httpd.pid文件其實是Apache的進程pid文件,Apache的啟動進程ID放在這個文件中。
2、解決思路
既然提示httpd.pid這個文件有問題,那么先看看這個文件是否存在,以及其中的內容是什么。查看httpd.pid文件,操作如下:
linux:~#more/usr/local/apache2/logs/httpd.pid
發現這個文件存在,但是內容為空,這里肯定是有問題的。要解決這個問題,首先要了解Apache的啟動機制及http.pid文件的作用。
httpd.pid文件為文本文件,內容只有一行,記錄了httpd進程的pid。通過cat命令可以看到該文件的內容,通過這個pid文件可以防止進程啟動多個副本。只有能獲得pid文件的進程才能正常啟動并把自身的pid寫入該文件中。同一個程序的多余進程則自動退出。同時,httpd.pid文件在Apache正常啟動時創建,正常關閉時自動刪除,Apahce在啟動時會查找httpd.pid文件是都存在,如果文件不存在創建此文件,將Apache啟動的進程ID寫入http.pid中,并提示啟動成功。如果文件存在但內容為空,那么會出現“(2014)Internal error”的錯誤了。
在這個案例中,httpd.pid文件存在,但是內容為空,這個現象可能是磁盤空間耗盡導致的,也可能是系統突然斷電導致的,總之導致這個問題的原因有很多種,這里并不打算深究,因為找到解決問題的辦法是我們的目的。
3、解決問題
解決這個問題有兩個辦法:可以直接刪除httpd.pid這個空文件,也可以將這個文件寫入一個數字ID值,操作如下:
linux:~#echo"28976">>/usr/localo/apache2/logs/httpd.pid
linux:~#more/usr/local/apache2/logs/httpd.pid28976
接著,再次啟動apache:
linux:~#usr/local/apache2/bin/apachectl start
這次Apache可以正常啟動了,此時查看httpd.pid文件內容,信息如下:linux:~#more/usr/local/apache2/logs/httpd.pid7789
可以看到,Apache成功啟動后,已經自動獲取了一個新的pid值,進程間通信以這個pid進行。Apache在啟動后,保持這個pid值不變,直到下次重新啟動Apache才更新httpd.pid的值。
當前題目:如何解決網站無法訪問 Apache也無法啟動?
鏈接地址:http://m.newbst.com/news22/105272.html
成都網站建設公司_創新互聯,為您提供自適應網站、企業建站、微信小程序、網站營銷、關鍵詞優化、移動網站建設
廣告
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源:
創新互聯