gpt4 book ai didi

php - 使用PHP-FPM在Apache服务器中运行PHP应用程序

转载 作者:行者123 更新时间:2023-12-02 18:52:06 25 4
gpt4 key购买 nike

我们有一个运行良好的php应用程序
Docker镜像:

php:7.2-apache-stretch



现在,我们必须利用下图提高性能,并使应用程序像以前一样工作。

php:7.2.17-fpm-stretch



由于此图像中没有Apache。我从安装apache2和基于各种论坛的相关软件包开始更新了Dockerfile。

还有许多其他步骤。我刚刚添加了在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>

最佳答案

我做了一些修改就可以了。

我使用了这个经过稍微修改的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 run.sh /app/run.sh
RUN chmod 755 /app/run.sh
CMD "/app/run.sh"

我还向/etc/apache2/sites-available/000-default.conf中添加了以下代码段(与您所做的修改相同):
<FilesMatch \.php$>
SetHandler "proxy:fcgi://localhost:9000"
</FilesMatch>

这是我得到的输出:
[09-Apr-2019 21:23:06] NOTICE: fpm is running, pid 9
[09-Apr-2019 21:23:06] NOTICE: ready to handle connections
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message

另外,您是否尝试在没有缓存的情况下构建dockerfile?有时,缓存可能会导致软件包安装出现问题(有关更多详细信息,请参见 here)。要完整构建图像,只需使用:
docker build --no-cache 

关于php - 使用PHP-FPM在Apache服务器中运行PHP应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55598226/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com