在 php:fpm docker 镜像中设置 max_post_size 的位置

Lud*_*lze 6 php docker fpm

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

docker run -d -v "./app:/app" php:fpm 
Run Code Online (Sandbox Code Playgroud)

抱怨 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
Run Code Online (Sandbox Code Playgroud)

当我附加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
Run Code Online (Sandbox Code Playgroud)

/usr/local/etc/php/php.ini当我创建一个包含内容的新文件时

post_max_size = 32M
Run Code Online (Sandbox Code Playgroud)

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

Lud*_*lze 1

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