WordPress启用memcached动态缓存详细教程

有memcached和memcache两个类似组件,百度搜出来的文章,大部分是教你如何安装memcache(d),却步解释二者的区别。

简单来说:

memcache 是 pecl 扩展库版本,原生支持php,出现更早,是老前辈;

memcached 是 libmemcached 版本,出现较后,是新一代,因此也更加完善,推荐使用。

Ps:如果想更深入了解,可以搜索下 memcache vs memcached

其实,我们这种小网站的话,二选一即可,这点QPS还不至于纠结。不过一旦选择了,安装的时候就要注意区分,一对一配套安装,别搞的牛头不对马嘴,出现上面那位仁兄的困惑(后文有相关说明)。

这里,我果断选择了带d的,继续分享。

二、部署memcached

1、安装memcached

Ps:这里的memcached是指Mencached的服务端,用来处理缓存数据,名字也是容易混淆。

下面2种安装方式任选其一:

②、编译安装

相比在线安装,很多时候编译安装更加灵活,非常类似Windows平台的自定义安装或绿色安装,推荐熟悉 Linux 系统的朋友使用:

#从官方下载最新源码包

#解压开始编译安装

#设置环境

#改为监听127.0.0.1,并关闭UDP连接方式,若为远程服务调用或不需要的话请跳过此行

至此memcached的服务端就安装好了。

2、集成php-memcached拓展

①、先安装libmemcached

提前分享一个问题,如果直接按照网上的教程安装php-memcached可能会报如下错误:

大部分教程会使用 –disable-memcached-sasl 参数来禁用这个功能,作为一个强迫症,我还是从国外的论坛扒到了解决方法,很简单,在编译libmemcached之前,先安装cyrus-sasl-devel即可解决

接着开始编译安装libmemcached:

②、安装php-memcached组件

下载和解压这步,我们要区分下是php7还是之前的版本:

I、如果当前环境是php7 :

II、如果是旧的的php版本:

接下来开始编译:

编辑php.ini文件,在最后插入如下参数

Ps:如果不知道php.ini在哪个位置 ? 执行命令:php –ini 即可找到。

保存后,执行如下命令看看是否加载成功:

如果输出memcached则表示成功。

最后,如果是Nginx就 service php-fpm reload ,如果是Apache就重启Apache完成安装。

③、测试缓存

将上述代码保存为 test.php,然后执行 php -f test.php,如果能输出100表示安装成功。

三、WordPress缓存

做完上述所有步骤,系统环境就已经支持memcached缓存了。下面分享如何应用到WordPress

1、安装插件

访问github项目页面下载插件包:

https://github.com/tollmanz/wordpress-pecl-memcached-object-cache

下载并解压得到的 object-cache.php,上传到 wp-content 目录即可开启memcached缓存。

值得说明的是,这里还有一个大坑等着你来踩:

WordPress官网上的object-cache.php虽然也号称Memcached 插件,然而它只支持Memcache,不支持新版的,所以不能使用。如果错误地将object-cache.php和Memcached混用的话,则会出现WordPress打不开,前台后台页面一片空白的现象。

这也就是经常有站长反馈WordPress启用memcached功能后,页面空白的错误原因了。不巧,张戈在测试的时候也踩坑了,所以特别提出来,希望大家了解错误的原因,规避掉!

 

2、查看效果

做完第2步之后,你可以去网站前台刷新几次,产生缓存,然后从官方下载探针:

http://pecl.php.net/get/memcache-3.0.8.tgz

解压后,里面有一个memcache.php文件,编辑并找到如下代码:

修改如下:

上传到网站私密目录(临时测试可以放到根目录),然后通过前台访问memcache.php这个文件,输入上面的用户名和密码即可看到memcached状态:

3、其他设置

如果发现页面可以打开,但是里面没有Hits数据,说明WordPress并没有成功连接到memcached,这时候我们可以在wp-config.php加入如下参数:

实际的memcached监听IP和端口,你可以通过如下命令查看:

以上内容转自 张戈博客:https://zhangge.net/5097.html

好时光所有资源均转载自互联网公开渠道,所分享内容仅供网友交流学习使用,转载内容如有侵权请联系我们及时删除!

发表评论