前言:昨天在明月登楼的博客看到这篇《网站缓存插件 W3 Total Cache,适合自己的才是最好的!》文章,发现文中给出的一个关于这个插件的教程非常详细,所以今天特意转发这篇 W3 Total Cache 插件配置说明教程分享给大家。
个人建议:这篇文章看似很深奥很难懂,其实如果真想使用这款插件的话,建议大家能够耐心看完,然后再安装和配置插件,这样可能会更好一些。PS:我自己没有看到这个插件时直接阅读这篇文章也看得我头昏眼花的。
一、W3 Total Cache(以下简称w3tc)的卸载方法
1、先在插件安装那里按照正常途径卸载。
2、删除/wp-content/cache 目录下所有文件和文件夹。
3、删除/wp-content 目录下 w3tc-config 文件夹,advanced-cache.php,db.php,object-cache.php 三个文件。
4、删除网站根目录下的 nginx.conf,同时打开/etc/nginx/conf.d/plus086.conf 找到 include /usr/share/nginx/plus086/nginx.conf;删除此行。
5、打开/wp-config.php 删除 W3TC_EDGE_MODE 和 WP_CACHE 配置项目。
在安装 w3tc 之前请将网站根目录和根目录下所有子目录以及文件所有改成 nginx 用户组的 nginx 用户。否则重定向文件无法写入。具体命令 :
- chown -R nginx:nginx plus086 //plus086 是网站根目录名
二、W3 Total Cache(以下简称w3tc)配置详细说明
1、安装好 w3tc 后,打开/etc/nginx/conf.d/plus086.conf,添加 include /usr/share/nginx/plus086/nginx.conf; 这行需要添加到 server 块的后面,其他定义文件的前面,注意位置,注意将 plus086 换成自己的目录。这是避免插件产生错误的最重要的一步。网站根目录的 nginx.conf 是插件自动生成的,不用修改。
这个 nginx.conf 文件是 w3tc 插件的重定向规则,如果这里出错,那么后续优化会出现网站乱码、找不到 CSS 文件,找不到 JS 文件等各种错误。
2、配置Dashboard选项。
先点击 Compatibility Test,测试一下,看看哪些组件没有。
- Opcode cache: Installed (APC)和 Memcache extension: Installed 必须要有,如果是未安装状态的话请检查 apc 是否安装正确,memcached 和 php 的 memcache 组件是否正确安装。
- zlib output compression: Off 这项比较重要,必须是 off,如果是 on 的话,到/etc/php.ini 配置文件里面设置 zlib.output_compression = Off
- URL rewrite: Enabled 这个选项在倒数第 2 行,这是测试是否能重定向,如果有问题请检查第一条里面的 nginx.conf 配置。
3、配置general settings选项
这个选项是一个总开关集合,可以在这里打开或者关闭所有配置。
- Page Cache 激活,选择 memcached
- Minify Cache 激活,选择 memcached,其他默认
- Database Cache 激活,选择 memcached
- Object Cache 激活,选择 memcached
- Borwser Cache 激活
- CDN,Reverse proxy,Monitoring 关闭
- Miscellaneous 选项里面有个重要的 Verify rewrite rules,必须勾选。并且,在这个选项的说明里,有个 install 单词链接到了安装说明,告诉你怎么配置重定向文件,本机的重定向规则,以及 apc memcached 的安装。如果配置安装方面有问题,可以参考这个标准文档。
- Debug 选项是显示调试文档的,如果选中了,那么可以在每个页面的源代码的最后几行看到插件的工作情况。
- 最后的 Input/Export Settings 是导出导入配置文件,可以将配置文件下载或者上传。
4、Page Cache选项
Page Cache 就是页面缓存,插件生成一个静态页面,并且将这个静态页面存储在 memcached 中,用户请求这个页面的时候,不会执行 php 也不会读取数据库,直接从内存中读取这个页面,然后就返回给用户了。这样就极大的减小了服务器的负载。
例如,用户浏览器访问 http://www.plus086.com/index.php,正常程序是:服务器接到请求->执行 php->读取 mysql->生成返回页面->返回结果给用户。
Page Cache 缓存后的程序是:服务器接到请求->到 memcached 中读取存好的数据->返回结果给用户。
4.1 General选项卡:
- Cache front page:缓存首页,建议选取
- Cache feeds: site, categories, tags, comments:缓存站点地图,分类,评论什么的,这会影响站点的实时性,不建议选取
- Cache SSL (https) requests:缓存 ssl 链接返回,影响安全,不建议选取
- Cache URIs with query string variables:缓存链接地址和媒体查询字符串,建议选取
- Cache 404 (not found) pages:缓存 404 页面,不建议选取,因为正常站点 404 不会很多,而且影响 404 转跳。
- Cache requests only for www.plus086.com site address:仅针对固定网站缓存,如果是用别的域名访问您的网站则不换存。不用选取了。
- Don’t cache pages for logged in users:未登录的用户可以查看登录用户缓存的页面。建议选取。
- Don’t cache pages for following user roles:如果激活该项,则可以在选择用户不进行 page cache,也就是说被选择的用户不会进行缓存。
4.2 Cache Reload选项卡:
选择是否进行预缓存,就是说即使没有用户访问,插件会把站点所有页面变成静态的,然后缓存到 memcached。
- Automatically prime the page cache:自动缓存,不建议激活。如果一个站有 1w 个 post,那么这些资源全部缓存一遍会造成服务器假死。而且下面的时间设置过短的话服务器就会不停的去执行缓存任务,和缓存节省服务器资源的初衷背道而驰。如果 post 较少,可以考虑,不过我觉得这就是一鸡肋,此功能毫无意义。
- Preload the post cache upon publish events.每次更新 post 时都执行缓存。依然不建议激活。理由同上,有一个用户访问,页面就会被缓存,如果一个页面 1 年都没人访问,那缓存这个页面是没有意义的。
4.3 Purge Policy:Page Cache选显卡:
这个选项卡是在文章内容变更时清洗掉已经存储的缓存内容。正告各位站长,此处保持默认设置不要更改,改了不光影响性能,而且可能造成会全站崩溃,我得出的结论是,此处有 bug…….
4.4 Advanced选项卡:
Late initialization:延迟加载以便使用功能碎片缓存。很容易造成 memcached 卡死,这是 w3tc 的又一个坑。千万别选。如果你的 page cache 使用 apc 缓存的可以试试选这个。不过 apc 确实不适合存储页面缓存的其他内容,所以,还是放弃吧。
5、minify选项
minify 主要工作是优化 html,js,css。将 html,js,css 文件这些静态文件压缩合并。压缩这些文件可以减少网络传输量,合并这些文件可以减少 http 请求数量,这 2 条路都是减少网络传输的重要途径。w3tc 的 minify 可是一个大坑,稍有不慎就会导致无法加载 css,无法加载 js。这个坑的源头就是最前面说的 nginx 重定向,如果重定向做好了那么这里被坑的几率就很小。
- minify 最先讲最下面的 Advance 选项卡,第一个要做的事情就是将最下面的 Include external files/libaries:里面的 googleapis.com 的地址删除。原因你懂的。
- Disable minify automatic file name length test:这项是自动测试合并后的文件名的长度,有些 linux 不支持此功能,我是建议关闭,然后自己填写一个长度。
- 其他选项就是设置不进行 minify 压缩处理的 page,js,css,以及某用户永不接收被压缩处理过的文件等,这里只有靠大家自己处理了,如果有插件或者主题的某个文件不能被 minify 压缩处理,挑选出来填在这里,就可以避过一个坑。有多少用户由于不知道设置这里而放弃使用 w3tc 插件的。