wordpress的页面静态化方法及其相关插件整理
文章类别:
快捷索引
wordpress使用了大量插件,发表了很多文章图片以后速度直线下降,就像蜗牛爬一样慢!
各位wordpress站长普遍采用的是wordpress缓存插件,如WP Super Cache或者Hyper Cache之类的,这些插件对wordpress有着非常明显的加速优化效果,该插件的Mod_rewrite加速模式加速效果非常好,因为这种模式是直接将网站的页面生成静态的html页面,然后使用Mod_rewrite将请求转发到静态文件,这样就跳过了php解析这一步直接将页面吐出到浏览器,从而达到加速的效果。但是这是使用插件实现缓存效果,那么可否无插件实现wordpress页面静态化呢?
答案是能,下面将告诉大家操作方法,首先复制以下代码:
<?php define('CACHE_ROOT', dirname(__FILE__).'/cache'); define('CACHE_LIFE', 86400)).CACHE_SUFFIX=='GET'){ //GET方式请求才缓存,POST之后一般都希望看到最新的结果 if(file_exists($cache_file) && time() - filemtime($cache_file) < CACHE_LIFE){ //如果缓存文件存在,并且没有过期,就把它读出来。 $fp = fopen($cache_file,'rb'); fpassthru($fp); fclose($fp); exit(); } elseif(!file_exists($cache_dir)){ if(!file_exists(CACHE_ROOT)){ mkdir(CACHE_ROOT,0777); chmod(CACHE_ROOT,0777); } mkdir($cache_dir,0777); chmod($cache_dir,0777); } function auto_cache($contents){ //回调函数,当程序结束时自动调用此函数 global $cache_file; $fp = fopen($cache_file,'wb'); fwrite($fp,$contents); fclose($fp); chmod($cache_file,0777); clean_old_cache()时,装好插件就得清除cosHtmlCache缓存)可以这么操作
在左侧导航里 点击设置 ->CosHtmlCache
点击删除HTML文件缓存 就可以了
———————————————————————————————————————————
Super Static Cache是一款WordPress缓存插件,旨在给使用WP的网站提供配置简单,缓存效率高,通用性强的解决方案。
目前国内WP的缓存插件中,Wp super cache和cos-html-cache可能是最为众人所熟知的缓存产品,但是这两个插件各有优缺点。
Wp super cache最著名的wordpress缓存插件之一,它是一款高级插件,能够根据需要作出很多配置,还能自动设置缓存过期时间,在大多数情况下都非常实用。但是一但数据量多大,就可能因为不合理的设置导致服务器压力过大,出现网站反应速度慢,打不开等情况。Super Static Cache在大多数情况下可以替换它。
cos-html-cache是国人开发的一款wordpress纯静态化插件,会自动生成文静态文档,下次访问会直接通过web服务器而不是php,总体表现良好,但是它对固定链接的要求非常高,必须是带有.html的后缀才能被缓存,而且只有一种缓存模式,所有缓存文件和程序文件混在在一起,非常难于管理。Super Static Cache可以完全替代cos-html-cache。
Super Static Cache集合wp super cache和cos-html-cache的特点,安装配置简单,缓存效率高,有良好的交互,有Direct,PHP和Rewrite三种模式,还能根据需要设置不缓存的页面。
安装方法:把super-static-cache上传到wordpress的插件目录,“wp-content/plugins/”,在后台的插件管理中激活super static cache,然后进入设置->Super Static Cache中启用,选择插件的运行方式(默认为关闭状态),然后升级您的固定链接格式。
1,插件已经被wordpress收录,去wordpress下载
2,在后台插件安装界面直接搜索Super Static Cache下载安装
3,去Github上下载,欢迎为super static cache pull requests.
1, 缓存的加载速度快不快?
缓存好之后,下次访问次文章时,web服务器会直接访问这个缓存文件(Direct模式和Rewrite模式),并不通过wordpress,也不会查询数据库,这样节省了很多资源。即使这样,加载速度也会和您的服务器有关系。
2, 直接缓存和重写缓存有什么区别?
直接缓存会根据固定连接的设置,把缓存文件直接存放在wordpress安装目录下,如果页面较多的话,会导致wordpress程序文件和缓存文件混在一起,重写缓存就是专门建立一个缓存存放目录(super-static-cache)来存在这些缓存文件。当然,必须要升级网站的rewrite规则。
3,super static cache适用于哪些场合?
super static cache的诞生起初是为了满足我个人的工作需要,和其它缓存插件一样,有自己适用的场合。 如果你的网站内容很多,访问量大,数据库服务器压力巨大,但是磁盘空间充足,可以选择super static cache,反过来,如果您的网站内容少,流量低,更新频繁,不推荐使用super static cache。
4, 如何清除缓存文件?
最新版本的高级设置里有根据缓存类型清理缓存的选项,如果你需要清理所有缓存,直接选择所有(ALL),然后点击清理按钮即可。需要注意的是,由于服务器环境,权限配置等一些因素,可能导致缓存清理不完的情况,如遇到这种情况,请给我留言。
5, 新增的PHP模式有何特点?
PHP模式是3.0版本中新增的缓存模式,相对其它两种模式,它是最耗费资源的模式,因为这种缓存模式还是需要数据库的支撑,这就意味着如果数据库宕机,网站是打不开的,PHP模式只是减少了数据库的查询次数。它的优点是兼容部分插件。
6, 严格缓存模式和非严格缓存模式是什么?
严格模式和非严格模式仅针对Direct模式,它要解决的是关于URL的问题,严格模式下,类似www.example.com/archives/1这种url是不能被缓存的,非严格模式下,这类的url会被缓存,但是第二次访问服务器一般会重定向到www.example.com/archives/1/(注意后面的斜杠)。如果你使用PHP模式或者Rewrite模式,忽略这项配置即可。
7, 为什么缓存成功之后,搜索功能不能用了?
搜索功能不能使用是因为搜索表单的目标地址地址是”/”, 而”/”指向的是目录index,很多服务器的index.html的优先级比index.php高,所以操作搜索功能失效。解决办法: a, 把搜索的目标地址改成”/index.php”(或者WP相应安装目录的index.php)。b, 关闭首页缓存。c, 使用Rewrite缓存模式。
8, Super Static Cache Spider是什么?
当内容更新时,Super Static Cache会自动建立缓存,Super Static Cache Spider是自动建立缓存的爬行蜘蛛,php开启curl扩展,日志中才能看到Super Static Cache Spider的爬行轨迹,它的来源IP为您的服务器或者CDN提供商的IP地址。Super Static Cache Spider只会内容作出更新时爬行。
9, 为什么访问会出现403错误或者返回目录的index?
当使用Direct模式,并且固定链接含有多级目录设置,如/%year%/%monthnum%/%day%/%postname%/时,网站的文章的url是类似www.example.com/2015/03/02/hellow-world/,当缓存生成之后,访问www.example.com/2015/03/02/,www.example.com/2015/03/等时要么返回403(web服务器没有开启autoindex时),要么返回相应目录的index(web服务器开启autoindex时)。如果你的网站的固定链接是类似上面这种深层次的,推荐使用Rewrite模式,可以避免此问题发生。
10, 伪静态规则怎么添加?
当使用Rewrite模式时,需要往web服务器上添加伪静态规则,伪静态规则的生成办法是,选中rewrite模式,点击升级,系统会自动生成伪静态规则(暂时只支持apache和nginx)。对于apache,要把生成的伪静态规则添加到网站的.htaccess或httpd.conf里;对于nginx,则需要把伪静态规则添加到相应配置的server字段里。添加时,注意要把这个伪静态规则添加到所有伪静态规则的之前。添加之后,再次点击升级,如果提示消失,则表明规则添加正确。
11, nginx上为什么会提示location Duplicate(location字段重复)?
Nginx一个路径只支持一个location,如果在添加Super Static Cache之前,你的Nginx有和插件系统的伪静态规则一样的location,把两个伪静态合并到一起,然后添加到服务器。注意保持插件的伪静态规则在前面。
12, 为什么我在后台发布文章,缓存可以更新,用工具采集,缓存就不能更新?
Super Static Cache缓存建立的原理是根据系统的动作,在后台发布文章时,系统能够监测到相关动作并建立缓存,如果直接把数据插入到数据库,系统会因为监测不到动作也不能建立缓存。如果你的网站使用工具进行采集,推荐在设置页面取消首页缓存,或者使用crontab等工具定期更新首页缓存。
13, 我想指定单个不被缓存的页面
在3.3.1版本中加入了指定单个不需要缓存页面的功能,直接在此处填入不想要缓存的页面网址即可,一行一个。
1,安装卸载时报Notice,已修复,感谢@camson反馈
2,使用部分主题时,用户登陆时和不登陆前台界面不一样导致缓存不相同,已修复
3,已升级致2.0.0,功能:a.支持rewrite模式,如果选择,系统会在WP的安装目录下创建一个super-static-cache目录,会把所有缓存放到这个目录里,开启这个功能需要升级rewirte规则。b.英语管理后台的支持。c.bug的修复。d.文章发布会自动构建缓存。e.文章更改也会自动构建缓存。f.文章删除会自动删除缓存。
4,2.0.1: 优化nginx下选择rewrite模式的rewrite规则。
5,2.0.2: 增加url中含有多字节字符的缓存支持(由于windows服务器不同语种使用各不一样的字符集编码,所以暂不支持windows服务器的多字节缓存支持)
6,3.0:2015年1月26日更新。增加PHP缓存模式,增加tag,category页面自动更新功能,增加严格与非严格缓存模式, 优化删除缓存功能,bug修复。
7,3.2:2015年8月14日更新。修复之前bug,后台管理界面更新,增加多项功能: a, 用户可以根据需求设置缓存自动建立/重建的时机。 b, 清理缓存更新洗化,用户可根据需求清理指定的缓存。
8,3.3.1:2016年4月19日更新。增加指定不缓存单个页面的功能
_____________________________________________________________________________
WP Super Cache 是 WordPress 官方开发人员 Donncha 开发,是当前最高效也是最灵活的 WordPress 静态缓存插件。它把整个网页直接生成 HTML 文件,这样 Apache 就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。
WP Super Cache 缓存机制有两种,WP Cache 和 Super Cache。
WP Cache 缓存时,会在你的“wordpress 安装文件夹/wp-content/cache/”文件夹下生成一系列wp-cache-xxxxxx.html格式的文件;Super Cache 缓存时,则在你的“wordpress 安装文件夹/wp-content/cache/supercache/”文件夹下生成对应每一篇文章或者标签等的目录。名称为xxx.html,取决于你的文章ID是怎么设置。目录下面就是静态的 index.html 文件。
当你一个访问者来的你的站点,他没有登入或者也没有留言,这样他得到是一个在 WordPress cache 文件夹下的 supercache 子文件夹下的纯静态文件,其实你都可以自己到上面的 supercache 目录下去查看同样的永久链接的 HTML 文件的备份。
判断一个页面是否已经被缓存了,查看该页面的源代码,如果访问者已经登陆或者留了言,就会返回 WP Cache 函数生成的页面,并且最后一行会有“Cached page generated by WP-Super-Cache+缓存时间”这行字,就像下面这行代码一样:
1 | <!-- Cached page generated by WP-Super-Cache on 2011-02-25 15:57:24 --> |
<!– Cached page generated by WP-Super-Cache on 2011-02-25 15:57:24 –>
而 Super Cache 缓存会多一行如下代码:
1 | <!-- super cache --> |
<!– super cache –>
因为 Super Cache 是真正静态的,对搜索引擎和博客的速度非常有好处,而且有效的减轻了 php 和 Mysql 的查询压力。这点对于大型博客来说优势很明显,一般的较小的博客感觉就不怎么明显。
①前提是固定链接不可用默认的,上传WP-Super-Cache插件,不要急着启用。
②赋予以下权限:
给wp-super-cache文件夹添加写权限。
给wp-content文件夹添加写权限。
在wp-content文件夹下新建cache文件夹并添加写权限。
③在网站根目录wp-config.php文件中
先检查是否有下面这段代码:
1 | define('WP_CACHE',true);//Added by WP-Cache Manager |
define(‘WP_CACHE’,true);//Added by WP-Cache Manager
如果没有则在define(‘DB_NAME’的上一行(也就是添加在wp-config.php文件中语句的最前面) 添加如下代码:
1 | define('WP_CACHE',true);//Added by WP-Cache Manager |
define(‘WP_CACHE’,true);//Added by WP-Cache Manager
然后启用插件,一般已经可以去设置了,如果还出错再接着下面步骤:
④看wp-content目录下面有没有有wp-cache-config.php这个文件,如果没有,直接把插件包里面的wp-cache-config-sample.php改名为wp-cache-config.php传到wp-content目录
⑤再看wp-content目录里面有没有advanced-cache.php这个文件,如果没有,同样把插件包里面的wp-cache-phase1.php文件改名为advanced-cache.php同样传到wp-content目录
⑥最后一步在wp-content目录下面建一个cache文件夹,再在cache文件夹下新建一个supercache文件夹
⑦查看网站底部源代码,如果有类似下面的文字则说明没有开启成功,继续修改:
1 | <!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! --> |
<!– WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! –>
⑧查看网站底部源代码,有类似下面的文字则说明开启成功
1 2 3 | <!-- Dynamic page generated in 2.703 seconds. --> <!-- Cached page generated by WP-Super-Cache on 2010-11-23 11:44:28 --> <!-- super cache --> |
<!– Dynamic page generated in 2.703 seconds. –><!– Cached page generated by WP-Super-Cache on 2010-11-23 11:44:28 –><!– super cache –>
注:更改了网站文件后要进入“Tester&contents”选项点击“删除过期文件”“删除缓存”
1.“Easy”:勾选“Caching On (Recommended)”,点击“更新状态”
2.“高级选项”:(额外附加以下选项)
勾选“Compress pages so they’re served more quickly to visitors.”(开启gzip)
勾选“Don’t cache pages for known users.”不对认识的人使用缓存(比如登录者或发表评论者)
过期时限:0秒(0表示不启用,但当有新文章发表时、新评论时,仍可自动更新缓存)
“Preload”那里勾选“Preload mode”
3.“Preload”:勾选“Preload mode ”
注:其它所有选项默认即可。
①在后台禁用此插件。
②删除/wp-content/plugins/目录的wp-super-cache目录。
③删除wp-content目录下面的cache目录。
④删除wp-content目录下面的wp-config.php ,advanced-cache.php两个文件。
⑤修改wp-config.php,把这一行删掉:define(‘WP_CACHE’, ‘true’);
⑥如果主机本来是用.htaccess文件的要改回来(网站根目录与wp-content/cache都有)
WP Super Cache 是基于 Ricardo Galli Granada 的 WP-Cache 2。WP-Cache 2 可以缓存你的 WordPress 博客使得不用再次访问数据库,但是它产生的是 PHP 文件而不是 HTML 文件,所以还需要 PHP 引擎去解析它们。而 WP Super Cache 则直接产生 HTML 文件,所以服务器不用解析甚至一行 PHP 代码,所以缓存之后的速度就和访问你服务器上的一张图片一样快。
网站的绝大多数用户都会直接访问 WP Super Cache 生成的静态 HTML 文件,只要他:
所以 99% 的用户访问到的都是静态缓存 HTML 文件,而那些不是直接访问到静态 HTML 文件的用户也会受益这个插件,他们访问到的是其他形式的缓存文件,虽然没有静态 HTML 那么有效率,但是好过没有缓存。
WP Super Cache 通过以下三种方式缓存(按照缓存效率排序):
当页面的源代码最后面有如下的代码,就说缓存已经开始工作了:
<!-- Dynamic Page Served (once) in 0.829 seconds --> <!-- Cached page generated by WP-Super-Cache on 2009-01-12 16:11:54 --> <!-- Compression = gzip -->
WP Super Cache 安装非常简单,只需要上传到插件目录,然后激活之后就可以到 后台 > 设置 > WP Super Cache 进行详细配置。下面我讲讲 WP Super Cache 的基本设置:
首先到通用 tab 下,打开缓存功能。
在高级 tab,首先选择 mod_rewrite 缓存模式,并点击更新,更新之后,插件会让你更新 rewrite 规则到 .htaccess 文件,保证 htaccess 文件可写,把内容更新进去。
杂项基本上将默认推荐的选项勾选上即可,移动设备的支持,就要看你的使用什么主题,如果你使用响应式主题,这里就不要勾选上,如果你对移动设备提供的是另外一套主题,这里需要勾选上。
CDN:如果你使用七牛之类的 CDN,可以到这里进行设置。
内容:使用来查看那些页面已经被缓存了,并且可已清理缓存。
预缓存:默认缓存是基于用户访问驱动的,预缓存则使得用户还没访问,可以先生成缓存文件。
插件兼容:是设置 WP Super Cache 和一下常用的插件兼容工作。
调试:面向开发者进行调试的,一般用不到。
WP Super Cache静态缓存插件简明使用教程
插件设置
进入插件设置页面,插件支持多语包括简体中文。
直接进入插件“高级”设置选项卡页,勾选所有标有“推荐”字样的选项,另外包括“当某页面有新评论时,只刷新该页面的缓存”这项。
缓存超时时间建议设置为“ 0”,有必要时手动清理缓存。
其它选项卡设置页面,无需设置。
如果你不清楚其它未推荐的选项功能是什么,就不要尝试了。
需要说明的是缓存模式有三种:
如果选择非推荐的 mod_rewrite 缓存模式,缓存效果一般,个人感觉也就没必要使用这款缓存插件了。
三、更新规则
设置完毕后,点击更新按钮,会提示你点击“更新 Mod_Rewrite 规则”按钮,向下滚动找到该按钮并点击。
插件会自动向Wordpress根目录的wp-config.php和.htaccess文件写入相关规则。
同时默认缓存目录的中.htaccess也必须有规则。
1、清理缓存
可以定期手动清理缓存文件,打开WP Super Cache插件设置页面,点击“内容”选项卡,点击“删除缓存”。
如果你与我一样在不停地折腾主题,这时就需要随时手动清理缓存,才能查看修改调整后的情况,否则显示的还是之前的静态缓存内容。
2、停用插件
重复上一步(必须),之后点击“高级”选项卡,取消“启用缓存以便加快访问。 (推荐)”勾选,并点击下面的“更新”按钮,
3、完全删除插件
重复上面两步(必须),然后进入插件页面停用WP Super Cache插件,并删除。
正常情况下删除WP Super Cache插件时,会将之前插件所修改和创建的缓存文件夹一并删除,但也可能有例外。所以,登录Ftp客户端,用之前备份的wp-config.php和.htaccess文件覆盖Wordpress根目录的同名文件,并删除wp-content目录的cache文件夹,这样才能完全卸载并彻底删除缓存文件。
另外,建议安装网页压缩插件:Autoptimize与WP Super Cache配套使用,可以进一步加快网页打开速度。
设置Autoptimize插件时,只需要勾选“优化 HTML 代码和优化 CSS 代码”,其它默认即可,不要勾选“优化 JavaScript 代码”否则可能造成主题部分功能不可用,切记!
wordpress的页面静态化方法及其相关插件整理 → https://www.books51.com/73.html |
下一篇: Wordpress的标签(tags)的使用问题技巧方法精选
最新评论