W3 Total Cache配置说明及设置和卸载详细教程

前言:昨天在明月登楼的博客看到这篇《网站缓存插件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插件的。

5.1 General:选项卡

  • Rewrite URL structure:激活重定向,必选,不解释。如果nginx重定向没有设置好,这里是会出问题的。
  • Disable minify for logged in users:对登录用户关闭minify处理文件。不建议激活。激活以后,如果minify出问题,未登录用户看到的是乱码,而站长是登录状态,那么站长看到的是正常页面,这个效果恐怖吧。
  • Minify error notification:如果minify出问题了,怎么通知你。随意,别选关闭就行了,但是必须保证你能收到通知。

5.2 HTML&XML选项卡:

  • HTML minify settings:
  • Enable 激活
  • Inline CSS minification 压缩文档内的css
  • Inline JS minification 压缩文档内的js
  • Don’t minify feeds 不处理feeds
  • Clean 清除一些空格,回车什么的
  • Hide comments 不要注释

5.3 CSS选项卡:

  • CSS minify settings: Enable 激活
  • Combine only 仅联合,激活
  • Remove unnecessary backslashes 移除多余的反斜杠,激活
  • Compress colors压缩颜色定义,激活
  • Compress font-weight 压缩字体定义,激活
  • Lowercase selectors 转小写,激活
  • Remove last 移除结尾的空格,回车符号之类的,激活
  • Sort Properties 属性排序,便于浏览器解析,激活
  • Sort Selectors (caution) 选择器排序,提高浏览器解析速度,不建议激活,有可能出错
  • Discard invalid properties 丢弃无效的属性,这个主要是有css版本兼容的问题,如果都符合同一个标准可以选择,但是这个要求有点困难。
  • Preserve CSS维持CSS?这个不太懂,有懂的同学交流一下。
  • Add timestamp 加入站点地图?没必要,不选
  • @import handling: none是不处理,bubble是冒泡式也就是循环着来,一层层处理,process是线性处理,大家排好队,一个个来。2、3差别不大,反正是处理好以后进缓存,我管你什么处理过程。
  • Compression: 压缩,有高中低可选,建议选标准,压狠了占cpu,不压占带宽,这是一个双刃剑,根据自己的访问量来。
  • Optimize shorthands: 优化缩写,css有些地方可以省略掉px什么的,这个就是优化选项了。
  • Case for properties: 选择属性,可以选大写小写神马的,也就是统一了css描述属性字母大小写。
  • Regroup selectors: 合并方式的选择。可以控制一些属性的合并,目的也是减小文件大小。

再次提醒:minify是整个w3tc最坑的地方,大家谨慎选择以上选项,如果出问题了,可以按F12,看看是哪个文件出问题,然后再调整。问题的一个根源是重定向,另一个根源是插件和主题不规范,很久以前的插件,匆忙乱写的插件,引用了墙外的库,各种问题都会出现。

6、Database Cache

这是数据库缓存,这个缓存的作用是将数据库的数据保存在memcached里面,当需要这些数据的时候直接从memcached读取,避免去数据库读,目的是减少mysql的调用量。当访问量增大的时候,mysql被视为wordpress的性能瓶颈,这个功能在很大程度上缓解了这个瓶颈。

6.1 General选项卡:

Don’t cache queries for logged in users :对登录用户不缓存,官方建议激活,原因是登录用户可能会评论,以及其他交互性操作,此类操作需要即时性,不适合缓存。由于mysql已有缓存机制,所以,此处选择激活不会太影响性能。

6.2 Advance选项卡:

  • Memcached hostname:port / IP:port: memcached的地址和端口
  • Maximum lifetime of cache objects: 缓存对象的最大生命周期
  • Garbage collection interval:废弃数据周期
  • Never cache the following pages:不做database缓存的页面
  • Ignored query stems:忽略的词根
  • Reject query words:包含这些关键字的sql语句不会被缓存

7、Object Cache

对象缓存,这个词程序员一听就知道怎么回事,但是我这里不向大家解释什么是对象。我从缓存的效果这方面来说,在这里对象可以简单理解为已经经过php处理过的“一陀”东西。对象缓存就是将这“一陀”东西放到memcached里面,要用的时候直接拿出来用,而不必重新去建造这“一陀”东西,自然,服务器就节省了建造这些东西的开销。一个用户访问wordpress的主页,可能产生数十个到数千个对象,数万用户访问的时候,这些节约出来的资源非常可观。

  • 前面几个选项就不说了,意思和Database Cache一样。
  • Global groups:当wordpress启用网络模式的时候,这些组的对象会被共享。(这也是使用memcached缓存的一个附带优势)
  • Non-persistent groups:这个列表里的对象不会被缓存。

8、Browser Cache

浏览器缓存,这是通过http协议,设置http头,告诉浏览器该对哪些文件进行怎样的缓存。浏览器会根据这些数据,将文件保存在本地,下次访问的时候,就不会再向服务器申请这些文件了,会从本机直接获取这些文件。

例如,服务器通知浏览器www.plus086.com/test.jpg 这个文件保存在本地30天,那么30天内,浏览器都不会再次向服务器申请这个文件,每次需要显示这张图片的时候会直接从本地读取。

8.1 General选项卡

  • Set expires header:设置到期期限鼓的http头励浏览器缓存文件。
  • Set cache control header:设置缓存控制的http头信息,鼓励的浏览器缓存文件。
  • Set entity tag (eTag) :设置Etag头鼓励浏览器缓存文件。
  • Set W3 Total Cache header:设置一个w3tc插件自定义的http头协助确定优化文件。
  • Enable HTTP (gzip) compression:以gzip压缩后的格式向浏览器返回数据,减少基于文本的文件的下载时间。请注意,此项有可呢会引起某些主题的乱码。这种问题一般是主题或者插件已经对返回内容进行过压缩了,此处再压缩有可能引起乱码。
  • Prevent caching of objects after settings change:当设置被更改时,将为缓存目标生成一个新的查询字符串,如果缓存目标未到期的情况下服务器设置进行了更改,那么浏览器会加载新的被更改的资源。
  • Prevent caching exception list:这个列表里的文件不会适用上一项的设置更改。支持正则表达式。
  • Don’t set cookies for static files:不为静态文件设置cookies
  • Do not process 404 errors for static objects with WordPress:不要使用wordpress的404错误处理方式来处理静态文件的404方式。因为有些网站有404重定向的处理,当静态文件出现404错误时,不适用这些处理方式。如果一个图片找不到,服务器因此做一个404转跳,有点浪费资源。如果有些插件是动态生成图片或者其他静态文件,而且需要进行404转跳,那么可以在下表404 error exception list列出。这里也是一个坑,如果激活该项的话,请注意您的网站有没有类似插件。
  • 后面的3个选项卡,基本上就是分类将以上的部分内容重复一遍,以便使用者能够根据自己的实际情况分开控制html,js,css,图片等。我就不一一列举了。

9、User Agent Groups

管理用户代理组,这个名字很别扭。它的实际作用就是将一些用户进行302转跳。应用场景如下:当一个网站具有桌面浏览的一套主题在域名www.plus086.com上,手机浏览的一套主题在域名m.plus086.com上,那么当手机用户访问www.plus086.com的时候,会通过302转跳,将这个请求转跳到m.plus086.com上。

  • Theme:对应的式样
  • Redirect user to:转跳到的地址
  • user agents:这个组包含哪些用户
  • 可以设置多个组,转跳到不同的式样。

10、Referrer Group

这个功能和上面的类似,仅仅是识别来源的方式不同。默认设置里面已经帮我们设置了一个搜索引擎的转跳。

剩下的CDN,Monitoring,Extensions就没必要将了,有些绑定的国外付费服务。

温馨提示:本文最后更新于2020-03-06 10:29:26,某些文章具有时效性,若有错误或已失效,请在下方留言或联系站长
------本页内容已结束,喜欢请分享------

感谢您的来访,获取更多精彩文章请收藏本站。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容