Как отключить некоторые расширения в php 5.6?

Я установил php 5.6 на сервер Centos 6.7, используя

yum --enablerepo=remi,remi-php56 install -y php-mysqlnd php-gd php-mbstring php-mcrypt php-xml php-fpm

У меня включены следующие расширения PHP:

<?php
print_r(get_loaded_extensions());
?>

[0] => Core
[1] => date
[2] => ereg
[3] => libxml
[4] => openssl
[5] => pcre
[6] => zlib
[7] => filter
[8] => hash
[9] => Reflection
[10] => SPL
[11] => session
[12] => standard
[13] => cgi-fcgi
[14] => ctype
[15] => curl
[16] => ftp
[17] => gd
[18] => mbstring
[19] => mcrypt
[20] => mysqlnd
[21] => PDO
[22] => SimpleXML
[23] => mysql
[24] => pdo_mysql
[25] => json
[26] => mhash

Чтобы сохранить использование памяти php, я отключил многие расширения php в папке /etc/php.d.

Я хотел бы отключить еще как:

libxml, ereg, mhash, Reflection, SPL и т. д.

Однако эти файлы расширения не находятся в папке /etc/php.d.

Итак, подскажите, пожалуйста, как отключить такие расширения, как libxml, ereg, mhash, Reflection, SPL и т. Д.

Также, пожалуйста, предложите, если это безопасно отключить их.

Пожалуйста, ответьте, если вы хотите узнать больше деталей.

Благодарю.

3 ответа

Все это скомпилировано в PHP. Таким образом, вы не можете отключить их без перекомпиляции пакетов.

Но ваша память так важна? Я не думаю, что это многое изменит, чтобы отключить это. Если вы перекомпилируете пакеты, не могли бы вы дать нам различие в памяти, используемой с / без?

Спасибо!

Была проделана важная работа (начиная с 5.3) для создания большинства расширений как общих, поэтому их можно отключить. И я действительно думаю, что вы не можете отключить больше.

Пример:

  • SPL нельзя отключить, и он всегда нужен (по крайней мере, для автозагрузчика)
  • сессия явно обязательна
  • mhash - это поддельный ext, предоставленный hash, который используется сессией, поэтому также является обязательным
  • так далее

Более подробное объяснение в файле спецификации Fedora PHP: http://pkgs.fedoraproject.org/cgit/php.git/tree/php.spec?id=98ce5ad0385bfb5679a731a1df48b82b22718bc6#n860

Из интерфейса командной строки вы можете указать -n отключить загрузку всех расширений (но не некоторых), например

php -n -r "phpinfo();"
Другие вопросы по тегам