Как из исходного кода alpine собрать apache2 c модулем mod_php?

Чтобы собрать образ Apache2 с модулем mod_php на базе Alpine Linux, вам потребуется следовать нескольким шагам. Вот подробная инструкция:

1. Установка Docker: Убедитесь, что у вас установлен Docker на вашей машине. Вы можете загрузить и установить Docker с официального сайта Docker для вашей операционной системы.

2. Создание Dockerfile: Создайте файл с именем Dockerfile в пустой директории. Вот содержимое Dockerfile:

FROM alpine:latest

RUN apk update && apk add apache2 apache2-utils apache2-dev php7-apache2 php7 php7-apcu php7-dev autoconf build-base libressl-dev pcre-dev zlib-dev

RUN ln -sf /dev/stdout /var/log/apache2/access.log && ln -sf /dev/stderr /var/log/apache2/error.log

COPY httpd.conf /etc/apache2/httpd.conf

RUN sed -i 's/#LoadModule rewrite/LoadModule rewrite/' /etc/apache2/httpd.conf 
    && sed -i 's/#LoadModule include_module/LoadModule include_module/' /etc/apache2/httpd.conf 
    && sed -i 's/#LoadModule php7_module/LoadModule php7_module/' /etc/apache2/httpd.conf 
    && sed -i 's/DirectoryIndex.*/DirectoryIndex index.php/' /etc/apache2/httpd.conf

RUN echo "<?php phpinfo(); ?>" > /var/www/localhost/htdocs/index.php

EXPOSE 80

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

3. Создание httpd.conf: Создайте файл с именем httpd.conf в пустой директории. Вот содержимое файла httpd.conf:

ServerRoot "/etc/apache2"
Listen 80
Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-multilang-errordoc.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-cgi.conf

LoadModule rewrite_module modules/mod_rewrite.so
LoadModule include_module modules/mod_include.so
LoadModule php7_module modules/libphp7.so

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>

<FilesMatch .php$>
    SetHandler application/x-httpd-php
</FilesMatch>

4. Сборка Docker-образа: Откройте командную строку (терминал) и перейдите в папку, где находятся Dockerfile и httpd.conf. Выполните следующую команду для сборки Docker-образа:

docker build -t my-apache2 .

5. Запуск контейнера: После успешной сборки Docker-образа вы можете запустить контейнер с Apache2 и модулем mod_php, используя следующую команду:

docker run -p 80:80 -d my-apache2

6. Проверка: Откройте веб-браузер и перейдите по адресу http://localhost/. Если все настроено правильно, вы увидите страницу phpinfo(), которая подтверждает, что Apache2 и модуль mod_php работают корректно.

Это подробная инструкция, как собрать образ Docker с Apache2 и модулем mod_php, используя исходный код Alpine.