天天看點

那些年使用WordPress踩過的坑,用WordPress要慎重

不得不說wordpress在國内的推廣是非常的到位,雖然國内很多廣告都直接從國外網站扒過來的,但是還是越來越多站長喜歡選擇傻瓜式的 WordPress 作為網站的程式選擇,但是,很多站長都是沒有實戰經驗的,基本都是道途聽說,認為 WordPress 怎麼怎麼好,又友善又簡單,裝個主題裝個插件還不是順手點一下滑鼠的事情。

WordPress做個人部落格網站的确很适合,但是如何你認為它是萬能的,那基本就是踩坑的開始了,是以在這裡我必須勸告所有即将做網站的站長同行們,如果你想長期做網站或商業類型網站,切忌使用 WordPress 作為你的程式選擇。

WordPress 作為一個部落格程式,開始設計的理念就是為寫個人部落格的人群準備的,而網站不同,網站是為了更高的點選率,更多的文章是很有必要的。試想,你見過誰寫部落格寫過一萬十萬甚至百萬級别的文章,除非這人腦有問題吧,大多數能達到以萬來計數的文章篇數級别的 WordPress ,基本都采集來的垃圾站想做廣告聯盟賺取廣告費。

作為一名過來人,也許你沒經曆過我的苦惱,也許你認為我在嘩衆取寵,但是這個可是事實,我的網站蘿蔔網,以及小X的網站異次元系列(異次元),都是用獨立伺服器托管的,每天PV大概在20萬上下,這幾天和小X交流,發現他也遇到了我的問題,那就是 WordPress 一旦達到這個通路量,文章數目又多的情況下,已經很難用一台伺服器支撐了。

經過我禦用技術員 WooDragon 的幾天研究,瓶頸出在 MySQ查詢語句沒有經過任何優化,大量的查詢,大量的資料庫頻繁寫入寫出,導緻了大量的硬碟寫入寫出,直接的結果,就是導緻記憶體爆滿,CPU狂飙,伺服器負載高得不能再高,然後,通路前台背景都奇慢無比,每天都像大姨媽似的就在某些通路人數多的時候出現這種情況。

在官方的 WordPress 優化建議頁面(Link #1 #2)上,官方也有這麼一條:

In high-traffic situations, many simultaneous connections to the database can cause excessive load on the server. In this case, connections to the server may not complete, causing the typical “Connection timed out” response in the visitor‘s browser.  
           

連官方都承認高通路情況下,并發問題是不能避免的,那麼又有什麼好的解決方法呢?

我發現國外用 WordPress 做得很大的網站比比皆是,經過幾天的研究,我發現幾乎他們都是用了多台伺服器做負載均衡(Load Balanced Servers),那可是活生生的美元呀,這對于國内的中小網站來說,确實是一筆很大很大的成本。

同樣的通路量,就拿蘿蔔網來說,每天1萬左右的IP,如果是英文站,我可以很悠閑自得的購買 Load Balanced Servers ,然後花錢雇傭伺服器管理者來解決這些問題。但是在國内,國内的IDC中,本身懂 Linux 伺服器的就很少(好的都去大網站大公司了),懂 Load Balanced Servers 的更少,除非每天的流量實在太大,大到你認為在國内購買 Load Balanced Servers 都綽綽有餘的地步。

杯具,純粹的杯具,是以我的觀點是:

1、 WordPress 隻是一個部落格程式,而不是内容管理系統(CMS),當初設計的時候就是為個人部落格而設計,網上把wordpress說成萬能程式的真是誤導新人不淺。

2、 WordPress 每更新一個版本,就顯得越來越臃腫,不禁讓我想到了那隻肥肥的國内企鵝。

3、 如果你是做中文站的,盡快擺脫 WordPress 吧,背景各種操作習慣老實說和國人習慣真心不太搭調。

4、資料稍微一多,你會發現網站各種卡頓,伺服器cpu刷刷的往上升,如果通路量再大一點,你就明白龜速是什麼樣的,關于大資料下的優化和緩存、分表分庫這些功能wordpress都沒有。

如果你隻是搭建個人部落格網站,wordpress的确很适合,功能簡單,沒有國内cms系統那麼多複雜的功能,安裝一兩個插件也可以彌補一些功能上不足。

如果你計劃做一個商業性質的網站,盡量避免用 WordPress ,推薦用國内的成熟的CMS,比如PageAdmin、帝國、Discuz等等,這裡不推薦dedecms,雖然功能很不錯,但是安全性不好也建議大家慎用。