Typecho HTML 静态缓存插件 SaHtmlCache V1.0.0 发布

该日志由 samool 发表于 2020-01-04 16:47:00

SaHtmlCache 介绍

Typecho HTML 静态缓存插件 SaHtmlCache V1.0.0 发布

我这个老博客文章比较多,为了节省服务器资源,减少数据库读写次数,于是就花了点时间,做了typecho第一个插件

同一个页面先看一下启用前和启用后的差别

未启用缓存加载页面需要3.94s
未启用缓存.png

启用缓存后加载页面需要1.49s
启用缓存后.png

服务器配置高的话,基本上感觉不到差距,但是网站访问量大了之后,服务器资源就很紧缺了,节省一半的时间效果还是很明显的哇,哈哈哈

SaHtmlCache 下载

https://github.com/cnsamool/SaHtmlCache-For-Typecho

SaHtmlCache 安装方法

1、将SaHtmlCache.rar 解压后上传于站点/usr/plugins/目录下
2、PHP.ini环境配置文件要改一下,将allow_url_include = On
3、永久链接(伪静态)设置为/{cid}.html (目前是通过文章编号cid生成文件的,如果想生成个性化文件名,请自行修改一下插件生成文件名)
4、将cache目录设为可读可写,Linux是777权限
5、修改站点根目录下index.php,添加以下代码

/**  SaHtmlCach 重定向到HTML静态文件 */
$safile = $_SERVER['REQUEST_URI'];
if(strpos($safile,'comment')<1){
    if ($safile=='/'||$safile=='index.php'){
        $safile = 'index.html';    
    }
    
    $sahtmlfile = './usr/plugins/SaHtmlCache/cache/'.$safile; 
    if(file_exists($sahtmlfile)){
        include($sahtmlfile);
        exit;
    }
}

如图所示
修改index.php文件.png

6、后台启用插件,并生成HTML文件
生成HMTL静态页.png

伪静态设置参考

永久链接设置.png

帮助说明

1、如何区分HTML缓存是否生效?
查看网页源代码,如果顶部有SaCache created 2020/01/04 04:33:14代码,说明已经成功,如图所示
网页代码.png

2、搜索功能是否影响?
不影响博客搜索页

3、分类目录页是否可以缓存?
暂时不支持

4、评论页是否支持HMTL缓存?
支持,需要定期生成HMTL文件

5、为何生成HTML比较卡?
全站生成HTML慎用,比较耗服务器资源,不过一劳永逸,耐心等待吧

6、我是否可以修改代码?
可以随便修改代码,如果您有优化过代码,或者新增了功能,记得发一份代码给我6042506@qq.com

该日志标签: typecho

上一篇: 爬站利器-teleport ultra
下一篇: Linux mint详细安装步骤

已有 31 条评论 »

  1. Typecho合集站 Typecho合集站 April 13th, 2021 at 07:02 pm

    已启用,效果很棒~

  2. 青鸟 青鸟 December 23rd, 2020 at 12:00 am

    安装后首页搜索功能失效

  3. era era October 6th, 2020 at 03:47 pm

    dalao,如果能添加访问后自动生成静态html,有新文章或评论,删除缓存文件 就更牛逼了。

  4. 世界和平 世界和平 July 20th, 2020 at 10:24 pm

    由于服务器用的学生机,所以想拥有静态页面,安装后才发现插件只支持cid生成页面,怎么生成自定义的永久链接呢,流下了没有技术的泪水 ::aru:blood::

  5. 傻猫 傻猫 July 20th, 2020 at 11:23 pm

    tp占资源本来就少,这个静态页面插件用来搞起玩的,没有必要较真

  6. Vergil Vergil July 14th, 2020 at 11:51 am

    感谢博主开源,亲测正常使用,就是同楼上 @三脚猫 说的使用了第三方登录之后回调回来,其实已经是登陆成功的状态了,但是因为页面用的是几分钟前缓存的html,所以前台上来看还是未登录的状态,不影响实际使用其实

  7. 小白 小白 June 22nd, 2020 at 02:08 pm

    allow_url_include = On
    已设置为On,php-fpm和nginx也已经重新启动了,还是不行!

    Warning: include(): https:// wrapper is disabled in the server configuration by allow_url_include=0 in /var/www/html/usr/plugins/SaHtmlCache/Plugin.php on line 366

    Warning: include(https://1818618.cn/index.php): failed to open stream: no suitable wrapper could be found in /var/www/html/usr/plugins/SaHtmlCache/Plugin.php on line 366

    Warning: include(): Failed opening 'https://1818618.cn/index.php' for inclusion (include_path='.::/var/www/html/var:/var/www/html/usr/plugins') in /var/www/html/usr/plugins/SaHtmlCache/Plugin.php on line 366

  8. 我爱吃土豆 我爱吃土豆 June 11th, 2020 at 02:31 pm

    1:缓存完成的页面,每次首次访问都不会访问缓存,只有点击刷新了缓存才会生效。(我的站有cdn)
    2:由于我的文章太多,点击全部缓存的话请求会超时,导致总是无法全部缓存

  9. 小迪 小迪 March 11th, 2020 at 09:51 am

    !请问小站伪静态地址是 https://www.XXX.com/t/36597 形式, 没有HTML后缀可以使用吗

  10. 傻猫 傻猫 March 12th, 2020 at 12:12 pm

    目前是不可以的,你可以改改伪静态规则试试

  11. small_pretty small_pretty March 9th, 2020 at 11:44 pm

    你好博主,我的后台固定链接 是这样的形式 /{category}/{cid}.html
    显然插件好像并不符合我的博客,所以我需要修改下plugin 但我始终没找到修改办法,你做的插件真的挺好,但目前我只能使用网站首页缓存功能,文章缓存调用不成功,可以告知下我该怎样做吗?谢谢!

  12. small_pretty small_pretty March 13th, 2020 at 02:49 pm

    博主都不搭理我。。。。

  13. cq cq March 7th, 2020 at 04:14 pm

    启用插件后就提示server error

添加新评论 »