为 Apache 和/或 CLI 修改 php.ini 的正确方法

为 Apache 和/或 CLI 修改 php.ini 的正确方法

我想更改和添加一些 PHP 指令,一些用于 apache,一些用于 CLI,一些用于两者。例如,我想为所有服务器上下文设置默认时区。我可以用几种不同的方法来实现这一点,但我不知道哪种方法最好。

我可以直接编辑主 php.ini 文件(位于此处/etc/php/7.0/apache2/php.ini和此处)/etc/php/7.0/cli/php.ini,但我不知道升级时此文件是否会被覆盖。此外,对于共享设置(例如时区),我必须记住编辑两个文件并保持这些更改同步。

我可以使用 Apache 的php_admin_valuephp_admin_flag和指令。这样php_valuephp_flag的好处是,php 设置可以逐个虚拟主机应用,我还可以将它们全局应用于 Apache。但是,这对 CLI 设置没有帮助。

php 目录具有与 Apache 类似的结构,允许使用命令启用或禁用包含指令的文件phpenmod。我可以复制此结构,创建目录/etc/php/7.0/mydirectives,将php.ini文件放在此文件夹中,然后从创建/etc/php/7.0/apache2/conf.d/指向我的 php.ini 指令文件的符号链接。这样,我就可以拥有一个单独的指令文件,该文件将指令添加到两个都Apache 和 CLI 版本的 PHP。我唯一不能做的就是通过虚拟指令实现虚拟主机。

关于如何正确执行此操作有什么建议吗?

答案1

供参考,配置默认情况下,软件包安装的文件/etc/不会被覆盖;升级时如果文件发生变化,则会弹出提示选项

回到最初的问题,下面是我的做法:

  • 创建一个配置文件/etc/php/7.0/mods-available/50-mydirectives.ini并在其中进行常见配置;然后使用phpenmod mydirectives它来启用它。

  • apache分别在和中进行cli具体配置。/etc/php/7.0/apache2/conf.d//etc/php/7.0/cli/conf.d/

  • 在虚拟主机本身中执行虚拟主机特定的配置。

有了上述配置就不需要编辑系统提供了php.ini

有关的:

相关内容