Назад | Перейти на главную страницу

Почему yum не изменяет php.ini?

Пожалуйста, потерпите меня. Я думаю, что мой вопрос настолько глуп, что может быть причиной того, что я не могу найти ответ в Интернете.

Мне нужно использовать функцию PHP под названием mcrypt_encrypt (). Поэтому я просматриваю php.ini, чтобы активировать расширение mcrypt, ища:

;extension=php_mcrypt.dll

Но в моем php.ini НИЧЕГО о mcrypt нет ... Поэтому я устанавливаю расширение с помощью yum:

yum install php-mcrypt

Все работает !

Но, оглядываясь назад на файл php.ini, я надеялся найти строчку об активированном расширении mcrypt. Ничего.

Думаю, мой вопрос больше о том, как работает yum: как yum установить и активировать расширение php, не изменяя файл php.ini?

Проверьте эта документация о %config директива файла, объявленного в пакете rpm.

Директива% config используется для пометки указанного файла как файла конфигурации. RPM выполняет дополнительную обработку файлов конфигурации при удалении пакетов, а также во время установки и обновления. Это связано с природой файлов конфигурации: они часто изменяются системным администратором, и эти изменения не должны быть потеряны.

И перечисляя файлы конфигурации php-config пакет rpm показывает, что действительно /etc/php.ini является файл конфигурации, и поэтому соблюдает %config directive.

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

Поэтому yum обычно не редактирует файл. Кроме того, пакет принадлежит другому пакету (php-common).

Для активации этого расширения не нужно изменять 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