In Magento CE, I'd like to install an add-on to Extendware Page Cache called Lightening Cache.
It requires editing the Apache configuration inside the virtual host definition for the site, by adding:
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>
I have added this to the bottom of /etc/apache2/sites-enabled/site.conf
.
When I run the command apachectl graceful
, I receive the error:
AH00526: Syntax error on line 53 of /etc/apache2/sites-enabled/site.conf: Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration Action 'graceful' failed. The Apache error log may have more information.
Site is running Apache 2.4
Have I done something wrong?
In order to use Header directive in apache you have to load mod_header module. You can test if module is loaded or not by :-
apache2ctl -M | grep headers_module
find / -name mod_headers.so
If it is loaded you will see something like :-
headers_module (shared)
/usr/lib/apache2/modules/mod_headers.so
If you see no output of find command than load that module directly in your apache conf file. Just append below line :-
LoadModule headers_module modules/mod_headers.so
Note :- mod_header is available as base module in apache. So you don't need to install it explicitly.
Issue following command :-
a2enmod headers
Restart web service
apache2ctl restart
If someone is experimenting this error on a dockerized apache, the solution was only add this to my Dopckerfile
RUN a2enmod headers
This was the error log
[Fri Oct 21 17:39:55.384761 2022] [core:alert] [pid 19] [client 172.17.0.1:57480]
/var/www/html/page1/.htaccess:
Invalid command 'Header', perhaps misspelled or defined by a module not included in the server configuration
And the error
And the .htaccess
Header add X-Custom "Custom Value"
Here my complete Dockerfile
FROM php:8.0-apache
RUN a2enmod rewrite
RUN a2enmod headers
COPY src/ /var/www/html
EXPOSE 80
After the fix
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With