web-dev-qa-db-fra.com

Ajouter mod_rewrite à l'image Docker httpd: alpine

Je n'ai presque aucune expérience avec Alpine Linux, pour être honnête, mais j'aime son approche et je veux donc changer cela. Je suis également relativement nouveau à Docker, alors s'il vous plaît, restez avec moi si c'est une question "stupide".

Ce que je voudrais réaliser, c'est bâtir sur le httpd:Alpine image et étendre le HTTPd à mes besoins.

Cela comprend l'activation du module mod_rewrite et la copie d'un fichier .htaccess personnalisé dans l'image.

Voici ce que j'ai jusqu'à présent:

FROM httpd:Alpine

# Copy .htaccess into DocumentRoot
COPY ./.htaccess /var/www/html/

RUN apk update
RUN apk upgrade
RUN apk add Apache2-utils
RUN a2enmod rewrite
RUN rc-service Apache2 restart

Mon problème est maintenant que je reçois constamment une erreur "a2enmod not found", que je ne sais pas comment résoudre. C'est peut-être parce que a2enmod est une pure chose Debian/Ubuntu/..., mais je ne connais pas d'autre moyen d'activer mod_rewrite (ou n'importe quel module d'ailleurs).

Merci beaucoup à l'avance pour votre soutien!

5
Archivar

mod_rewrite est installé par défaut avec Apache dans Alpine, donc pas besoin de le réinstaller. Voici donc comment activer mod_rewrite en Alpine:

FROM httpd:Alpine

# Copy .htaccess into DocumentRoot
COPY ./.htaccess /var/www/html/

RUN sed -i '/LoadModule rewrite_module/s/^#//g' /usr/local/Apache2/conf/httpd.conf

RUN { \
  echo 'IncludeOptional conf.d/*.conf'; \
} >> /usr/local/Apache2/conf/httpd.conf \
  && mkdir /usr/local/Apache2/conf.d
4
Thomas Schwärzl