Typecho1.21最新版,自带备份功能,无法正常使用。
为什么会这样?
Typecho 后台的 备份功能需要输出纯文本(SQL 文件),但你在最外层包上了 ob_gzhandler(),它会:
- 修改输出格式
- 压缩输出内容
- 让浏览器收到的是 gzip 的内容
- 导致 Typecho 备份文件识别失败 → 备份无法生成或下载出错
尤其是老版本(比如 1.1 / 1.2 系列)对输出缓存比较敏感,一旦被 gzip 包裹,备份功能往往会挂掉。
如果你通过以下方式开启了Typecho开启Gzip压缩,把下面这两行删掉后,备份功能会恢复正常。
/* 开启gzip压缩 */
ob_start('ob_gzhandler');
正确做法(推荐)
如果你 真的想开启 gzip,不要直接在 config.inc.php 用 ob_start。
更安全的做法有两种:
① 让服务器(Nginx / Apache)开启 gzip —— 最推荐
因为 Typecho 本身是动态输出,服务器端 gzip 处理更稳定。
Nginx 示例:
gzip on;
gzip_types text/plain text/css application/json application/javascript application/xml;
gzip_min_length 1024;
② 使用 Typecho 插件(如 Gzip 插件)开启
插件会自动避开不该压缩的输出,如备份文件。
如果你只是为了测试
你可以这样临时关闭 gzip 试试看备份是否恢复:
- 注释掉那两行:
// ob_start('ob_gzhandler');
- 清理缓存(如果你有缓存插件)
- 再试备份
99% 你会发现它恢复正常。







