我可以添加第二个 php.ini 文件来取代第一个文件吗?

我可以添加第二个 php.ini 文件来取代第一个文件吗?

我已经更改了我的 php.ini 文件,因此每次更新 PHP 包时我都不会更新 php.ini 文件。我想将我的更改“分叉”到另一个文件,这样我就可以更新实际的 php.ini 文件而不会丢失我的更改。

我意识到 PHP 5.3 引入了每个目录的 .ini 文件,但是我的服务器有多个虚拟主机 - 因此有多个文档根目录 - 因此没有一个地方可以使用每个目录的方法放置覆盖的 php.ini 文件。

有没有办法让 PHP 检查“修改”的 php.ini 文件?

答案1

PHP 从某个目录加载其他 .ini 文件。在 Debian 8 机器上,该目录为:/etc/php5/apache2/conf.d

该目录中的文件按字母顺序加载,因此命名一个文件00-overrides.ini(例如)将导致它首先被加载。该文件中设置的设置将覆盖默认 php.ini 中设置的设置。

答案2

如果您将 PHP 作为 Apache 模块运行,则有一个指令可以设置 PHP 查找 php.ini 的目录路径:

LoadModule php5_module "c:/php/php5apache2.dll"
AddHandler application/x-httpd-php .php

# configure the path to php.ini
PHPIniDir "C:/php"

该示例适用于 Windows,但对于 Linux 系统也同样适用。

请注意,指定位置的 php.ini 将代替默认位置中的 php.ini,它不会以任何方式覆盖或扩展它。

这样,当你更新 PHP 时,它将覆盖默认位置的 php.ini,但不会覆盖你的自定义 php.ini

参考:http://php.net/manual/en/install.windows.apache2.php#install.windows.apache2.module

相关内容