wordpress怎么優(yōu)化
WordPress 優(yōu)化經(jīng)驗(yàn)和技巧:
動(dòng)靜態(tài)分離
不管 WordPress 博客還是其他 cms 建的站點(diǎn),優(yōu)化的第一步一定是動(dòng)靜態(tài)分離,這也是你看到新浪,騰訊等門戶,他們圖片的域名和網(wǎng)站的域名不是同一個(gè)的原因。
網(wǎng)站的靜態(tài)文件一般有兩種:第一種是網(wǎng)站的 css,JS 和一些主題的常用背景圖片和按鈕文件,這些圖片如果網(wǎng)站不進(jìn)行改版或者其他改動(dòng),基本上是不會(huì)修改的,第二種是每天更新的網(wǎng)站內(nèi)容中上傳的圖片或者附件,這些圖片文件也是基本不會(huì)改動(dòng)的。
解決好靜態(tài)文件存儲(chǔ)和加速,網(wǎng)站性能就首先能得到基本的保證了,WordPress 構(gòu)建的網(wǎng)站和博客也是一樣的。對(duì)于這些靜態(tài)文件來(lái)說(shuō),最好的解決方案永遠(yuǎn)是使用 CDN 網(wǎng)絡(luò)進(jìn)行加速,這樣服務(wù)器的壓力將大大降低,因?yàn)樵L問(wèn)頁(yè)面只有當(dāng)前頁(yè)面是在自己的服務(wù)器上,其他所有圖片,JS 和 CSS 都是從 CDN獲取的。
WordPress 博客如何使用 CDN 服務(wù),我寫的 WPJAM Basic 插件,已經(jīng)支持三種云存儲(chǔ)服務(wù):阿里云OSS,七牛云存儲(chǔ)和UCloud Ufile,只要你安裝了 WPJAM Basic 插件,就可以一鍵實(shí)現(xiàn) WordPress 博客靜態(tài)文件 CDN 加速。
服務(wù)器優(yōu)化
優(yōu)化好靜態(tài)文件之后,就要開(kāi)始對(duì)網(wǎng)站的動(dòng)態(tài)內(nèi)容進(jìn)行優(yōu)化,優(yōu)化動(dòng)態(tài)內(nèi)容,首先要有一個(gè)穩(wěn)定網(wǎng)絡(luò)環(huán)境,穩(wěn)定的主機(jī)供應(yīng)商和服務(wù)器性能的優(yōu)化。
選擇一個(gè)靠譜的主機(jī)托管商,個(gè)人推薦 BGP 或者多線機(jī)房,讓全國(guó)用戶訪問(wèn)都能有不錯(cuò)的速度,然后盡量選擇獨(dú)立的服務(wù)器,再不濟(jì),也得 VPS,因?yàn)槟銢](méi)有服務(wù)器的 Root 權(quán)限很多東西是無(wú)法進(jìn)行的,國(guó)內(nèi)一般推薦:阿里云。
服務(wù)器問(wèn)題解決之后,服務(wù)器可以做如下優(yōu)化:
安裝 memcached 和 php Memcached 擴(kuò)展:使用 Memcached 來(lái)緩存 WordPress 數(shù)據(jù)。
PHP 開(kāi)啟 OPCache:把經(jīng)過(guò)編譯后的 PHP 代碼緩存到共享內(nèi)存中,并在用戶訪問(wèn)的時(shí)候直接調(diào)用從而起到高效的加速作用。
mysql 設(shè)置 MySQL Query Cache,可以保存保存查詢結(jié)果,同樣的查詢不再?gòu)?a href="http://www.babyishan.com/tag/%e6%95%b0%e6%8d%ae%e5%ba%93">數(shù)據(jù)庫(kù)檢索,對(duì)速度有很大的提升。
WordPress 緩存
要徹底明白和搞懂 WordPress 性能優(yōu)化,首先要理解 WordPress 緩存機(jī)制,WordPress 默認(rèn)是一種叫做 WordPress Object Cache 的對(duì)象緩存機(jī)制,它是把需要緩存的內(nèi)容按照 Key-Value 這樣的模式進(jìn)行緩存(和 No-SQL 的 key-value 的有點(diǎn)類似),當(dāng)然它還支持按照 Group 來(lái)劃分和避免緩存的內(nèi)容沖突。
所以最基礎(chǔ)的 WordPress 緩存插件就是,把 WordPress 產(chǎn)生的 Key-Value 存起來(lái),如果是使用 Memcached,就是存到內(nèi)存,如果使用 Flie 就是存到硬盤中,當(dāng)然高級(jí)的 WordPress 插件還能做更多,比如 WP Super Cache把整個(gè)頁(yè)面緩存到硬盤中,下次直接訪問(wèn)靜態(tài)的 html 文件,讓服務(wù)器直接繞過(guò) PHP,節(jié)約 CPU 時(shí)間。 Batcache 會(huì)把整個(gè)頁(yè)面當(dāng)做一個(gè)對(duì)象存到內(nèi)存里面。我個(gè)人推薦使用 Memcached 足夠。
Memcached 會(huì)把 WordPress 的對(duì)象存到內(nèi)存里面,服務(wù)器的內(nèi)存足夠大,讀取和存儲(chǔ)速度也夠快,并且內(nèi)存緩存命中率也大于 97%。另外我們 WordPress 程序經(jīng)過(guò)優(yōu)化之后,每個(gè)頁(yè)面的查詢一般在 2 條左右,所以整個(gè)網(wǎng)站效率很高,首頁(yè)甚至做到 0 SQL,頁(yè)面生成只需要 0.0013秒。
WPJAM Basic 插件已經(jīng)集成了 Memcached,下載 WPJAM Basic之后,將 wpjam-basic/template/ 目錄下的 object-cache.php 文件復(fù)制到 wp-content 目錄下即可。
WordPress 程序優(yōu)化
WordPress 程序優(yōu)化是基于 WordPress Object Cache 的機(jī)制對(duì) WordPress 插件和主題進(jìn)行優(yōu)化,主要經(jīng)驗(yàn)有以下幾點(diǎn):
只使用必須的 WordPress 插件,安裝太多的 WordPress 插件很容易引起性能問(wèn)題。
從正規(guī)站點(diǎn)下載 WordPress 主題,這樣下載的主題才能保證質(zhì)量和安全,推薦我和 xintheme 發(fā)布的 Autumn 和 Honey 主題。已經(jīng)實(shí)現(xiàn)了首頁(yè) 0 SQL。
WordPress 主題和插件盡量使用模板函數(shù),因?yàn)?WordPress 模板函數(shù)如果可能都已經(jīng)做好了 WordPress Object Cache。比如: get_the_terms 和 wp_get_object_terms 這兩個(gè)函數(shù),功能基本一樣,但是 get_the_terms 直接從對(duì)象緩存中取數(shù)據(jù),無(wú)查詢,而 wp_get_object_terms 每次都從數(shù)據(jù)庫(kù)中取數(shù)據(jù)。
WordPress 插件和主題如果一定要直接查詢數(shù)據(jù)庫(kù),請(qǐng)做好 Object Cache,將查詢的結(jié)果使用 wp_cache_set 存到 Object Cache 中,下次直接使用 wp_cache_get 獲取。
WordPress 性能優(yōu)化服務(wù)
總結(jié)一下:優(yōu)化 WordPress,首先下載和安裝WPJAM Basic 插件。然后選擇好的服務(wù)器和托管商,對(duì) WordPress 程序進(jìn)行優(yōu)化,并且使用 Memcached 做好緩存。
WordPress 效率其實(shí)很高的,加上 WordPress 本身的靈活性和功能強(qiáng)大,WordPress 作為各種建站絕對(duì)是非常不錯(cuò)的選擇,所以我一直使用 WordPress 建站。
更多WordPress技術(shù)文章,請(qǐng)?jiān)L問(wèn)WordPress教程欄目!