用过Wordpress的朋友们都知道,这款程序是建立在大量的数据库动态查询的基础上的;通常,为了提高访问速度,我们都会采用一些缓存手段。最常用的缓存手段莫过于WP Super Cache插件,其本质是生成静态页面储存在硬盘上,并提供给客户端访问以提升访问速度。Memcache亦是一个更高效的缓存手段。作为对象缓存系统,Memcache在内存中缓存和读取数据和对象,从而大幅减少对于数据库的读取次数。因此,我们有理由联合使用这两种缓存技术,为Wordpress提速。
本文以阿里云OCS(相当于Memcache)为例,详细介绍WP Super Cache插件如何与Memcache协同作用,为Wordpress提速。本文的操作环境是阿里云ECS, Debian 6 32bit系统,Nginx/PHP-Spawn-CGI/MySQL,其他环境请参照执行。
一,安装WP Super Cache 与Memcached
既然同时用到了这两个缓存手段,我们显然应当安装Wordpress官方提供的这两个插件,WP Super Cache与Memcached. 这里,安装的要点在于务必首先安装WP Super Cache并启用,再安装Memcached.
这时应该有朋友会问了,”我的wordpress上安装好Memcached并启用时为啥报错?不仅报错,而且还是fatal error? ”
报错是当然的,因为我们需要将这个插件升级为Drop-in方式插件才可以与WP Super Cache配合使用。登录SSH,进入Wordpress根目录,执行:
1 | cp wp-content/plugins/memcached/object-cache.php wp-content/ |
这样就安装好了Memcached. 此时我们可以登录Wordpress后台,将刚才安装的Memcached删除;当然你也可以不删掉它,毕竟我们没有启用这个插件原件,所以它不会被加载进内存占用资源。
二,配置OCS
OCS(Open Cache Service, 开放缓存服务)是阿里云提供的类似Memcached的服务。阿里云ECS用户可以免费申请一个容量为128MB的OCS实例, 而这对于一个十万PV以下的Wordpress应当绰绰有余了。在阿里云后台申请OCS后,进入控制台,在左侧”免密码访问设置“中为你的服务器打开免密码访问设置,这一步尤为关键。实际上这一步不会带来丝毫的不安全性;而一旦没有开启免密码访问,则需要通过阿里云提供的配置文件连接OCS,实测会出现各种超出预期的错误。
下面我们配置Wordpress配置文件用来连接OCS。在SSH上进入Wordpress根目录,编辑文件wp-config.php, 在文件末尾(快捷键Shift + G)添加下面两行:
1 2 |
其中xxxxxxxxx.ocs.aliyuncs.com是你的OCS实例的地址。保存后关闭文件。
三,安装PHP-Memcached模块
如果这时,你的网站还可以访问,那么恭喜你,下面这一步最麻烦的操作你可以直接跳过了。但是大多数情况下,按照上述两步骤操作完毕后访问网站,会发现网站变成了一片空白。不用着急,这是因为服务器的PHP没有安装Memcached模块。如果你是通过包管理器在服务器上安装的默认设定的PHP,那么Memcached模块是肯定没有安装的,我们需要手动安装。
首先,我们去PHP官网上下载Memcached模块源文件。依次执行:
1 2 3 | wget http://pecl.php.net/get/memcached-2.2.0.tgz tar zxvf memcached-2.2.0.tgz cd memcached-2.2.0 |
PHP拓展的安装方式与其他软件有些差异。源文件需要首先用phpize程序处理生成configure才能继续编译。如果是在CentOS/Fedora上,安装PHP的时候应该已经自带了phpize; 在Debian/Ubuntu上,PHP默认不自带phpize,需要独立安装。phpize集成在php5-dev包中,因此我们依次执行:
1 2 | apt-get install php5-dev phpize |
这时,我们可以看到,目录中生成了configure文件,于是可以编译安装了。请确保您的服务器安装了需要的库和编译器。接下来,依次执行:
1 2 3 | ./configure make make install |
这样,就安装好了memcached拓展。接下来,编辑php配置文件php.ini(如果你不知道这个文件在哪儿,请执行find / -name php.ini搜索),在文件末尾添加如下两行:
1 2 | [memcache] extension = memcache.so |
保存并关闭文件,然后重启Nginx服务器与fastcgi:
1 2 | /etc/init.d/nginx restart /etc/init.d/php-fastcgi restart |
这时再登录网站,我们可以看到,网站已经可以访问了。
四,WP Super Cache与Memcache联用
这一部分是这篇文章要实现的目标,但这也是最简单的操作,因为高级的WP Super Cache插件本身已经提供了这样的功能,只不过平时并没有显示出来而已。我们进入Wordpress后台的WP Super Cache设置页面,点击”高级“选项卡,发现里面突然多出来了一个选项:”使用对象缓存系统来存储缓存文件“。没错,就是突然多出来的选项;如果没有把object-cache.php这个文件放在Drop-in plugin的位置上就不会出现这个选项。将这里勾选上并保存,就实现了WP Super Cache与Memcache的联用。
此时,我们可以登录阿里云OCS的后台,如果一切配置无误,你就可以看到实时的OCS实例监控信息,包括数据量,hit rate(命中率), miss rate等信息,如下图。
本文作者为香菇肥牛,原文链接https://qing.su/article/116.html,未经允许不得转载,谢谢。
沙发。太高级 看不懂。
链接微博怎么链接不上,
恩,我也发现连接出问题了,好像跟换了Nginx有关。。。插件用zend加密了我也判断不出来哪里出的问题。。
不止一次的来访,一如既往的支持。
pretty good blog,come again next time。
博主去哪了怎么不更新
第一次访问,支持一下哈。
不知怎么就进来了,先看看
雁过留声,人过留评
技术帝就是厉害,顶礼膜拜了
学习学习,研究研究,呵呵
拜读一下,哈哈
持续更新,持续来访。
现在用阿里云虚拟主机,只能说速度还是不错的
希望你的博客如这个夏天一样火热。
[给力]
hi hole!
博客名字好有食欲
此文为(香菇肥牛博客)原创内容,特此声明
注:此为搜狐自媒体注册辅助材料申请验证评论
直接用amh控制面板直接安装插件就可以了,这太麻烦了
才知道有amh控制面板这个东西。。。长见识了