我们有一个使用 Docker Image 运行良好的 PHP 应用程序:
我们现在需要使用下面的图片来提高性能,并使应用程序像以前一样工作。php:7.2-apache-stretch
由于这个镜像中没有Apache,我根据各种论坛的建议更新了Dockerfile,从安装Apache2及相关软件包开始。还有其他步骤,我只是添加了我在Dockerfile中更新的指令。php:7.2.17-fpm-stretch
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>
<FilesMatch \.php$> SetHandler "proxy:fcgi://localhost:9000" </FilesMatch>
- Alassane Ndiaye