我发现phpinfo()
很多模块我都没用,因此它们只是浪费内存。所以我想删除它们,但问题是还有大量关于“如何在 php 中安装模块 X”的信息,我找不到任何关于“如何在 php 中卸载模块 X”的信息。
即使我尝试找到并禁用它们,也php.ini
没有成功。例如,对于 bcmath 模块,php.ini 中唯一的引用是
[bcmath]
; Number of decimal digits for all bcmath functions.
; http://php.net/bcmath.scale
bcmath.scale = 0
这只是更改一些参数,而不是禁用它。我发现的一些答案建议在此处添加功能:
disable_functions =exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
这完全是另一回事。
那么,我如何才能删除(或在最坏的情况下禁用)在 apache 上运行的 php 中的大量模块。模块列表相当大(bcmath、bz2、zip、dba、pdo、ftp、gettext、sopa、simpleXML 等等...)
答案1
如果模块是动态加载的,那么您可以在 php.ini 或一些其他配置文件中找到它们。如果您查看 phpinfo 结果,您将看到一个名为“扫描此目录以查找其他 .ini 文件”的参数。在该文件夹中查找可能正在加载模块的任何附加 ini 文件。
其余所有模块都已编译到 PHP 中,因此您需要完全重建 PHP 才能删除它们。如果您使用的是类似 RHEL 的系统,则可以下载 PHP 的 SRPM,编辑 spec 文件以删除这些模块并重建 RPM。