【问题标题】:where to set max_post_size in the php:fpm docker image在 php:fpm docker 映像中设置 max_post_size 的位置
【发布时间】:2018-08-22 01:42:57
【问题描述】:

在 docker 容器内执行的 php 应用程序

docker run -d -v "./app:/app" php:fpm 

抱怨 post_max_size (8MB) 的默认值太小,我应该将它增加到 32MB。

问题是,该 docker 映像中没有 php.ini:

# ls -R /usr/local/etc/
/usr/local/etc/:
pear.conf  php  php-fpm.conf  php-fpm.conf.default  php-fpm.d

/usr/local/etc/php:
conf.d

/usr/local/etc/php/conf.d:
docker-php-ext-mysqli.ini  docker-php-ext-pcntl.ini  docker-php-ext-sodium.ini

/usr/local/etc/php-fpm.d:
docker.conf  www.conf  www.conf.default  zz-docker.conf

当我将 post_max_size = 32M 附加到 /usr/local/etc/php-fpm.d 下的任何文件时,容器在启动期间停止并显示错误消息

[22-Aug-2018 01:38:09] ERROR: [/usr/local/etc/php-fpm.d/www.conf:424] unknown entry 'post_max_size'
[22-Aug-2018 01:38:09] ERROR: Unable to include /usr/local/etc/php-fpm.d/www.conf from /usr/local/etc/php-fpm.conf at line 424
[22-Aug-2018 01:38:09] ERROR: failed to load configuration file '/usr/local/etc/php-fpm.conf'
[22-Aug-2018 01:38:09] ERROR: FPM initialization failed

当我创建一个带有内容的新文件/usr/local/etc/php/php.ini

post_max_size = 32M

那么它没有效果。使用这个 docker 镜像 php:fpm 时我应该在哪里设置这个值?

【问题讨论】:

    标签: php docker fpm


    【解决方案1】:

    让我给你介绍.user.ini files

    自 PHP 5.3.0 起,PHP 支持基于每个目录的配置 INI 文件。这些文件仅由 CGI/FastCGI SAPI 处理

    您应该能够在./app/.user.ini 的项目中使用

    post_max_size = 32M
    

    【讨论】:

    • 感谢您的介绍。不幸的是,将一个名为 .user.ini 的文件放入 documentroot 并没有达到预期的效果。即使重新启动 docker 容器后,应用程序仍然抱怨 post_max_size 值太低。
    • 多么奇怪。我现在必须自己尝试一下
    • 这个答案stackoverflow.com/a/11372798 似乎表明 php-fpm 与您引用的“CGI/FastCGI SAPI”不同。
    • “FPM”中的“F”代表“FastCGI”,所以我真的认为它会起作用。其他文章似乎表明它应该可以正常工作。
    【解决方案2】:

    对我有用的第一个解决方案是将容器的环境变量 PHPRC 设置为我放置包含所需设置的 php.ini 文件的目录的路径。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-04
      • 2014-01-20
      • 1970-01-01
      • 2022-01-22
      • 1970-01-01
      • 2011-02-01
      • 1970-01-01
      相关资源
      最近更新 更多