我已经在 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、Reflection、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();"