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