Como desabilitar algumas extensões no php 5.6?

Como desabilitar algumas extensões no php 5.6?

Eu instalei o php 5.6 no servidor centos 6.7 usando

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

Eu tenho as seguintes extensões php habilitadas:

<?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

Para economizar o uso de memória php, desativei muitas extensões php na pasta /etc/php.d.

Eu gostaria de desabilitar mais alguns como:

libxml, ereg, mhash, reflexão, SPL etc.

No entanto, esses arquivos de extensão não estão na pasta /etc/php.d.

Então, por favor, sugira-me como desabilitar extensões como libxml, ereg, mhash, Reflection, SPL etc.

Além disso, sugira se é seguro desativá-los.

Por favor, responda se quiser saber mais detalhes.

Obrigado.

Responder1

Todos estes são compilados em PHP. Portanto, você não pode desativá-los sem recompilar os pacotes.

Mas sua memória é tão importante? Não acho que mudará muita coisa desabilitar isso. Se você recompilar os pacotes, poderia nos dar a diferença de memória usada com/sem?

Obrigado!

Responder2

Um trabalho importante foi feito (desde 5.3) para construir a maioria das extensões como compartilhadas, portanto podem ser desativadas. E eu realmente acho que você não pode desabilitar mais.

Ex:

  • O SPL não pode ser desativado e você sempre precisará dele (pelo menos para o autoloader)
  • sessão é obviamente obrigatória
  • mhash é um ramal falso fornecido por hash que é usado por sessão, portanto também obrigatório
  • etc.

Mais explicações no arquivo de especificação PHP do Fedora:http://pkgs.fedoraproject.org/cgit/php.git/tree/php.spec?id=98ce5ad0385bfb5679a731a1df48b82b22718bc6#n860

Responder3

Na interface da linha de comando, você pode especificar -na desativação do carregamento de todas as extensões (mas não de algumas), por exemplo

php -n -r "phpinfo();"

informação relacionada