mod_headers を有効にする、Dockerfile - Apache

mod_headers を有効にする、Dockerfile - Apache

以下は効果がありません。

# Dockerfile
FROM php:7-apache

RUN apt-get update && \
 apt-get install -y libxml2-dev && \
 docker-php-ext-install soap

RUN docker-php-ext-install mysqli

# Enable apache mods.
RUN a2enmod php7.0
RUN a2enmod rewrite
RUN a2enmod headers

つまり、mod_headersモジュールのロードに失敗しますか?

ここに画像の説明を入力してください

mod_headersモジュールを内部にインストールする方法をご存知ですかDockerfile?

私は試した;

CMD ["/usr/sbin/apache2", "-D",  "FOREGROUND"]

しかし、コンテナは起動しなくなりました。

答え1

Dockerfile に以下を追加します:

RUN cp /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/ && \
    cp /etc/apache2/mods-available/headers.load /etc/apache2/mods-enabled/

このコードにより、mod_rewrite と mod_headers が有効になります。

答え2

Apache 構成ファイルで sed replace を使用して設定します。次のようになります。

sed -i 's/#LoadModule mod_headers/LoadModule mod_headers/g' /usr/local/apache2/conf/httpd.conf を実行します。

当然、モジュール名は必要なモジュールに変更する必要があります...また、httpd.conf の正しい場所は、別のパスにある可能性があります。

関連情報