Ich habe PHP 5.6 auf dem CentOS 6.7-Server installiert mit
yum --enablerepo=remi,remi-php56 install -y php-mysqlnd php-gd php-mbstring php-mcrypt php-xml php-fpm
Ich habe die folgenden PHP-Erweiterungen aktiviert:
<?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
Um den PHP-Speicherverbrauch zu reduzieren, habe ich viele PHP-Erweiterungen im Ordner /etc/php.d deaktiviert.
Ich möchte noch einige weitere deaktivieren, wie:
libxml, ereg, mhash, Reflection, SPL usw.
Diese Erweiterungsdateien befinden sich jedoch nicht im Ordner /etc/php.d.
Schlagen Sie mir also bitte vor, wie ich Erweiterungen wie libxml, ereg, mhash, Reflection, SPL usw. deaktivieren kann.
Geben Sie bitte auch an, ob es sicher ist, sie zu deaktivieren.
Bitte antworten Sie, wenn Sie weitere Einzelheiten erfahren möchten.
Danke.
Antwort1
Alle diese sind in PHP kompiliert. Sie können sie also nicht deaktivieren, ohne die Pakete neu zu kompilieren.
Aber Ihr Speicher ist so wichtig? Ich glaube nicht, dass sich viel ändern wird, wenn Sie das deaktivieren. Wenn Sie die Pakete neu kompilieren, könnten Sie uns den Unterschied des verwendeten Speichers mit/ohne mitteilen?
Danke!
Antwort2
Es wurde (seit 5.3) viel Arbeit geleistet, um die meisten Erweiterungen als gemeinsam genutzte Erweiterungen zu erstellen, die deaktiviert werden können. Und ich glaube wirklich, dass man nicht mehr deaktivieren kann.
Ex:
- SPL kann nicht deaktiviert werden und wird immer benötigt (zumindest für den Autoloader)
- Sitzung ist offensichtlich obligatorisch
- mhash ist eine gefälschte Erweiterung, die von Hash bereitgestellt wird und von der Sitzung verwendet wird, also ebenfalls obligatorisch
- usw
Weitere Erläuterungen in der Fedora PHP-Spezifikationsdatei:http://pkgs.fedoraproject.org/cgit/php.git/tree/php.spec?id=98ce5ad0385bfb5679a731a1df48b82b22718bc6#n860
Antwort3
Über die Befehlszeilenschnittstelle können Sie angeben, -n
dass das Laden aller Erweiterungen (aber nicht einiger) deaktiviert werden soll, z. B.
php -n -r "phpinfo();"