我已經在 centos 6.7 伺服器上安裝了 php 5.6
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 記憶體使用量,我在 /etc/php.d 資料夾中禁用了許多 php 擴充。
我想禁用更多類似的:
libxml、ereg、mhash、反射、SPL 等。
但是,這些擴充功能不在 /etc/php.d 資料夾中。
所以,請建議我如何停用 libxml、ereg、mhash、Reflection、SPL 等擴充功能。
另外,請建議停用它們是否安全。
如果您想了解更多詳情,請回覆。
謝謝。
答案1
所有這些都是用 PHP 編譯的。因此,如果不重新編譯軟體包,就無法停用它們。
但你的記憶力就那麼重要嗎?我認為禁用它不會改變很多事情。如果您重新編譯軟體包,您能給我們使用/不使用記憶體的差異嗎?
謝謝!
答案2
重要的工作已經完成(自 5.3 起),將大多數擴充功能建置為共享的,因此可以停用。我真的認為你不能禁用更多。
前任:
- SPL 無法停用,但您始終需要它(至少對於自動載入器而言)
- 會話顯然是強制性的
- mhash 是由 hash 提供的假分機,供會話使用,因此也是強制的
- ETC
Fedora PHP 規格文件中的更多說明:http://pkgs.fedoraproject.org/cgit/php.git/tree/php.spec?id=98ce5ad0385bfb5679a731a1df48b82b22718bc6#n860
答案3
從命令列介面,您可以指定-n
禁用加載所有擴充功能(但不是某些),例如
php -n -r "phpinfo();"