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

请多多包涵。 我觉得我的问题太愚蠢了,可能是我在网上找不到答案的原因。

我需要使用一个名为mcrypt_encrypt()的PHP函数。 所以我看看php.ini来激活mcrypt扩展,search:

;extension=php_mcrypt.dll 

但是在我的php.ini中没有关于mcrypt的信息…所以我使用yum来安装扩展:

 yum install php-mcrypt 

一切正常!

但是,回头看看php.ini文件,我希望find一条关于mcrypt扩展被激活的线。 没有。

我想我的问题是更多关于如何百胜的工作:如何可以安装和激活一个PHP扩展没有修改php.ini文件?

它不需要修改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 

请查阅关于在rpm包中声明的文件的%config指令的文档。

%config指令用于将指定的文件标记为configuration文件。 RPM在擦除软件包时以及安装和升级期间对configuration文件执行附加处理。 这是由于configuration文件的性质:它们经常被系统pipe理员改变,并且这些改变不应该丢失。

并且列出php-config rpm包的configuration文件显示确实,/ /etc/php.ini 一个configuration文件,所以遵守%config directive

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

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