где установить max_post_size в образе докера php:fpm

Приложение php, выполняемое внутри контейнера докеров

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

жалуется, что значение по умолчанию post_max_size (8 МБ) слишком мало, и я должен увеличить его до 32 МБ.

Проблема в том, что в этом образе докера нет 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

тогда это не имеет никакого эффекта. Где я должен установить это значение при использовании этого образа докера php:fpm?


person Ludwig Schulze    schedule 22.08.2018    source источник


Ответы (2)


Позвольте представить вам .user.ini файлы.

Начиная с PHP 5.3.0, PHP включает поддержку конфигурационных INI-файлов для каждого каталога. Эти файлы обрабатываются только CGI/FastCGI SAPI.

Вы должны иметь возможность удалить файл в своем проекте в ./app/.user.ini с помощью

post_max_size = 32M
person Phil    schedule 22.08.2018
comment
Спасибо за это введение. К сожалению, размещение файла с именем .user.ini в корневом каталоге документа не дало желаемого эффекта. Даже после перезапуска контейнера докера приложение по-прежнему жаловалось на слишком низкое значение post_max_size. - person Ludwig Schulze; 23.08.2018
comment
Как странно. надо будет теперь самой попробовать - person Phil; 23.08.2018
comment
Этот ответ stackoverflow.com/a/11372798, по-видимому, предполагает, что php-fpm отличается от CGI/FastCGI SAPI, который вы цитировали. . - person Ludwig Schulze; 24.08.2018
comment
F в FPM означает FastCGI, поэтому я действительно думал, что это сработает. Другие статьи, кажется, указывают, что это должно работать нормально. - person Phil; 24.08.2018

Первое решение, которое сработало для меня, состояло в том, чтобы установить переменную среды контейнера PHPRC на путь к каталогу, в котором Я разместил файл php.ini, содержащий требуемую настройку.

person Ludwig Schulze    schedule 22.08.2018