我在 Fedora (14) 上安装 mod_pagespeed 并运行 apache,出现了以下错误信息:
[error] an unknown filter was not added: DEFLATE
很多。我知道这是因为 mod_deflate 没有加载,但没关系,我不想加载它(负载平衡器负责 gzip 压缩等,当 deflate 也在网络服务器上时,我们会得到意想不到的结果)
但是我不知道它在哪里被引用,我使用这个命令查看了 /etc/httpd 中的所有文件
find . -type f -exec grep -li "deflate" {} \;
更新该命令还会搜索 conf.d 子目录 - 我也使用类似的东西来查看服务器上的所有 .htaccess 文件
find . -type f -name ".htaccess" -exec grep -li "deflate" {} \;
并且唯一的引用是在 .conf 文件中,并且它们被注释掉了#
(apache 已经重新启动)更新例如
# LoadModule deflate_module modules/mod_deflate.so
我如何才能找到引用它的位置并将其删除?
更新我尝试运行a2enmod
和a2dismod
,但没有这样的命令。yum install a2dismod
找不到任何要安装的东西。这些命令的名称和目录/etc/apache2/mods-enabled
我只在 ubuntu 中遇到过,我不知道等效的 fedora / fedora-installed-via-yum 命令
已安装的模块列表,(但由于错误是过滤器未知,我不确定我在寻找什么?如果 mod_deflate 在这个列表中,那么我肯定不会收到错误?)
Loaded Modules:
core_module (static)
mpm_prefork_module (static)
http_module (static)
so_module (static)
auth_basic_module (shared)
auth_digest_module (shared)
authn_file_module (shared)
authn_alias_module (shared)
authn_anon_module (shared)
authn_dbm_module (shared)
authn_default_module (shared)
authz_host_module (shared)
authz_user_module (shared)
authz_owner_module (shared)
authz_groupfile_module (shared)
authz_dbm_module (shared)
authz_default_module (shared)
ldap_module (shared)
authnz_ldap_module (shared)
include_module (shared)
log_config_module (shared)
logio_module (shared)
env_module (shared)
ext_filter_module (shared)
mime_magic_module (shared)
expires_module (shared)
headers_module (shared)
usertrack_module (shared)
setenvif_module (shared)
mime_module (shared)
dav_module (shared)
status_module (shared)
autoindex_module (shared)
info_module (shared)
dav_fs_module (shared)
vhost_alias_module (shared)
negotiation_module (shared)
dir_module (shared)
actions_module (shared)
speling_module (shared)
userdir_module (shared)
alias_module (shared)
substitute_module (shared)
rewrite_module (shared)
proxy_module (shared)
proxy_balancer_module (shared)
proxy_ftp_module (shared)
proxy_http_module (shared)
proxy_ajp_module (shared)
proxy_connect_module (shared)
cache_module (shared)
suexec_module (shared)
disk_cache_module (shared)
cgi_module (shared)
version_module (shared)
cband_module (shared)
dnssd_module (shared)
pagespeed_module (shared)
perl_module (shared)
php5_module (shared)
python_module (shared)
ssl_module (shared)
答案1
您收到的错误消息实际上意味着需要mod-deflate
加载您当前的 Apache 配置。您的 Apache 想要用作mod-deflate
处理过滤器,无论是传出过滤器还是传入过滤器。
由于您不想使用,因此mod-deflate
您已将其禁用,并且的输出DUMP_MODULES
不会显示它。您现在需要查找使用 的过滤器指令mod-deflate
并停用它们。查找关键字DEFLATE
是一个好的开始,但也要查找INFLATE
(mod-deflate
也用于解压缩传入的响应主体)。并且,如果您什么也没找到,即使查找 也Filter
可能有帮助(但您可能会得到更长的匹配列表)。尝试以下命令:
grep -r Filter /etc/apache2/*
find /var/www -type f -name .htaccess -exec grep Filter {} \;
您可能还需要查找其他包含的文件,因为某些软件包(某些 Web 应用程序,如 phpmyadmin 等)通常会在不同的目录下安装 apache 配置指令(至少某些 Debian/Ubuntu 软件包是这种情况,不确定 Fedora 是否如此)。
您还可以完全停用过滤器模块(mod-filter
)和 mime 模块(mod-mime
,它定义 Add/RemoveFilter 指令),但这将停用您可能需要的其他功能。
答案2
您使用的是哪个版本的 Fedora?
您不仅需要查找单词deflate
,还需要在 apache 配置文件中查找include
语句。大多数 Linux 发行版都会自动将目录中的所有文件(例如)包含/etc/apache2/conf.d/
在其 apache 配置中。这可能是您的情况。
您的发行版可能包含a2enmod
和a2dismod
apache 实用程序,它们有助于管理 apache 模块。这些实用程序通常只管理目录中的链接,/etc/apache2/mods-enabled
然后像我上面所说的那样将其包含在内。尝试使用这些命令来管理您的 apache 正在使用的模块列表。
答案3
检查 htaccess 文件是否存在类似
AddOutputFilterByType DEFLATE text/plain