内容不被压缩,即使我在php.ini中使用zlib

我已经编辑了我的php.ini文件,以便它有这两个条目:

zlib.output_compression = On zlib.output_compression_level = 4 

但是,在重新启动apache之后,当我请求php页面时,响应中返回的标题表明我的服务器仍然没有提供压缩页面(这里是使用Chromenetworkingfunction查看的选定标题):

 Cache-Control:no-cache, must-revalidate, max-age=0 Connection:Keep-Alive Content-Type:text/html; charset=UTF-8 Date:Mon, 17 Sep 2012 23:46:13 GMT Expires:Wed, 11 Jan 1984 05:00:00 GMT Last-Modified:Mon, 17 Sep 2012 23:46:13 GMT Pragma:no-cache Proxy-Connection:Keep-Alive Server:Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.17 Transfer-Encoding:chunked Via:1.1 XXX-PRXY-07 X-Powered-By:PHP/5.2.17 

我可能会做错什么? 还有其他的设置需要改变吗?

编辑

这是另一组返回到另一台计算机的标题:

 Cache-Control:no-cache, must-revalidate, max-age=0 Connection:close Content-Type:text/html; charset=UTF-8 Date:Thu, 20 Sep 2012 09:45:26 GMT Expires:Wed, 11 Jan 1984 05:00:00 GMT Last-Modified:Thu, 20 Sep 2012 09:45:26 GMT Pragma:no-cache Server:Apache/2.2.21 (Unix) mod_ssl/2.2.21 OpenSSL/0.9.8e-fips-rhel5 mod_auth_passthrough/2.1 mod_bwlimited/1.4 FrontPage/5.0.2.2635 PHP/5.2.17 Transfer-Encoding:chunked Vary:Cookie X-Powered-By:PHP/5.2.17 

它看起来像交通正在代理。 validation代理可以处理压缩stream量,并且由于某种原因没有对其进行解压缩。

如果客户端(在这种情况下代理,但在许多情况下最终用户的浏览器)不支持使用中的压缩,stream量不会被压缩。

我也注意到,mod_zlib或mod_deflate似乎都没有加载。 您可能需要检查模块是否正在工作和configuration(您可能需要为apache启动添加一个定义选项,或启用一个configuration文件)。

您的php.ini文件没有被读取,或者您的zlib模块没有被加载。 还要确保没有设置output_handler 。 如果您需要使用带有压缩输出的输出处理程序,请改为使用zlib.output_handler

首先要做的是确保PHP知道zlib和你的configuration更改。 创build一个名为test.php的文件,并在其中放入以下内容。

 <?php phpinfo(); ?> 

现在用您的浏览器访问该页面。 zlib部分的表格是什么意思? 它应该看起来像这样,如果是这样,你的网页应该与gzip内容编码。 如果你没有看到zlib部分,那么你可能需要在php.ini中添加一个指令来加载模块。

phpinfo()zlib详细信息的屏幕截图

同时检查页面的核心部分,以确保output_handler设置为无值

phpinfo()output_handler细节的抓屏