У нас есть php-приложение, которое работало нормально с использованием Docker Image:
php: 7.2-apache-stretch
Теперь нам нужно воспользоваться следующимизображение для лучшей производительности и заставить приложение работать как было раньше.
php: 7.2.17-fpm-stretch
Поскольку на этом изображении нет apache в нем,Я обновил Dockerfile, начиная с установки apache2 и связанных пакетов, основанных на различных форумах.
Есть много других шагов.Я только что добавил инструкции, которые я обновил в Dockerfile.
FROM php:7.2.17-fpm-stretch
RUN apt-get update && apt-get install -y apache2 wget
RUN cd /tmp && wget http://mirrors.kernel.org/ubuntu/pool/multiverse/liba/libapache-mod-fastcgi/libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb && dpkg -i libapache2-mod-fastcgi_2.4.7~0910052141-1.2_amd64.deb;apt-get install -f
RUN a2enmod actions proxy_fcgi fastcgi
COPY 000-default.conf /etc/apache2/sites-available/000-default.conf
COPY info.php /var/www/html/info.php
COPY run.sh /app/run.sh
# EXPOSE 9000
RUN chmod 755 /app/run.sh
CMD "/app/run.sh"
info.php содержит <?php phpinfo( ); ?>
.В сценарии run.sh мы запускаем службу php-fpm и apache2, как показано ниже
php-fpm -D
/ usr / sbin / apachectl -D FOREGROUND
ранее я пытался получить доступ к приложению через порт, который был сопоставлен с 9000 (fpm).Когда я получил доступ к правильному порту, на котором работал apache, я смог просмотреть info.php.
Содержимое в файле vhost.conf.
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>