Loading...

cos-html-cache升级到2.7.3

Filed under: Wordpress,网站技术 — 江东 @ 2009-03-24 13:43:36 才(169)条评论

上一次的升级解决了两个问题:留言框中会自动记录创建静态的访客信息(这样会将访客不愿意公开的信息如email地址公开给每一个访问缓存页面的访客,具体问题描述如下引用部分)和加密日志的问题。

当博主注销登陆之后,再次查看post页面,页面上的留言框里面居然还保留着最后一个创建缓存的访问者的信息。当然,这个问题在cosbeta自己的 blog不存在,因为cosbeta自己改动了一下留言框,不用php的方式读取留言者的cookie信息,所以缓存的内容中就没有任何记录留言者的 html代码存在了。

上次用js重置评论发表表单的方法解决了第一个问题,然而由于源代码中依然有记录信息,所以一旦用户浏览器无法执行js重置部分,那么访客依然可以看到上一次创建静态页面的访客信息(描述起来咋这么拗口!)。

不管怎样,意思就是cache记录了本不应该记录的东西,上一次的改版用js脚本重置了,而本次的改版是直接在源代码中抹掉这个不该记录的信息,这样就彻底解决了这个问题。

鸣谢(排名不分先后):

  1. 可能吧提出问题和坚持在他龟速的网络下为我刷新测试;
  2. 堂全程提供正则表达式技术支持(不会正则表达式居然还敢说自己会php?汗!);

下载地址:cos-html-cache 2.7.3

cos-html-cache升级到2.7.2

Filed under: Wordpress,网站技术 — 江东 @ 2009-03-15 20:21:53 才(23)条评论

今天可能吧的吧主发现了cos-html-cache的一个小毛病,那就是当博主注销登陆之后,再次查看post页面,页面上的留言框里面居然还保留着最后一个创建缓存的访问者的信息。当然,这个问题在cosbeta自己的blog不存在,因为cosbeta自己改动了一下留言框,不用php的方式读取留言者的cookie信息,所以缓存的内容中就没有任何记录留言者的html代码存在了。

修改的方式比较简单,要么和cosbeta一样,手动修改comment.php文件,让文本域中的value始终为空(cosbeta建议你无论什么情况下,这个操作都做一下)。要么就更新cos-html-cache,增加一个js设置cookie的的动作:没有任何cookie存在的时候,把留言框的value全部清空。所以cosbeta今天就更新了cos-html-cache中相关的js文件。

另外以前很多朋友如tsian Purose 在我这里这里留言 说:“是个好插件,但是我一直在考虑是否该用,因为我的日志有加密日志,如果启用的话,加密日志就有问题了,当正确输入密码后,日志打开,可是,当下次访问的时候,如果别人不知道密码,还是照样把我的加密日志打开了。怕!怕~!”.cosbeta当时只能建议他们暂时不要用这个插件了,而且当时cosbeta认为,加密日志是作者自己看的,而对于处于登录状态下的作者,cos-html-cache是不会为其创建cache的,所以,影响不大。然而考虑到作者也可能在不登录的情况下输入密码查看文章,再加上有些文章出于和谐的考虑需要对狗腿子保密,所以认为影响不大的那种认识是不正确的。既然今天对cos-html-cache动刀了,索性就把这个一起修改了吧。

当前版本的cos-html-cache已经不会缓存加密日志了,所以请放心大胆的使用吧!

有bug,欢迎报来,本blog的任何地方留言皆可!

最新版本的cos-html-cache下载地址:cos-html-cache

关于cos-html-cache和godaddy主机的问题

Filed under: Wordpress,网站技术 — 江东 @ 2009-03-04 17:40:02 才(12)条评论

godaddy主机的$_SERVER变量有些古怪,所以cos-html-cache可能会将目录搞错,现在判断html的目录方式在其他主机没有问题,而当前就目录的判断方式就是为了防止二级目录出错而设计的,因此不打算专门为godaddy做修改,因此这里特此给出godaddy的解决方案:

修改方法是:修改cos-html-cache.php文件 将$path = $_SERVER[‘DOCUMENT_ROOT’].”/”;替换为$path = ABSPATH ;

如果目录依然错乱,继续修改 $path = ABSPATH.”/youblogdir”,直到正常为止。

上面是针对goaddy,cos-html-cache的一个解决方案。

关于cache

Filed under: 网站技术 — 江东 @ 2009-02-26 17:24:49 才(15)条评论

我们都知道,这个世界上绝对没有完美的东西,得到了一方面的好处,必然牺牲另外一方面。比如说缓存,很多朋友就问我,你的cos-html-cache能不能实时更新某些东西呢,比如说访问次数,比如说热门文章等等。

其实,在刚接触wordpress的时候我就用PEAR的cache Lite做过了模板级别的缓存,基本原理就是根据url的唯一性生成唯一的缓存文件,然后根据用户设定的失效时间实现缓存的自动删除和更新。那个时候我用得很好,自我感觉速度提升了(当然肯定是有提升)。后来ixwebhosting数据库老出问题,每次出问题的时候我的blog就无法访问,原来这样的缓存依然无法离开数据库,熟悉了wordpress的插件机制之后才发现,即使在在初始化的时候将插件hook上去,也无法阻止wordpress之前对数据库的一些操作,比如获取bloginfo()中的内容,所以后来往就发现,最大的瓶颈依然是在WP的本身,于是我就很果断(说武断也可以)判断,wp_cache 等插件是无法和cos-htm-cache(最初始的版本叫cos-html-creator)相比的。可能有人要问,凭什么用了cos-html-cache,wordpress就不会去做预处理了,这个很明显,因为一旦缓存文件存在,服务器优先会去抓取html文件,所以就不关wordpress的事情了。

其实换个角度想想,我们的blog有那么多需要实时更新的东西么?最新留言需要更新?当留言批准之后,插件会干这个事情。实时最新的文章内容?当你修改和删除或者添加文章的时候,插件依然会更新相关的内容。由于我自己只需要这两点实时更新,而插件能做到,所以动态化和静态化没有任何两样。静态化减少了负载,何乐而不为呢?

当然,cos-html-cache的缺点也是显而易见的:需要.htaccess支持,需要永久链接的格式犹如真正的html文件路径。第一个条件,足以把所有的windows主机和国内的主机挡在外面,第二天足以把用默认地址的blogger挡在外面,因为他们可能不知道有如何将老链接redirect到新链接。

考虑到对缓存的高要求,考虑到cos-html-cache只缓存更新率比较高的single页面,所以我打算再开发一个插件,缓存除了post之外的页面,而这些页面的缓存更新将采用定期的方式,当然,若是其他知名插件可以设置只缓存post之外的页面,cosbeta强烈建议你混合使用。使用的时候一定要关闭其他插件对post页面的缓存功能,因为两个插件都是通过获取缓冲区内容的方式写入缓存的,所以若是都想同时获取,必然导致不兼容。

胡乱想到,胡乱说一些!

cos-html-cache静态化wordpress2.7分页链接的显示

Filed under: Wordpress,网站技术 — 江东 @ 2009-01-12 20:17:14 才(11)条评论

今天有网友提到了这个问题,在wordpress2.7中,评论可以分页显示了,而分页显示的链接暂无法自定义设定,所以即使使用了仿真的.html永久链接格式(顺带提一下,wp2.7的官方中文包中是不是不应该把permalink翻译成固定链接?),留言的链接依然是形如.html/comment-page-1#comment-2102的格式,它并不是一个真正的链接,所以这样打开的时候就会显示页面不存在。

由于多数人不需要分页显示评论,而同时又想.html/comment-page-1#comment-2102链接正常,所以不如干脆用.htaccess将.html/comment-page-1#重定向到.html,所以cosbeta在这里吧这个htaccess分享给需要的朋友:

RedirectMatch 301 (.*)\.html/comment-  http://www.storyday.com$1.html

请将storyday替换成您自己的域名!

cos-html-cache更新到 2.7

Filed under: Wordpress,网站技术 — 江东 @ 2008-12-20 17:05:08 才(47)条评论

cos-html-cache 2.7现已发布,若你比较懒,可以继续使用2.6.x版本,2.7的特性如下:

  1. 修正了由于httponly cookie导致在静态化页面中,评论框无法显示登陆用户的信息;
  2. 精简了javascript,节约了几百字节的http输出

就这两个修正,主要是第一个修正,官方下载网址:cos-html-cache

补充:看了很多朋友的留言,我觉得很有必要请大家去看看 cos-html-cache原理图解,看过之后你便能发现你的问题均可迎刃而解。明白了相关原理之后,你便知道,有的时候效率的比较是不需要做测试的,原理已经说明一切。

cos-html-cache不会导致CPU超标

Filed under: Wordpress,网站技术 — 江东 @ 2008-11-24 17:00:43 才(11)条评论

我已经在网上不止一次的看到有人说cos-html-cache这个插件会导致bluehost的CPU超标,这些朋友得出结论的来源在这里。现特写此日志,给予澄清。

在比较老的版本里面,cache的触发条件是:当有人留言,有人修改和发表post,插件会删除旧的缓存,同时生成新的缓存,这样就能保证缓存的及时更新。因此在旧的机制下,如果用户需要更新缓存就得需要两个步骤:1.删除旧的缓存;2.批量更新所有的日志,若不操作这步,该文章的缓存就只有在有用户留言或者博主重新编辑之后才能有cache生成。所以问题就出在这个第二步,如果日志过多,更新的时候会产生大量的数据库查询,从而导致CPU超标。

当cosbeta意识到这个问题的时候,就对这个插件进行了升级,升级之后的缓存机制发生了变化,而这个变化也是更加合理的。虽然我在一篇文章中详细的描述了cos-html-cache的缓存机制,这里我还是大体的提一下:插件将会在用户第一次访问的时候建立缓存文件,这个操作并不是有些朋友说的那样,会特别消耗CPU,实际情况是:插件只增加了一个文件建立的过程,所以对CPU的消耗几乎没有任何变化,就如同访问没有cos-html-cache插件的wordpress一样。因为如此,更新缓存的步骤就和老版本不一样了,直接删除所有cache便是更新了缓存,因为一旦有人访问某个没有cache的一面,cache便会自动生成。所以不会有任何大量的查询,也不会导致CPU超标。

当然,选用什么插件完全在于个人,cos-html-cache的效率到底有多高,对于post页面来说,应该是极限了。

不过,对于个人blog,用了缓存之后其实都差不多,速度这个东西,完全在于你的心,你认为它快,它便快了。

cos-html-cache升级到2.6

Filed under: Wordpress,网站技术 — 江东 @ 2008-07-18 20:39:28 才(54)条评论

看来侥幸是没有用的,今天收到JackyChen的邮件,说我的blog出问题了,因为他看到的界面居然是已经登陆的界面(当然只是假登录,不是安全隐患),原来wp2.6居然又改变了cookie的相关东西

A number of proactive security enhancements, including cookies and database interactions.

所以cos-html-cache还得要升级跟上。既然要升级,索性把其他一些小问题给修改修改,2.6的修改如下:

  1. 解决了用户在登录的情况下生成缓存文件的问题,因为这种情况下访客看到的界面是admin当前看到的状态,会导致访客无法留言;
  2. 解决了非主流blog地址的静态化文件问题,某些用户反映如果手动修改了默认路径后将无法生成缓存,特别是在godaddy的主机上,多谢麦可.志的修改,于是经过检查和测试之后我直接拿来改进了;
  3. 解决了已登录用户在发表留言时看到admin-logged@fake.com的困惑,已用admin邮件地址替代,同时为了防止邮件抓取,源代码中已经将@符号给予替代;

下载地址:cos-html-cache1

或者去这里查看历史版本:http://www.storyday.com/html/y2007/1213_cos-html-cache-2.html

wordpress官方下载地址:http://wordpress.org/extend/plugins/cos-html-cache/

最新版本2.6.2,以wordpress官方为准