在昨天自己管的伺服器中的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數位男女
留言列表