【问题标题】:How to enable GZip compression in XAMPP server如何在 XAMPP 服务器中启用 GZip 压缩
【发布时间】:2011-10-23 00:39:00
【问题描述】:

我正在使用 xampp 服务器最新版本来提高我的网页性能。

我必须在 XAMPP 中启用 Gzip。怎么办?

【问题讨论】:

    标签: php windows apache xampp gzip


    【解决方案1】:

    您可以通过在 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> 
    

    【讨论】:

    • 如果设置了虚拟主机,如何设置目录路径?
    • @idb 你可以在你的&lt;VirtualHost 指令中加入这个SetOutputFilter&lt;Directory 指令。虚拟主机设置没有任何区别,前提是您有权修改虚拟主机或允许通过 .htaccess 覆盖。
    • AddOutputFilterByType DEFLATE text/html 行使 xampp 无法启动。 编辑在它周围使用&lt;IfModule mod_deflate.so&gt;确实有效。
    • 对于 Apache 2.4,您还需要取消注释 LoadModule filter_module modules/mod_filter.so,因为这是 mod_deflate 工作所必需的。此外,您可能希望通过包装输出过滤器调用来检查 mod_deflate 是否已启用:&lt;IfModule mod_deflate.c&gt; AddOutputFilterByType ... &lt;/IfModule&gt;
    • 为什么你有 mod_deflate.so 的 headers_module?我在我的 conf 中看到了 deflate_module modules/mod_deflate.so。这是你的错字吗?
    【解决方案2】:

    上面所说的一切都不适用于我的 XAMPP 版本 1.8.1 (php 5.4.7)。

    唯一可行的方法是将 php.ini 文件的这些行设置为“On”而不是“Off”:

    zlib.output_compression = On
    

    【讨论】:

    • 在 Apache 2.4(包含在 XAMPP 1.8.1 中)中,您还需要启用 mod_filter 才能使 mod_deflate 工作。请参阅我对已接受答案的评论。完成此操作后,无需启用 zlib(老实说,我并不完全确定 zlib 的作用)。
    【解决方案3】:

    找到 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
    

    【讨论】:

    • 只是一个指针:同上,只是我把SetOutputFilter DEFLATE放到了httpd.conf的最后。
    【解决方案4】:

    不知道为什么你有这个代码:

    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
    

    【讨论】:

    • 关键是取消注释该行。不同的 apache 安装(ubuntu、centos、wamp、xampp)可能有不同的配置。
    猜你喜欢
    • 1970-01-01
    • 2012-01-04
    • 1970-01-01
    • 2013-02-24
    • 2021-03-13
    • 1970-01-01
    • 2015-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多