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

2022-08-30 22:51:32

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

这是我的phpinfo的一部分:

enter image description here

正如我们所看到的,应该位于php.ini

/usr/local/etc/php

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

enter image description here

但是里面没有php.ini。

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

enter image description here

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

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

enter image description here


答案 1

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

官方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.iniconf.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


答案 2

让我们尝试一下作为答案:

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

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

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


推荐