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

我正在使用 php 5.6 运行 linux debian:jessie](https://github.com/docker-library/php/blob/bfe27759103fa6050601060165409b5b3be06395/5.6/jessie/apache/Dockerfile)的这个[Docker 实例。

这是我的 phpinfo 的一部分:

在此处输入图像描述

我们可以看到php.ini应该位于

/usr/local/etc/php

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

在此处输入图像描述

但是里面没有php.ini。

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

在此处输入图像描述

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

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

在此处输入图像描述

解答

让我们试试作为答案:

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

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

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

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐