「1 Blog Cacher」快取、加速WordPress網站的外掛!(HTML靜態化、減輕系統負擔)
WordPress是個很好的部落格系統,不過如果你的BLOG是放在虛擬主機的話,一定會常常遇到WordPress佔用太多系統資源的問題。如果你希望你的WordPress網站不會因為佔用太多資源而被停權或導致主機緩慢,甚至想加速網站的瀏覽速度,都可以來試試看這個WordPress專用的「1-Blog-Cacher」外掛。
2008/7/24更新:目前「1-Blog-Cacher」外掛已更新到2.0.4版本,支援WordPress 2.6版,解決了WP 2.6版本之後的cookies讀取問題,,
之前在WP 2.6版中已登入卻無法正常在前台編輯文章、預覽文章…等問題已解決。
我之前也用過WP-Cache 2.1.2這個相當有知名度的快取外掛,不過執行速度並不快,流量稍大時偶而還是會衝破虛擬主機商的CPU/MySQL Usage的上限。後來還裝過WP-SuperCache這個增強版的外掛,可偏偏在IE6跟IE7會遇到怪問題,「cos-html-cache」這個外掛則會改動到原本的固定連結網址形式,所以不考慮。
常見快取外掛:
關於「WP-SuperCache」在IE6跟IE7會抓不到網頁的問題,其實我也不太知道是哪邊有錯誤,裝完檢查設定都正確,檔案權限也正確,在Firefox跟Opera權限都正常,可是不管是在HostMonster或DreamHost兩家主機上都無法讓IE抓到正確頁面。我猜可能需要調整Apache或PHP的某些組態吧?或者是WordPress的其他Plugin造成的?
剛剛不放棄又找了一下,發現了這個「1-Blog-Cacher」外掛, 這外掛是參考WP-Cache跟HTML Cache Creator兩個外掛的優缺點修改而成,目前可能用的人還不是很多,大部分大概都用WP-Cache,所以也不知道整體評價怎樣,不過裝完之後感覺還不錯,速度比WP-Cache明顯快上一些,也不會有WP-SuperCache會遇到的cache錯頁面的問題,目前正在試用中,有興趣的人也許可以參考看看。
軟體名稱:1 Blog Cacher
軟體版本:2.0.4
軟體語言:英文
軟體性質:免費軟體
檔案大小:12KB
系統支援:WordPress專用外掛,支援2.x~2.6
官方網站:http://1blogcacher.com/
軟體下載:按這裡
一、移除舊的WP-Cache外掛
注意!如果你之前有安裝過WP-Cache或WP-SuperCache外掛,記得先把外掛停用,然後刪掉下面檔案與資料夾:
/wp-content/cache/
/wp-content/wp-cache-config.php
/wp-content/advanced-cache.php
/wp-content/plugins/wp-cache/
其中「advanced-cache.php」檔案因為權限問題,可能用FTP不好刪,得從WebFTP或用SSH進去刪。然後再把「/wp-config.php」檔案中下面這行字刪除:
define('WP_CACHE', true); //Added by WP-Cache Manager
這行字是由WP-Cache外掛自動生成的,你不用這外掛的話,當然就不用再放這行字囉。
二、安裝「1-Blog-Cacher」外掛
正確移除WP-Cache外掛的相關檔案之後,再依照下面的方法安裝「1-Blog-Cacher」外掛。
1.在網站最上層目錄新增一個「wp-cache」資料夾(跟「wp-config.php」設定檔同一層就對了),並把權限設定為「777」,這個資料夾是用來放置Cache檔案用的,他會依照不同網址將HTML檔案放在不同資料夾中。
2.把「1blogcacher2.0.php」檔案上傳到「/wp-content/plugins/」資料夾中。
3.把「advanced-cache.php」檔案上傳到「/wp-content/」資料夾中。
4.編輯「/wp-config.php」檔案,在檔案中加入下面這行字:
define('WP_CACHE', true);
5.最後一個步驟,到WordPress後台啟用「1-Blog-Cacher」外掛即可。
啟用外掛後,可以在後台的「選項」頁面中看到「1-Blog-Cacher」的相關資訊。
頁面中會列出一些控制參數:
Opciones
Edit the file – /wp-content/advanced-cache.php – in order to change the following options:
Cache expiration 86400 seconds.
Logged users Use an individual cache for each user
Commenters Use an individual cache for each commenter
Cache error pages No.
Cache redirections No.
Avoid trailing slash duplication “/” No.
Enable browser cache No.
Look for dynamic code Yes.
Use cache directories Yes.
Rejected strings
If the url contains one of these strings, that url won’t be cached:* wp-
Accepted strings
Exceptions to the previous rule:* wp-atom.php
* wp-comments-popup.php
* wp-commentsrss2.php
* wp-links-opml.php
* wp-locations.php
* wp-rdf.php
* wp-rss.php
* wp-rss2.phpRejected User Agents
If the user-agent (name of the cient’s browser, bot, etc.) contains one of these strings, its requests won’t be cached, though cached pages will be displayed if they exist and haven’t expired:
* bot
* ia_archive
* slurp
* crawl
* spider
上面這些參數都可以在「/wp-content/advanced-cache.php」檔案中修改(不改也可以,看個人需求)。
「1-Blog-Cacher」外掛正常運作後,可以在後台頁面中看到目前已經cache了多少頁面,如果你需要刪除Cache檔的話,可以按一下〔Remove all files〕。
目前用起來感覺很順,效果也還不錯,是否會與其他外掛不相容還不知道,測試中。
,
應該是
如果你 advanced-cache.php檔案中的 define(“OBC_CACHE_USERS”,2); 設定為 2 的話,
沒登入的算一個USER,他有一份CACHE,
有登入的USER,每個USER一份CACHE,
好像是這樣吧。
大多數的網友都是沒登入的,所以應該有快到。
至於如果你要前台也可以顯示已登入狀態(可以編輯文章、留言時已登入),
那得設定為
define(“OBC_CACHE_USERS”,2);
原來是放的位置不同唷,嗯嗯,這我倒沒考慮過,一直都是放在最前面。
「不同會員進入同一網頁,各有不同的cache?」
他可以設定全部人使用同一分cache
另外「好像不適用於log in和後台操作。」的意思是?
自問自答:
“define(’WP_CACHE’, true);”不可以寫在wp-config.php的最後面,我把這行寫在define DB等的後面,這樣就可以安裝成功。
使用的感覺:
第一次進入某頁,速度不快(2~3sec左右),第二次進入時,確實加快不少(不到1sec)。但是,換個帳號,進入同一頁,速度還是不快,第二次進入,才會加快。
這樣的結果是不是:不同會員進入同一網頁,各有不同的cache?
此外,好像不適用於log in和後台操作。
PS.我的WordPress是架設在區域網路內,速度快不快一下子就分辨出來。
我使用wordpress 2.5.1,照您說的方式安裝1 Blog Cacher,後台啟用外掛後,在1 Blog Cacher設定欄裡面發生錯誤,訊息是:
Installation error
The file – /var/www/html/digital-content/wp-content/advanced-cache.php – is incorrect or you haven’t added the code define(‘WP_CACHE’, true); to the file /var/www/html/digital-content/wp-config.php
經過檢查:
/wp-content/advanced-cache.php檔案存在,位置正確;
define(‘WP_CACHE’, true);也寫進/wp-config.php去了。
此外,/wp-cache/裡面多了一個obc_configuration的檔案。
請問:不知哪裡還有問題?
隨想…
太複雜過煩可參考 wikipedia 或 google, 簡易的直接說明
1. memcached 快取系統應用必需有 memcached 主程式(在伺服器端, 以 daemon 服務運行)
2. 有足夠記憶體來作為快取緩存使用
3. php pecl memcache extension(在 Apache 伺服器端)
4. php 程式配合(部份 php 軟體計劃已經支援 memcached, 包括 mediawiki, wordpress, xoops, discuz, phpbbV3(ACM)…等等等等)
如果主機(伺服器)屬於自己的話, 那就一切易辦了, 其實 memcached 實作並不困難, 新手大約 30分種內可搞定
個人的經驗, memcached 可減輕了 SQL 伺服器大約 20%-40% 的 CPU和硬碟資源, 瀏覽人氣題目時速度會很快, 繁忙的時候最明顯, 一台掛裝 memcached 伺服器就可以支援多個 Apache virtual host, 而且還可以在其他閑置的伺服器內掛裝 memcached 服務, 擴展成分散式的快取系統環境
如果虛擬主機不屬於自己的話, 當然不能隨意安裝系統軟體, 那就要伺服器服務供應商考慮了
*memcached 的效能並不比美使用 APC, 不過就支援分散式環境, 而且CPU和硬碟資源較小, 可多台 memcached 伺服器同時運作
memcached 不知道是不是需要主機配合? 之前看過,好像沒法在虛擬主機自己設定? 我也忘了.. 還沒懂到那邊去。
隨想….
1-Blog-Cacher 使用 HTML 檔案化的快取方式減小 SQL 用量, 其實會令伺服器系統硬碟做成效能影響, 越繁忙的網站不斷有更新(包括留言,ad,counter)的話會越明顯
不過, 如果別無他法的話, 也聊勝於無
個人較偏向系統使用 memcached(php pecl memcache extension)
剛裝2.5..(0個外掛)
為啥在發表的頁裡超卡(lag/不順)
好難按發表….為什麼呢???
blogspot 喔….. 嗯嗯,有空來玩玩,需要哪方面的???
can you please introduce something about blogspot~?
pls~~~~
>///<
我發現好像會跟 Bad Behavior plugin 有衝突
還沒有 cache 過的文章會被判斷為 bad behavior…
嗯嗯,終於推出支援 WP 2.5 的版本了… 看樣子之前該外掛的作者並不知道他的程式沒法使用在WP 2.5的環境…
我的感覺是比WP-SuperCache單純一點,WP-SuperCache看起來很複雜的樣子。
感覺不錯~
測試ING~
感覺比之前的方便許多
操作也比較簡易!
剛剛發現 「1-Blog-Cacher」有個小地方不錯,如果你正在修改THEME,改完之後可以不用刪除所有CACHE檔案,直接在其中一個網頁按〔CTRL〕+〔F5〕,就可以抓取最新更新狀態。適合一邊改THEME,一邊看更新後的結果。
當然改完THEME之後,還是要把全部舊的CACHE檔刪除,這樣其他人看到的才會是新的網頁。