Hello,
i am trying to set 3 containers with docker-compose: 1.php /2.apache/3.mysql. All works fine at the time i load a simple .php file.
But i want to load the project with a .htaccess, then it doesn’t work anymore and give me an err-server.
here is the docker-compose.yml
version: "3.2"
services:
php:
build: './php/'
volumes:
- ./MediterPourGrandir/Web/:/var/www/html/
apache:
build: './apache/'
depends_on:
- php
ports:
- "80:80"
volumes:
- ./MediterPourGrandir/Web/:/var/www/html/
mysql:
image: mysql:5.6.40
environment:
- MYSQL_ROOT_PASSWORD=rootpassword
Here is the php docker file`
FROM php:7.2.7-fpm-alpine3.7
RUN apk update; \
apk upgrade;
RUN docker-php-ext-install mysqli
Here is the apache docker file, as you can see i did try to allow the rewriting mode, but docker show an err (/bin/sh: a2enmod: not found
ERROR: Service ‘apache’ failed to build: The command ‘/bin/sh -c a2enmod rewrite’ returned a non-zero code: 127)
FROM httpd:2.4.33-alpine
RUN apk update; \
apk upgrade;
# here docker do not load, and show the err
# RUN a2enmod rewrite
# here docker load but the page display an err-server
# Enable mod_rewrite for images with apache
# RUN if command -v a2enmod >/dev/null 2>&1; then \
# a2enmod rewrite headers \
# ;fi
# Copy apache vhost file to proxy php requests to php-fpm container
COPY demo.apache.conf /usr/local/apache2/conf/demo.apache.conf
RUN echo "Include /usr/local/apache2/conf/demo.apache.conf" \
>> /usr/local/apache2/conf/httpd.conf
There is the demo.apache.conf
ServerName localhost
LoadModule deflate_module /usr/local/apache2/modules/mod_deflate.so
LoadModule proxy_module /usr/local/apache2/modules/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/apache2/modules/mod_proxy_fcgi.so
<VirtualHost *:80>
ProxyPassMatch ^/(.*\mediterpourgrandir(/.*)?)$ fcgi://php:9000/var/www/html/$1
DocumentRoot /var/www/html/
# if i run this file 'with no .htaccess in the same folder' it's working
# DirectoryIndex index.php
Options Indexes FollowSymLinks MultiViews
<Directory /var/www/html/>
# DirectoryIndex index.php
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
I did google for few days, but i didn’t find the solution… If someone have an idea, it would be nice, thank you.
ps. i am kind of new born with docker, so forgive me in case of stupid mistakes…