使用带有高山php映像的docker更改php.ini中的值

时间:2019-08-08 13:40:45

标签: php laravel docker alpine

我有一个基于php:7.3-alpine3.9的PHP应用程序在docker上运行

对于一个大表格,我发布了1000多个输入,不仅出现错误

Warning: Unknown: Input variables exceeded 1000. To increase the limit change max_input_vars in php.ini. in Unknown on line 0`

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

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

2 个答案:

答案 0 :(得分:1)

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

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卷挂载单个文件(这可以使容器配置更加整洁,如果您不想将Dockerfile用于其他目的,则更加简单;此外,不需要更新容器,当更改配置时,只能重新启动它):

volumes:
  - ./php-ini-overrides.ini:/etc/php7/conf.d/php-ini-overrides.ini

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

一个简短的提示:如果解决方案不能直接使用,请检查是否需要调整文件夹以将该文件放入其中。另一个基本图像可能会将文件夹放置到另一个位置

答案 1 :(得分:-1)

正如您在回答中提到的,将sed添加到您的Dockerfile中是一种方法,但是,我想这并不是最好的方法。我建议您使用php.ini文件旋转docker-compose.yml并使其功能与源代码保持一致,然后将其安装到容器中。

version: "3.7"

services:
  app:
    image: app_image
    volumes:
      - ./php.ini:/etc/php7/php.ini

这使调试更加容易并且非常干净。