我可以通过将zlib.output_compression
指令设置为on
来压缩输出,然后将output_buffering
指令设置为off
吗?
其次,我读到我可以为zlib.output_compression
指令设置一个数字值,该指令指定特定的缓冲区大小。
但是,如果我还将output_buffering
指令设置为不同的字节数值,该怎么办?什么是最大缓冲区大小?
答案 0 :(得分:7)
是的,您可以通过这种方式压缩PHP输出,但是Web服务器(nginx,Apache)可以对所有类型的内容(css资产等)进行更有效的压缩,而不仅仅是PHP输出:)< / p>
是的,您可以将zlib.output_compression设置为数值 http://php.net/manual/en/zlib.configuration.php#ini.zlib.output-compression
此选项也接受整数值而不是布尔“开”/“关”, 使用它可以设置输出缓冲区大小(默认为4KB)。 至于最大缓冲区大小,你不能设置它比Web服务器可以处理的更多。例如,nginx使用4K或8K输出缓冲区。 http://nginx.org/en/docs/http/ngx_http_fastcgi_module.html#fastcgi_buffer_size
ob_gzhandler压缩级别使用zlib.output_compression_level,默认值为-1,级别6(默认值-1,让服务器决定使用哪个级别)。 但! PHP手册http://php.net/manual/en/function.ob-gzhandler.php说:
您不能同时使用ob_gzhandler()和zlib.output_compression。也 请注意,首选使用zlib.output_compression ob_gzhandler()。