为什么 yum 不会修改 php.ini?

为什么 yum 不会修改 php.ini?

请耐心等待。我觉得我的问题太愚蠢了,这可能是我在网上找不到答案的原因。

我需要使用一个名为 mcrypt_encrypt() 的 PHP 函数。因此我查看了 php.ini 以激活 mcrypt 扩展,并搜索:

;extension=php_mcrypt.dll

但是我的 php.ini 中没有关于 mcrypt 的任何内容...所以我使用 yum 安装扩展:

yum install php-mcrypt

一切正常!

但是,回顾 php.ini 文件,我希望找到一行关于 mcrypt 扩展被激活的内容。什么也没有。

我想我的问题更多是关于 yum 如何工作:yum 如何在不修改 php.ini 文件的情况下安装和激活 php 扩展?

答案1

激活此扩展不需要修改 php.ini。
查看你的默认 php.ini,里面应该有这样的注释:

;;;;
; Note: packaged extension modules are now loaded via the .ini files
; found in the directory /etc/php.d; these are loaded by default.
;;;;

事实也确实如此。
通过安装该扩展,软件包将一个文件放置在 /etc/php.d/ 中,然后默认加载该文件。

就您而言,可能会有一个名为 /etc/php.d/mcrypt.ini 的文件,其中包含:

; Enable mcrypt extension module
extension=mcrypt.so

答案2

查看本文档关于%configrpm包中声明的文件的指令。

%config 指令用于将指定文件标记为配置文件。当软件包被删除以及在安装和升级期间,RPM 会对配置文件执行额外处理。这是由于配置文件的性质:它们经常由系统管理员更改,并且这些更改不应丢失。

列出 rpm 包的配置文件php-config确实显示,/etc/php.ini 一个配置文件,因此遵守%config directive

rpm -qc php-common |grep php.ini
/etc/php.ini

因此,yum 不会正常编辑该文件。此外,该软件包归另一个软件包 (php-common) 所有。

相关内容