close

在昨天自己管的伺服器中的xampp架出來的apache伺服器不明原因掛了。

因為原使用xampp安裝版,昨天因為緊急於是立刻下載了xampp lite版,快速配置以後,運用Joomla便捷的可攜性,在加上有定期備份,發現問題後就趕緊架起來。

後來非熱門時段再檢查時,發現跟Joomla等系統是無關聯的。舊有資料移動到lite版上並無問題,仍可正常運作。
當下就覺得可能安裝版的xampp配置部份可能有問題。 (畢竟一般apache那些既有程式、套件會跟突然掛掉應該沒有多大關聯)。

其實一開始還有是否為 2003 更新導致,但這部份若搜尋應該不容易找到解法,所以此部份打算都無解時在慢慢看。
最後交叉測試時,發現替換apache目錄就能正常運作,一開始認定是配定上conf裡面跟更新出了衝突,但是最後慢慢比對、替換測試後,發現並非此問題。

後來開啟了logs資料夾,發現了 access.log ,竟然多達110MB,平常點下去就會很嚴重的延遲了,覺得問題應該就是出在此。
果不其然,一將access.log清空以後apache立刻能開啟了。 
後來將原本的access.log開啟,發現Joomla佈景主題所開啟的圖片、檔案是造成log檔快速增加的原因。

於是去爬了文章,針對:將紀錄檔有效分割,為了讓紀錄檔不會拖垮整個apache。


將紀錄檔有效分割方式 

查了許多方式以後,覺得使用apache自帶的rotatelogs較為方便。
rotatelogs簡單來說就是能夠自定義log輸出檔案位置及多久輸出一次的程式。

以下說明針對xampp環境所講解,其他的請參考下列參考文章自行修改。
原本的紀錄檔為

CustomLog logs/access.log common

將其改成

CustomLog  "| bin/rotatelogs.exe logs/datelogs/%Y%m%d%H_access_log 86400" common
解釋如下 (△是空白)
log紀錄△"|rotatelog位置log位置檔名格式△多久生成一檔(秒數)"△common

其中xampp的rotatelogs位置在 bin下,所以下面是完整例子,可直接複製後修改

CustomLog  "|d:/xampp/apache/bin/rotatelogs.exe d:/xampp/apache/logs/access.log-%m-%d 86400" common

 把舊有的前端加入 # 屏蔽掉,在貼上修改後的設定即可。

※ 注意,位置不能用相對的,我的環境2003用相對的會出現錯誤無法執行,且會吃掉記憶體的的情況,最後導致拖慢速度、伺服器斷開。


 
 
參考文章
將紀錄檔有效分割,主要參考此篇文章
Web服務器日誌統計分析完全解決方案

apache 自帶的 rotatelogs 較為詳細的設定介紹
OHaHa's學習心得

rotatelog設定方式
G.Y.Studio

此篇文章有另外解法
LifeType

使用Cronolog 作 Apache log 的分割處理
MyChat數位男女

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ezcshi 的頭像
    ezcshi

    一陣嘻,噓!

    ezcshi 發表在 痞客邦 留言(0) 人氣()