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

Как отключить некоторые расширения в 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 и т. Д.

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

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

Спасибо.

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

Пример:

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

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

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

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

Спасибо!

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

php -n -r "phpinfo();"