使用 docker 和高山 php 图像更改 php.ini 中的值
Change a value in php.ini using docker with an alpine php image
我在 docker 上有一个 PHP 应用程序 运行,基于 php:7.3-alpine3.9
对于一个大表单,我发布了 1000 多个输入,而且我不仅得到了错误
Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0`
但最糟糕的是,只有 1000 个输入被传递到后端
看来我需要更改 php.ini
中的 max_input_vars
,但我该怎么做呢?
正如您在回答中提到的那样,将 sed
添加到您的 Dockerfile
是一种方法,但我认为这不是最好的方法。我的建议是,您将正常运行的 php.ini
与您的源代码一起保留,并在您使用 docker-compose.yml
文件旋转它时将其安装到您的容器中。
version: "3.7"
services:
app:
image: app_image
volumes:
- ./php.ini:/etc/php7/php.ini
这使得调试更容易并且非常干净。
通常,会扫描某种配置目录以查找更多文件。尝试将包含本地设置的文件放在那里,如下所示:
php.ini.local
:
max_input_vars = 20000
在你的 Dockerfile
:
FROM php:7.3-alpine3.9
# Project-specific ini settings
COPY ./php-ini-overrides.ini /etc/php7/conf.d/
另一种方法是通过 Docker 卷挂载该单个文件(如果您不想为其他文件使用 Docker 文件,这可以使容器配置更清晰并且更简单目的;此外,更改配置时不需要更新容器,只需重新启动即可):
volumes:
- ./php-ini-overrides.ini:/etc/php7/conf.d/php-ini-overrides.ini
这是最好的方法,因为您不必修改任何现有文件或跟踪上游容器的更改
一个简短的提示:如果解决方案不能直接起作用,请检查您是否需要调整文件夹以放入该文件。另一个基本图像可能会将该文件夹放置到另一个位置
我在 docker 上有一个 PHP 应用程序 运行,基于 php:7.3-alpine3.9
对于一个大表单,我发布了 1000 多个输入,而且我不仅得到了错误
Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0`
但最糟糕的是,只有 1000 个输入被传递到后端
看来我需要更改 php.ini
中的 max_input_vars
,但我该怎么做呢?
正如您在回答中提到的那样,将 sed
添加到您的 Dockerfile
是一种方法,但我认为这不是最好的方法。我的建议是,您将正常运行的 php.ini
与您的源代码一起保留,并在您使用 docker-compose.yml
文件旋转它时将其安装到您的容器中。
version: "3.7"
services:
app:
image: app_image
volumes:
- ./php.ini:/etc/php7/php.ini
这使得调试更容易并且非常干净。
通常,会扫描某种配置目录以查找更多文件。尝试将包含本地设置的文件放在那里,如下所示:
php.ini.local
:
max_input_vars = 20000
在你的 Dockerfile
:
FROM php:7.3-alpine3.9
# Project-specific ini settings
COPY ./php-ini-overrides.ini /etc/php7/conf.d/
另一种方法是通过 Docker 卷挂载该单个文件(如果您不想为其他文件使用 Docker 文件,这可以使容器配置更清晰并且更简单目的;此外,更改配置时不需要更新容器,只需重新启动即可):
volumes:
- ./php-ini-overrides.ini:/etc/php7/conf.d/php-ini-overrides.ini
这是最好的方法,因为您不必修改任何现有文件或跟踪上游容器的更改
一个简短的提示:如果解决方案不能直接起作用,请检查您是否需要调整文件夹以放入该文件。另一个基本图像可能会将该文件夹放置到另一个位置