AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 555140
Accepted
Erik-Jan Riemers
Erik-Jan Riemers
Asked: 2013-11-15 15:33:50 +0800 CST2013-11-15 15:33:50 +0800 CST 2013-11-15 15:33:50 +0800 CST

Apache mod deflate 不压缩 php 输出

  • 772

我已经启动并运行了 mod_deflate。我可以在我的 apache 服务器中放入一个 something.txt 文件并使用 curl 来检查它。

curl --compressed -I /somefile.txt 给了我以下好的和压缩的:

Vary: Accept-Encoding
Content-Encoding: gzip

但如果我使用 /some.php 我会回来:

Accept-Ranges: bytes
X-Powered-By: PHP/5.4.4-14+deb7u5

但没有 Content-Encoding: gzip,我使用了多个选项的 .htaccess:

SetOutPutFilter DEFLATE

或者

AddOutputFilterByType DEFLATE application/json

我还检查了 php.ini 中的 zlib 压缩是否已关闭,并且还尝试将输出缓冲区设置为关闭。但无论我尝试什么,我都不会让 php 输出被 apache 压缩。从 apache 到 zip 的开销比我使用 php zlib 时要少。

我看到了足够多的帖子,例如Apache 输出压缩适用于 CSS/JS,但不适用于 PHP,但可以从 php 进行压缩。我希望 apache 来处理它。

我一定在这里遗漏了一些愚蠢的东西。

更新:我解决了所有问题,也是因为给出的答案。最后它仍然没有100%工作。这是由于安装了错误的软件包。使用了 apache2filter,它让我走错了路。

apache-2.2
  • 3 3 个回答
  • 12419 Views

3 个回答

  • Voted
  1. Best Answer
    regilero
    2013-11-16T05:12:07+08:002013-11-16T05:12:07+08:00

    AddOutputFilterByType是在输出过滤器链上添加东西的一种不推荐的方式(参考这里)。:

    另一个指令 AddOutputFilterByType 仍受支持,但可能存在问题,现已弃用。请改用动态配置。

    您可能会遇到一些问题,因为 PHP 与一个不包含 DEFLATE 过滤器的过滤器链相关联。

    您可以尝试将mod_filter的新语法与FilterChain一起使用,如本问题所示(在问题中,而不是在答案中)。

    • 4
  2. VogonPoetLaureate
    2013-11-15T16:44:39+08:002013-11-15T16:44:39+08:00

    我遇到了这个问题,最终发现在 .htaccess 和 httpd.conf 中设置 mod_deflate 选项会导致不同的结果。当在 fastcgi 中运行或作为 DSO 运行时,httpd.conf 设置适用于 PHP。在 .htaccess 文件中,作为 fastcgi 运行的 PHP 无法理解 deflate 指令。

    所以尝试在你的 httpd.conf 而不是 .htaccess 中编写规则,看看是否能解决你的问题(不要忘记在进行更改后重新启动 Apache)。

    • 2
  3. Lothar_Grimpsenbacher
    2013-11-15T21:05:08+08:002013-11-15T21:05:08+08:00

    试试这个,看看它是否适合你:

    AddOutputFilterByType DEFLATE application/x-httpd-php
    AddOutputFilterByType DEFLATE application/x-httpd-fastphp
    
    • 0

相关问题

  • Apache Django Mod_Wsgi - 自动重新加载应用程序

  • Apache:对多个虚拟主机使用相同的目录指令

  • Apache 上的子域不工作 - 找不到服务器

  • PHP 作为 CGI 还是 Apache 模块?

  • 避免将某些丢失的文件记录到 Apache2 错误日志中

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve