【发布时间】:2011-10-23 00:39:00
【问题描述】:
我正在使用 xampp 服务器最新版本来提高我的网页性能。
我必须在 XAMPP 中启用 Gzip。怎么办?
【问题讨论】:
标签: php windows apache xampp gzip
我正在使用 xampp 服务器最新版本来提高我的网页性能。
我必须在 XAMPP 中启用 Gzip。怎么办?
【问题讨论】:
标签: php windows apache xampp gzip
您可以通过在 apache 中设置适当的指令来进行压缩。
它会取消注释 apache conf 文件中的以下行: C:\xampp\apache\conf\httpd.conf
如果您的 xampp 安装文件夹是 C:\xampp。
这些是首先要取消注释的行:
LoadModule headers_module modules/mod_deflate.so
LoadModule filter_module modules/mod_filter.so
也就是说,如果它们前面有#,你应该删除它们!
然后把它放在你的 httpd.conf 文件的末尾:
SetOutputFilter DEFLATE
<Directory "C:/your-server-root/manual"> #any path to which you wish to apply gzip compression to!
<IfModule mod_deflate.c>
AddOutputFilterByType DEFLATE text/html # or any file type you wish
</IfModule>
</Directory>
【讨论】:
<VirtualHost 指令中加入这个SetOutputFilter 和<Directory 指令。虚拟主机设置没有任何区别,前提是您有权修改虚拟主机或允许通过 .htaccess 覆盖。
AddOutputFilterByType DEFLATE text/html 行使 xampp 无法启动。 编辑在它周围使用<IfModule mod_deflate.so>确实有效。
LoadModule filter_module modules/mod_filter.so,因为这是 mod_deflate 工作所必需的。此外,您可能希望通过包装输出过滤器调用来检查 mod_deflate 是否已启用:<IfModule mod_deflate.c> AddOutputFilterByType ... </IfModule>
上面所说的一切都不适用于我的 XAMPP 版本 1.8.1 (php 5.4.7)。
唯一可行的方法是将 php.ini 文件的这些行设置为“On”而不是“Off”:
zlib.output_compression = On
【讨论】:
mod_filter 才能使 mod_deflate 工作。请参阅我对已接受答案的评论。完成此操作后,无需启用 zlib(老实说,我并不完全确定 zlib 的作用)。
找到 apache\conf\httpd.conf
取消注释以下行(删除#)
LoadModule headers_module modules/mod_deflate.so
某些版本可能要求您注释掉以下行。
LoadModule headers_module modules/mod_headers.so
LoadModule deflate_module modules/mod_deflate.so
最后将此行添加到您的 .htaccess 文件中。
SetOutputFilter DEFLATE
【讨论】:
不知道为什么你有这个代码:
LoadModule headers_module modules/mod_deflate.so
但这对我不起作用,它在 Apache/2.4.3 (Win32) 上返回了 APACHE 错误:
12:57:10 [Apache] Error: Apache shutdown unexpectedly.
12:57:10 [Apache] This may be due to a blocked port, missing dependencies,
12:57:10 [Apache] improper privileges, a crash, or a shutdown by another method.
我不得不使用:
LoadModule deflate_module modules/mod_deflate.so
【讨论】: