XAMPP Apache下access.log、error.log 檔案太大拖慢 WordPress 網站速度的處理方法

最近小編發現自己用 XAMPP 架的兩個 WordPress 部落格異常的慢 … 一直以為是對外網路的關係讓網站速度非常的慢 … 但昨天慢到連主機遠端連線都連不進去?!直接到主機端確認 CPU 和 效能並布高啊!重啟 Mysql 和 Apache 仍然速度很慢 … 要去查查 Apache Log 卻發現主要的兩個紀錄長的非常大,access.log 佔 18GB;errorlog 佔近 500MB,也難怪平常點下去就會很嚴重的延遲了,覺得問題應該就是出在此。

這兩個長大怪物把硬碟吃到只剩下 20%!(小編兩個部落格所有的圖文加起來用不到 40% ~50% 啊 …),刻意將 access.log 清空以後 apache 立刻開啟又繼續長大 … 後來去網路爬了文章針對紀錄檔愈長愈大的有效處理方式,發現可以將紀錄檔做有效分割,讓紀錄檔不會長的過大而拖垮整個 Apache。

要如何將紀錄檔去有效分割呢?就是 Apache 有個內建的 rotatelogs 小程式,可以將你的紀錄檔案你的需求去分割紀錄。如下小編改變的方式:

1. 開啟 Apache 的 httpd.conf 檔案並找到下面兩條設置
ErrorLog logs/error.log
CustomLog logs/access.log 

2. 將其註釋掉#並換成下面的設置
ErrotLog  “| bin/rotatelogs.exe logs/logs/error-%Y-%m-%d.log  86400”
CustomLog  “| bin/rotatelogs.exe logs/logs/access-%Y-%m-%d.log 86400” common

 

 

3. 重啟 Apache 服務所有程序!

4. 可是你會發現若你是跟貓仔一樣是在 Windows 環境下的 XAMPP,這樣改完重啟 Apache 就會出現錯誤無法執行!原因是因為在 Windows 環境下不能使用相對路徑,是必須把整個路徑都打上去,XAMPP 的 rotatelogs 位置在 c:/xampp/apache/bin下,所以就是要這樣修改:
CustomLog  “|c:/xampp/apache/bin/rotatelogs.exe c:/xampp/apache/logs/access-%m-%d.log 86400” common

ErrorLog  “|c:/xampp/apache/bin/rotatelogs.exe c:/xampp/apache/logs/error-%m-%d.log 86400” 

5. 在重啟 Apache 服務所有程序!OK,Apache 啟動正常,在去看 logs 目錄,也確實按日期開始紀錄囉!那麼那兩個大怪物紀錄檔就可以直接刪掉了。打完收工。

發佈留言