如何设置 max_execution_time php-fpm docker 镜像?

5 php fastcgi docker dockerfile fpm

我正在使用来自https://hub.docker.com/_/php/ 的php5.6-fpm docker 图像。

当我检查 phpinfo() 中的 php.ini 位置时,它说它是 /usr/local/etc/php,但是当我查看该路径时,那里没有 php.ini。

现在我想更改 max_execution_time php 变量。如何在自定义 docker 映像中执行此操作?

Mic*_*ski 8

将以下行添加到 Dockerfile

RUN echo 'max_execution_time = 120' >> /usr/local/etc/php/conf.d/docker-php-maxexectime.ini;
Run Code Online (Sandbox Code Playgroud)

然后

docker-compose build 
docker-compose up
Run Code Online (Sandbox Code Playgroud)

或者

docker build 
docker start your_machine_name
Run Code Online (Sandbox Code Playgroud)

提供 PHP_INI_SCAN_DIR = /usr/local/etc/php/conf.d。你可以在运行中检查一下

<? phpinfo();

应该说

Scan this dir for additional .ini files | /usr/local/etc/php/conf.d
Run Code Online (Sandbox Code Playgroud)


Eug*_*yer 7

你要做的是,你从官方的 FPM 镜像中派生出来,然后使用 RUN+sed 来改变值,例如:

FROM php:7.1

RUN sed -e 's/max_execution_time = 30/max_execution_time = 100/' -i /etc/php/7.1/fpm/php.ini
Run Code Online (Sandbox Code Playgroud)

请确保路径/etc/php/7.1/fpm/php.ini在您的情况下是正确的,这取决于所使用的图像,我没有在 php:7.1 上面验证。

提示:当您需要更改很多值时,您可能更愿意在图像中简单地使用自己的 php.ini

COPY php.ini /etc/php/7.1/fpm/php.ini
Run Code Online (Sandbox Code Playgroud)

但这只是为了以防万一,可以使用 sed 完成更改几个值