Apache docker container - Invalid command 'RewriteEngine'
Solution 1
This works for me:
# Dockerfile
FROM php:5.6-apache
MAINTAINER Raphael Mäder <[email protected]>
RUN a2enmod rewrite
ADD . /var/www/html
Don't forget to run your docker-compose up
command with --build
if you have already built the image previously, otherwise it will run the old image which may have not included the RUN a2enmod rewrite
statement.
Solution 2
Add this to your Dockerfile:
# Enable mod_rewrite for images with apache
RUN if command -v a2enmod >/dev/null 2>&1; then \
a2enmod rewrite headers \
;fi
HeyDaddy
Updated on June 23, 2022Comments
-
HeyDaddy almost 2 years
I use docker compose. However, when I run "docker-compose up", I came across an error : /var/www/html/.htaccess: Invalid command 'RewriteEngine'.
Can you tell me where I fails ??
Project architecture :
project-name / / docker-compose.yml / Dockerfile / apache.conf / php.ini / src / / index.php / .htaccess
docker-compose.yml :
web: build: . ports: - "80:80" volumes: - ./src:/var/www/html - php.ini:/usr/local/etc/php/conf.d/30-custom.ini - apache.conf:/etc/apache2/sites-enabled environment: - ALLOW_OVERRIDE=true
Dockerfile :
FROM php:7.0-apache RUN a2enmod rewrite RUN service apache2 restart ADD ./src /var/www/html
php.ini :
display_errors=1 error_reporting=E_ALL
apache.conf (with my ip address) :
<VirtualHost *:80> ServerName xxx.xxx.xx.xxx DocumentRoot /var/www/html </VirtualHost>
I type in the command line :
docker@default:/blabla/project-name$ docker-compose up
it returns me :
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using xxx.xx.x.x. Set the 'ServerName' directive globally to suppress this message
and
/var/www/html/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
and in the browser, in my ip address (http://xxx.xxx.xx.xxx/) :
500 Internal servor error
my .htaccess :
<files .htaccess> Require all denied </files> Options +FollowSymlinks -Indexes -Multiviews RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)/$ /$1 [L,R=301] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?p=$1 [L,QSA]
I'm on windows and i use Oracle VM Virtual Box.
Thank you in advance !
EDIT : I should say that if I delete rewrite rules, everything works.
-
Christian almost 7 yearsHas anyone figured out how to do this FROM any of the httpd images? I'm more interested in an apache+mod_rewrite image as opposed to a apache+php+mod_rewrite image.