Apache:编辑 .conf 文件会产生“无效命令 'Header'”

Posted

技术标签:

【中文标题】Apache:编辑 .conf 文件会产生“无效命令 \'Header\'”【英文标题】:Apache: edit to .conf file produces "Invalid command 'Header'"Apache:编辑 .conf 文件会产生“无效命令 'Header'” 【发布时间】:2016-04-05 21:17:12 【问题描述】:

在 Magento CE 中,我想为 Extendware Page Cache 安装一个名为 Lightening Cache 的附加组件。

它需要在站点的虚拟主机定义中编辑 Apache 配置,添加:

RewriteEngine On
RewriteMap ewpchash prg:/home/.../shell/extendware/ewpagecache/apache/md5.php

RewriteCond %REQUEST_METHOD !POST
RewriteCond %REQUEST_URI !\.(js|css|png|jpg|jpeg|ico|gif)$ [NC]
RewriteCond %DOCUMENT_ROOT%SCRIPT_FILENAME !-f
RewriteCond $ewpchash:%HTTPS;~;%HTTP_HOST;~;%REQUEST_URI;~;%QUERY_STRING;~;%HTTP:Cookie;~;%SCRIPT_FILENAME;~;%REMOTE_ADDR;~;%HTTP_USER_AGENT -f
RewriteRule ^(.*)$ $ewpchash:%HTTPS;~;%HTTP_HOST;~;%REQUEST_URI;~;%QUERY_STRING;~;%HTTP:Cookie;~;%SCRIPT_FILENAME;~;%REMOTE_ADDR;~;%HTTP_USER_AGENT [NC,L]
<FilesMatch "\.(html)$">
     Header unset Cache-Control
     Header unset Expires
     Header append Expires "Thu, 19 Nov 1981 08:52:00 GMT"
     Header append Cache-Control "must-revalidate"
</FilesMatch>

我已将此添加到/etc/apache2/sites-enabled/site.conf 的底部。

当我运行命令 apachectl graceful 时,我收到错误:

AH00526:第 53 行的语法错误 /etc/apache2/sites-enabled/site.conf:无效命令“标题”, 可能拼写错误或由未包含在服务器中的模块定义 配置操作“优雅”失败。 Apache 错误日志可能有 更多信息。

网站正在运行 Apache 2.4

我做错了吗?

【问题讨论】:

【参考方案1】:

为了在 apache 中使用 Header 指令,您必须加载 mod_header 模块。 您可以通过以下方式测试模块是否已加载:-

apache2ctl -M | grep headers_module

find / -name mod_headers.so

如果已加载,您将看到类似的内容:-

headers_module (shared)

/usr/lib/apache2/modules/mod_headers.so

如果您没有看到 find 命令的输出,则直接在您的 apache conf 文件中加载该模块。只需附加以下行:-

LoadModule headers_module modules/mod_headers.so

注意:- mod_header 在 apache 中可用作基本模块。所以你不需要显式安装它。

发出以下命令:-

a2enmod headers

重启网络服务

apache2ctl restart

【讨论】:

很好的答案!我必须在 /etc/apache2/mods-enabled/ 目录中创建一个符号链接来加载 headers_module。 cd /etc/apache2/mods-enabled/; ln -s ../mods-available/headers.load headers.load 然后重启apache2。 +1 - 并且,对于那些(喜欢我的)正在 WAMP / WAMPSERVER 中寻找 mod_headers 模块的人:可用的 Apache 模块列表没有“mod_”前缀。如果你不能在那里编辑,编辑 wamp\bin\apache\apache 我必须在 debian 上运行:a2enmod 标头(即模块的名称) wdupload.kahoindia.in/files/PZSAWVjtEVDNFQTlNp-eYQ/mahesh7png

以上是关于Apache:编辑 .conf 文件会产生“无效命令 'Header'”的主要内容,如果未能解决你的问题,请参考以下文章

如何获得编辑文件 apache2.conf 的权限? [Ubuntu]

终端.app打开Apache的命令™s码httpd.conf文件文本编辑中的文件

apache_conf 最终的.htaccess文件。请随意分叉,编辑它,让我知道你怎么看待它。

apache_conf 最终的.htaccess文件。请随意分叉,编辑它,让我知道你怎么看待它。

即使在应用程序部署之后,如何永久编辑 httpd.conf 以使 apache 2.4 中的更改发生?

Apache 在编辑配置文件并重新启动后搜索旧 DocumentRoot