使用 TpCache 加速您的 Typecho 博客

使用 Typecho 的原因就是因为它小巧轻便速度快,为了让访问速度更快,同时减少代码执行时间,我们可以安装 TpCache 来加速。

TpCache 是由老高编写的一款 Typecho 插件,源码和下载地址在 Github.com/phpgao/TpCache

不过这款插件不支持 Redis Auth 验证,这就很糟糕了。不过我 Fork 后进行了修改,现在支持了。源码和下载地址在 Github.com/maicong/TpCache

下面我来介绍下如何正确食用。

首先

下载该插件并解压,将文件夹 TpCache-x.x 重命名为 TpCache,放到 [Typecho 根目录]/usr/plugins 里。
进入 后台>控制台>插件>禁用的插件 启用该插件。

然后

插件提供 Memcached、Memcache、Redis 和 Mysql 4种缓存功能,默认是不使用缓存,可以根据自己的喜好进行自由选择。
本文重点讲解如何使用 Redis 这项。

选择一: 使用 Memcached 或 Memcache
Memcached 和 Memcache 的区别和安装方法可以去 PHP Memcached 手册PHP Memcache 手册 查看
安装后,进行启动,同时需要重启 PHP 服务。如果没有对 Memcache* 配置文件进行修改,在插件设置页主机地址和端口号保持默认就行了。

选择二: 使用 Mysql
Mysql 缓存这个最简单最直接,主机地址和端口号也不需要填写,直接保存就行了。
选择 Mysql 这项会在数据库里生成一个 [数据库表前缀]_cache 的表,缓存的数据被放在这里面,当禁用插件的时候会自动删除这个表。

选择三: 使用 Redis
使用前,需要服务器安装了 Redis 和 PhpRedis。
Redis 可到 Github.com/antirez/redis 下载安装,PhpRedis 可到 Github.com/phpredis/phpredis 下载安装。

由于不同的服务器系统安装方法不同,我就不具体讲解了。下面由我介绍一种快捷的安装技巧。

接着

这里我要搬出我写的这个 LNMP 脚本了,源码和使用说明在 Github.com/maicong/LNMP
因为这个脚本是用 YUM 方式安装配置环境的,所有可以直接 YUM 来安装新的软件。

1、安装 Redis 和 PhpRedis

yum install redis php-pecl-redis

执行命令后 YUM 会自动查找相关软件包并安装,同时将配置文件保存在 /etc 目录,安装后 PHP 会自动加载 php-pecl-redis 的配置文件,只需要修改下 Redis 的配置就行。

2、配置 Redis
打开位于 /etc/redis.conf 的配置文件并修改部分参数

# 检测端口是否被占用
netstat  -anltup | grep :16379
# 修改端口为 16379 (也可以是其他)
port 16379
# 绑定 IP 请求来源为本地
bind 127.0.0.1
# 在空闲300秒后关闭链接
timeout 300
# 修改验证密码 (密码越强越好)
requirepass 'abcd1234qwer'
# 重命名命令
rename-command FLUSHALL ""
rename-command CONFIG ""
rename-command EVAL ""

更多有关 Redis 说明请到 Redis.io/documentation 查阅
3、启动 Redis
使用命令

systemctl start redis.service

此命令调用的就是刚刚编辑的位于 /etc 目录的配置文件。
如果想要在开机的时候自动启动 Redis 服务,可以执行

systemctl enable redis.service

Redis 服务启动了,验证下是否可用。输入下面命令连接 Redis

redis-cli -p 16379 -a 'abcd1234qwer'

在出现的 > 后面输入

set test 'I am fine'

如果显示 OK,表示配置成功,然后我们可以使用 del test 删掉刚刚加的值,Ctrl+C 退出。

4、重启 Web 服务
使用启动重启二合一命令

service vhost start

如果要对单一站点进行启动,则使用 service vhost start [站点名]

最后

这时候一切已经准备就绪,进入站点后台,在插件设置里将端口号改成 redis.conf 里的端口号,验证密码填入 requirepass 的值,保存。这时候使用新的浏览器或者隐身模式打开博客任一文章,程序会自动将当前页面缓存起来。

目前插件还不能删除单一页面的缓存,可以重新打开设置,勾选 清除所有数据 删除掉所有已生成的缓存。

您可以在源码中最后一行看到是否启用的是缓存和页面加载用时。

扩展阅读

https://github.com/maicong/LNMP
https://github.com/phpgao/TpCache
https://github.com/maicong/TpCache
https://github.com/antirez/redis
https://github.com/phpredis/phpredis
https://secure.php.net/manual/zh/book.memcached.php
https://secure.php.net/manual/zh/book.memcache.php
http://redis.io/documentation

带符号 * 的表示必填项
  1. 千寻神隐
    千寻神隐

    支持支持~

    回复
  2. kkou
    kkou

    用了这个插件之后无法追评……

    回复
    1. MaiCong
      MaiCong博主

      是的,目前插件还有问题

      回复
  3. 苏州美贝尔
    苏州美贝尔

    加快博客访问速度 这个可以有 哈哈 不错不错

    回复
    1. MaiCong
      MaiCong博主

      这个插件有点问题,就是会缓存最后一位用户的信息,这个我还没修复。

      回复
  4. 公子
    公子

    我的评论咋没了~~~~

    回复
    1. MaiCong
      MaiCong博主

      服务器到期了,没有弄自动备份,数据丢了...

      回复
  5. 窃窃私语
    窃窃私语

    支持麦葱。。主题很清新

    回复
    1. MaiCong
      MaiCong博主

      好哒

      回复
  6. 路易大叔
    路易大叔

    你懂得真多

    回复
    1. MaiCong
      MaiCong博主

      这个算是瞎折腾

      回复
  7. fayda
    fayda

    typecho一直没用过,话说以前还用过你的主题。^_^

    回复
    1. MaiCong
      MaiCong博主

      哈哈,多谢支持呢

      回复
  8. Tokin
    Tokin

    修复了貌似?

    回复
    1. MaiCong
      MaiCong博主

      暂时关了缓存……

      回复
  9. Betty
    Betty

    话说,你好歹也是走技术流?
    我刚才已评论过一次,想再在这篇文章留言,却注意到评论区提示:将以“郑永”的身份留言……
    郑永?啥?

    回复
    1. MaiCong
      MaiCong博主

      fuck.. 缓存的问题……

      回复
  10. 大jj
    大jj

    你的lnmp 的项目 是时候更新了。。。。。

    回复
    1. MaiCong
      MaiCong博主

      :)最近在玩其他的东东

      回复
      1. 大jj
        大jj

        坐等你更新。最好更新下一键搭配 ,省得还的自己选版本,

        回复
        1. MaiCong
          MaiCong博主

          嗯呢

          回复