WEB应用

WordPress启用memcached动态缓存以及报错解决

张戈博客目前用的是Nginx的fastcgi缓存方案,属于纯净态缓存模式,所以前台登录态什么的基本都没了。如果要兼顾前台登录态,又想速度快,有没有解决方案? 之前在分享张戈博客优化方案时提到,要实现网站轻度缓存,方案还是有的,比如 DB Cache Reloaded、Redis、memcached等。 最近恰好遇到一个数据缓存需求,因此尝试了下memcached方案,下面简单分享下我的环境部署以及报错解决过程。 一、d还是不d php有memcached和memcache两个类似组件,百度搜出来的文章,大部分是教你如何安装memcache(d),却步解释二者的区别。 比如这位博客仁兄的经验分享: 为什么他选第二个不行?其实php的这2个组件还是有点区别的: 简单来说: memcache 是 pecl 扩展库版本,原生支持php,出现更早,是老前辈; memcached 是 libmemcached 版本,出现较后,是新一代,因此也更加完善,推荐使用。 Ps:如果想更深入了解,可以搜索下 memcache vs memcached 其实,我们这种小网站的话,二选一即可,这点QPS还不至于纠结。不过一旦选择了,安装的时候就要注意区分,一对一配套安装,别搞的牛头不对马嘴,出现上面那位仁兄的困惑(后文有相关说明)。 这里,我果断选择了带d的,继续分享。 二、部署memcached 1、安装memcached Ps:这里的memcached是指Mencached的服务端,用来处理缓存数据,名字也是容易混淆。 下面2种安装方式任选其一: ①、在线安装 ②、编译安装 相比在线安装,很多时候编译安装更加灵活,非常类似Windows平台的自定义安装或绿色安装,推荐熟悉 Linux 系统的朋友使用: 至此memcached的服务端就安装好了。 2、集成php-memcached拓展 ①、先安装libmemcached 提前分享一个问题,如果直接按照网上的教程安装php-memcached可能会报如下错误: configure: error: no, sasl.h is not available. Run configure with --disable-memcached-sasl to disable this check 大部分教程会使用 --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文件,编辑并找到如下代码: 修改如下:...
阅读全文
Wordpress静态缓存三剑客,强力推荐! 网站建设

Wordpress静态缓存三剑客,强力推荐!

之前一直用的wp-super-cache,效果确实非常不错!网络不出问题的话,页面基本秒开。可惜,这款插件有时候会缓存我的手机主题,导致在电脑上浏览时,呈现的也是手机样式,有点不爽!本想尝试JS来切换主题的,可惜博主太笨,没搞定!只好忍痛割爱,放弃了wp-super-cache。 最终,在将常见的缓存插件都测试了一遍之后,找到了本文的主角——>静态缓存插件三件套: Hyper Cache + DB Cache Reloaded Fix+ Autoptimize 经博主测试之后,三款插件同时启用后效果非常不错!而且还兼容手机主题,所来特来写文分享下!   也许,很多高手写缓存插件教程的时候,都不忘说一句:不建议小站使用,说什么流量不济,没必要静态缓存云云! 在这里,博主想大呼一声:没流量怎么了?页面打开速度快个1秒2秒,自个心里爽不行啊!至少博主将博客静态缓存之后,页面加载速度确实有了很大的提升!所以,喜欢折腾、又不怕出问题的博主,尽管一试! 啰里⑧嗦说了一大堆,现在说下主角: Ps:基本介绍以及安装教程之类的,前人已有很多经验教程,我就不生搬硬套了,自己找度娘去。   一、Hyper Cache 此插件已是多语言版,简体中文的WP安装后,默认开启中文设置界面,所以安装后,根据自己需要去设置就可以了 插件默认只会将缓存页面呈现给匿名访问用户,已登录用户看到的都是动态页面!所以,你只要匿名查看网页源代码,若在底部发现如下类似代码即表示缓存已生效: <!-- hyper cache: d0671d764a2a543fcf72fa3ea8212f0b 14-05-02 10:56:14 --> 特别说明:博主测试了好几款缓存插件,就这款插件对手机主题的兼容性是最好的,用了几天了,电脑上从来没有出现过手机样式,而且设置也比W3TC或wp-super-cache简单多了!   二、 DB Cache Reloaded Fix 此插件缓存的原理就是把你要缓存的数据全部以单独的文件形式保存在硬盘,下次接到请求的时候直接从硬盘读取,减少数据库查找数据所要时间与资源。 缓存生效后,你可以在网页源代码中找到如下类似代码: <!-- Generated in 0.705 seconds. Made 101 queries to database and 95 cached queries. Memory used - 33.6MB --> <!-- Cached by DB Cache Reloaded Fix --> 代码明确说明,总共有101次查询,其中95次是缓存的结果,所以,只用了6次动态查询!效果可想而已!   三、Autoptimize 这款插件是集 HTML空格压缩、CSS & JS合并压缩以及CDN 于一身的优化利器!它可以去掉HTML代码中的大部分空格, 起到页面压缩的效果,他会压缩及合并CSS 和JS文件,减少get次数以及文件体积,加速页面加载!而且,它还有CDN的功能,结合七牛云存储进一步加速你的网站!碉堡了吧! 插件的基本设置界面很简单:   初次安装,你可以将HTML、JS、CSS优化都勾上,然后去访问看下有没有异常!有些主题在压缩优化后可能会出现异常问题,比如排版错乱,浮动元素失效等等! 全部启用后,如果有异常,你只要回到这个界面,利用排除法,就可以得知哪个优化和你的主题有冲突了,去掉勾选即可!一般JS优化或出的问题最多,比如张戈博客,在启用JS压缩后,会导致图片暗箱效果失效,所以,我把JS优化取消了! 代码压缩后的效果: CSS或JS压缩并CDN之后,代码将呈现如下类似路径: http://marsge.qiniudn.com/wp-content/cache/autoptimize/autoptimize_44cbfbaf2714f0e7407bf6d410fe3a83.css 具体效果,请自测! 其实,这款插件还有高级选项:设置界面上放有个【Show advanced settings】按钮,点击这个按钮后,将出现更多的选项,比如JS相关设置:     所以,如果发现优化后出现问题,可以打开高级设置,勾选仅在头部查找文件,或将某些已知冲突文件排除出去即可(如图中的exclude栏位)。具体做法,张戈在这里就不多说了,自己细细体会。 ps:补充说明,发现此插件只能CDN缓存生成的CSS和JS,看来回头再弄个代码实现全局CDN吧!
阅读全文