首页 > 解决方案 > 如何覆盖 ddev 的 php-fpm.conf 或 pool.d/www.conf?

问题描述

没有明显的方法可以覆盖 DDEV-Local 的 Web 容器中的某些 php-fpm 配置。尽管提供自定义 PHP 配置很容易,但如何配置 php-fpm 进程本身并不那么明显。

就我而言,我想更改 pool.d/www.conf 中的 security.limit-extensions 值

标签: ddev

解决方案


有两种方法可以做到这一点。我将创建两个单独的答案来解释如何。

第一种技术是创建一个自定义 Dockerfile ( docs ) 来编辑 www.conf (或任何其他文件)。您还可以使用 Dockerfile ADD 命令添加完整的文件并覆盖它们。

在这个特定问题的情况下,我们将创建一个包含以下内容的 .ddev/web-build/Dockerfile:

# You can copy this Dockerfile.example to Dockerfile to add configuration
# or packages or anything else to your webimage
ARG BASE_IMAGE
FROM $BASE_IMAGE
ENV PHP_VERSION=7.4
RUN echo "security.limit_extensions = .php .html" >> /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf

之后,ddev start您将拥有新的配置。

RUN echo为了简单起见,您可以RUN使用 sed/awk/perl 语句来更改文件,而不是仅附加到文件的方法。

或者,您可以将所需的 www.conf 版本放入 .ddev/web-build 目录中,然后

COPY www.conf /etc/php/${PHP_VERSION}/fpm/pool.d/www.conf

推荐阅读