![为 Apache 和/或 CLI 修改 php.ini 的正确方法](https://linux22.com/image/1142521/%E4%B8%BA%20Apache%20%E5%92%8C%2F%E6%88%96%20CLI%20%E4%BF%AE%E6%94%B9%20php.ini%20%E7%9A%84%E6%AD%A3%E7%A1%AE%E6%96%B9%E6%B3%95.png)
我想更改和添加一些 PHP 指令,一些用于 apache,一些用于 CLI,一些用于两者。例如,我想为所有服务器上下文设置默认时区。我可以用几种不同的方法来实现这一点,但我不知道哪种方法最好。
我可以直接编辑主 php.ini 文件(位于此处/etc/php/7.0/apache2/php.ini
和此处)/etc/php/7.0/cli/php.ini
,但我不知道升级时此文件是否会被覆盖。此外,对于共享设置(例如时区),我必须记住编辑两个文件并保持这些更改同步。
我可以使用 Apache 的php_admin_value
、php_admin_flag
和指令。这样php_value
做php_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。我唯一不能做的就是通过虚拟指令实现虚拟主机。
关于如何正确执行此操作有什么建议吗?