那些年使用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,虽然功能很不错,但是安全性不好,很容易被挂马,所以也建议大家如果没有二开能力建议慎用。