Sam*_*Sam 4 php performance zlib
在设置PHP带宽节省和有效速度增益时,我有一些关于htaccess设置性质的详细专家问题:
请允许我提前感谢您对此事的回答和澄清,因为我不了解百科全书样式的长页apache手册
以下示例是我在Apache 2.0和PHP 5.2.3上实际运行的内容
# preserve bandwidth for PHP enabled servers
<ifmodule mod_php4.c>
php_value zlib.output_compression 16386
</ifmodule>
Run Code Online (Sandbox Code Playgroud)
.
Q1:是否ifmodule mod_php4.c建议将其用于PHP 4而不是PHP5?
Q2:服务器引擎是否会更快地将其放入php.ini,而不是htaccess?
问题3:压缩默认设置为16386.如果我们将它降低到比如说,它会发生什么?4K
问题4:如果我们将其设置得更高会发生什么,例如128K?
Q1:ifmodule mod_php4.c是否表示它适用于PHP 4而不是PHP5?
是. 跑.PHP4没有理由仍然安装,除非您的脚本在PHP5下会中断.
Q2:服务器引擎在php.ini而不是htaccess中使用它会更快吗?
除了Apache启动期间的一些操作码之外,一个iota并不重要.意思是,没有...除非.htaccess文件尚未存在,在这种情况下,当Apache找到文件时可能会有轻微的性能损失.(更少的.htaccess文件=>少不必要的stat电话=>更快性能的一切.)
问题3:压缩默认设置为16386.如果我们将其降低到4K,会发生什么
这是输出缓冲区的大小.如果将其降至4k,数据将稍早发送.根据页面的平均大小,这可能意味着数据可能需要以多个块的形式发送,这对于获取数据的用户来说可能是非常小的性能下降.
问题4:如果我们将其设置得更高,例如128K,会发生什么?
这意味着在将数据发送到客户端之前会发生128k的缓冲.如果您的网页在gzipping后超过128k,那么可能是错误的.
设置PHP带宽节省和有效的速度增益:
不久前,人们开始建议不使用PHP的内置gzip,而是建议使用Apache的mod_deflate.这让PHP只关心生成HTML,让Apache担心压缩和服务它.它也有同样的效果.虽然mod_deflate的手册页是百科全书式的,但它也简单明了.您可能已经拥有它,只需在httpd.conf中使用所需的行.
因为它可以在"过滤器"级别运行,所以使用它也意味着生成压缩MIME类型的任何东西,包括CGI脚本和普通的旧HTML文件都可以自动进行gzip压缩.
更新评论的答案:
我是否正确地阅读了正确的行,你建议我删除块A,并且只有块B在这里看到
这通常是正确的,尽管您在那里的配置块目前通过扩展名定位文件.相反,您可以使用AddOutputFilterByType配置指令按MIME类型进行定位,如mod_deflate手册中所述.
当拆除PHP配置,同时还应仔细检查您的系统上的php.ini,因为它可能还包含您可能不需要压缩指令.
无论您使用什么方法打开mod_deflate,Apache都会非常聪明,不会出现双gzip内容.
更改块A以使其与PHP5最兼容的正确方法是什么?
这取决于系统上调用mod_php的5.x版本.它将是普通的旧常规mod_php或mod_php5.LoadModule在httpd.conf(或/etc/httpd/conf.d/*.conf)中的其他地方查找指令.
在实际配置指令是正确的,它只是包裹在一个"只有在PHP4装做这个"块.
假设您的5.x mod_php被调用mod_not_butter.如果是这种情况,该块将如下所示:
<IfModule mod_not_butter.c>
php_value suckitude_factor -1
</IfModule>
Run Code Online (Sandbox Code Playgroud)
我想知道我可能有哪些其他选项来定制/加速我的mod_deflate APACHE gzip处理
有很多选择.除缓冲区大小()之外,请勿触摸它们中的任何一个DeflateBufferSize,您应将其设置为您期望的平均未压缩数据大小.(我早些时候错误地认为缓冲区是在压缩之后,而实际上是在之前.)
所有其他选项都是您不需要触及的理智默认值,因为当更改它们实际上会以有意义的方式影响性能时,您将需要使用其他技术来加载Apache.