Приложение php, выполняющееся внутри контейнера Docker
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
тогда это не имеет никакого эффекта. Где я должен установить это значение при использовании этого docker image php: fpm?
Первое решение, которое сработало для меня, — установить переменную среды контейнера. PHPRC по пути к каталогу, где я разместил php.ini
файл, содержащий необходимые настройки.
Позвольте представить вам .user.ini
файлы
Начиная с PHP 5.3.0, PHP включает поддержку INI-файлов конфигурации для каждого каталога. Эти файлы обрабатываются только CGI / FastCGI SAPI
Вы должны иметь возможность удалить файл в вашем проекте на ./app/.user.ini
с
post_max_size = 32M