我的 php.ini 是从哪里加载到 php Docker 容器中的?

新手上路,请多包涵

我正在使用 php 5.6 运行 linux debian:jessie 的这个 Docker 实例

这是我的 phpinfo 的一部分:

在此处输入图像描述

正如我们所见, php.ini 应该位于

/usr/local/etc/php

这就是我在 /usr/local/etc/ 里面的东西

在此处输入图像描述

但是里面没有php.ini。

另一方面,我里面有 php.ini

在此处输入图像描述

那么,我的 php.ini 究竟是从哪里加载的呢?

我们甚至没有运行 php 进程,但 php 似乎没问题 - 在屏幕上显示 phpinfo。

在此处输入图像描述

原文由 IgorAlves 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1k
2 个回答

让我们试试作为答案:

它根本不存在,这意味着 php 将运行默认选项。

查看您的 docker 文件,它从“干净”的操作系统开始,在其中安装 Apache 和 PHP。但它永远不会将 php.ini 文件从 PHP 安装复制到 /usr/local/etc/php 。实际上在第 31 和 32 行它创建了 conf.d 目录,仅此而已。

所以我建议,在你的 docker 文件的末尾,添加代码以将 php.ini-production 复制到 /usr/local/etc/php.ini ,并根据需要进行编辑。或者使用默认选项。

原文由 Nic3500 发布,翻译遵循 CC BY-SA 4.0 许可协议

聚会有点晚了,但由于今天的问题仍然相关,让我补充一个简短的答案:

官方 php:7 图像从 /usr/local/etc/php 文件夹中获取它们的设置。

 # First log into the running container
$ docker exec -it «container_name» /bin/bash

# List folder content
$ ls /usr/local/etc/php

# Which outputs following line
conf.d  php.ini-development  php.ini-production

如果需要,通过 conf.d 文件夹修改设置似乎是更好的选择,因为 xdebug 使用它。例如,您可以通过将 uploads.ini 添加到 conf.d 文件夹来更改上传大小,其内容如下:

 file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

ini 指令的完整列表可以在 https://www.php.net/manual/en/ini.core.php 找到

原文由 snnsnn 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题