Typecho备份不能下载

0
10

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 插件)开启

插件会自动避开不该压缩的输出,如备份文件。


:test_tube: 如果你只是为了测试

你可以这样临时关闭 gzip 试试看备份是否恢复:

  1. 注释掉那两行:
// ob_start('ob_gzhandler');
  1. 清理缓存(如果你有缓存插件)
  2. 再试备份

99% 你会发现它恢复正常。

发布回复

请输入评论!
请输入你的名字