使用 docker 和 alpine php 镜像更改 php.ini 中的值

Luc*_*chi 6 php laravel docker alpine-linux

我有一个在 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`
Run Code Online (Sandbox Code Playgroud)

但最糟糕的是,只有 1000 个输入传递到后端

所以看起来我需要更改max_input_vars中的php.ini,但我该怎么做呢?

Nic*_*ase 9

通常,会扫描某种配置目录以查找更多文件。尝试将包含本地设置的文件放在那里,如下所示:

php.ini.local:

max_input_vars = 20000
Run Code Online (Sandbox Code Playgroud)

在你的Dockerfile

FROM php:7.3-alpine3.9

# Project-specific ini settings
COPY ./php-ini-overrides.ini /etc/php7/conf.d/
Run Code Online (Sandbox Code Playgroud)

另一种方法可能是通过 Docker 卷挂载该单个文件(这可以使容器配置更清晰,并且如果您不想将 Dockerfile 用于其他目的,则更简单;此外,您不需要在以下情况下更新容器)更改配置,但仅重新启动它):

volumes:
  - ./php-ini-overrides.ini:/etc/php7/conf.d/php-ini-overrides.ini
Run Code Online (Sandbox Code Playgroud)

这将是最好的方式,因为您不必修改任何现有文件或跟踪上游容器的更改

作为一个简短的提示:如果该解决方案不能直接工作,请检查是否需要调整该文件所在的文件夹。另一个基础映像可能会将该文件夹放置到另一个位置