您的位置:首页 >phpinfo被禁用了怎么恢复_开启PHP信息函数的设置调整【教程】
发布于2026-06-11 阅读(0)
扫一扫,手机访问
访问PHP脚本时,如果发现phpinfo()函数调用直接返回空白页或者抛出报错提示,那多半是它被系统给“拉黑”了。别急,下面这份排查与恢复指南,按步骤来就能搞定(顺便一提,所有操作前记得备份原始配置文件)。
phpinfo()被禁用的最常见原因,就是它被写进了disable_functions指令里。把它从那个“黑名单”中移除,问题就解决了一大半。
1、先找到当前生效的php.ini文件路径。命令行里跑一下php --ini,或者临时写个PHP文件,里面放一句echo php_ini_loaded_file();,运行后就能看到路径。
2、用文本编辑器打开这个php.ini文件。
3、搜索disable_functions关键词。你会看到类似这样的配置行:disable_functions = exec,passthru,shell_exec,system,proc_open,popen,phpinfo。
4、把其中的phpinfo从逗号分隔的列表中剔除。注意别手滑删多了逗号,保持语法正确就行。
5、保存文件,完成修改。
某些服务器开启了Suhosin安全扩展,它有自己的“黑名单”机制,即便php.ini里没禁用phpinfo(),它也能独立拦截。这一点很多人都容易忽略。
1、在PHP环境中执行php -m | grep suhosin,确认Suhosin是否已加载。
2、找到suhosin.ini或suhosin.so所在目录,通常位于/etc/php/*/mods-a vailable/或/usr/local/lib/php/extensions/下。
3、打开suhosin.ini文件,搜索suhosin.executor.func.blacklist配置项。
4、如果该行里包含了phpinfo,把它从中删除;如果整行就是suhosin.executor.func.blacklist = "phpinfo",直接注释掉或者清空这个值。
5、保存文件后,重启Web服务器(Apache或Nginx)以及PHP-FPM服务。
在一些虚拟主机或使用了模块化部署的环境里,Apache的php_admin_value或php_flag指令,或者PHP-FPM池配置,优先级都比php.ini高。如果这些地方也针对disable_functions做了限制,那就得从这里入手。
1、检查Apache配置文件(比如httpd.conf或站点vhost配置),搜寻php_admin_value disable_functions或php_flag disable_functions指令。
2、检查PHP-FPM池配置(例如www.conf),看有没有php_admin_value[disable_functions]这样的行。
3、如果找到且其中包含phpinfo,将其从该指令的值中移除,或者直接整行注释掉。
4、保存配置后,分别执行apachectl graceful或systemctl reload php-fpm,同时重启对应的Web服务。
如果系统启用了SELinux并处于 enforcing 模式,安全策略可能阻止PHP进程调用某些内置函数——phpinfo()就是常见目标之一,尤其是当PHP运行在受限上下文里的时候。
1、执行sestatus确认SELinux是否处于 enforcing 模式。
2、临时把SELinux设为 permissive 模式:setenforce 0,然后测试phpinfo()能否正常使用。
3、如果恢复成功了,那问题基本锁定在SELinux策略上。
4、用ausearch -m a vc -ts recent | grep php查看拒绝日志,确认里面有没有涉及phpinfo的denial条目。
5、根据日志生成并加载自定义策略模块:audit2allow -a -M phpinfo_allow && semodule -i phpinfo_allow.pp。
某些CMS、框架或安全插件,会通过auto_prepend_file机制动态替换或屏蔽phpinfo()函数。这个“暗桩”藏得很深,需要专门排查。
1、检查php.ini中的auto_prepend_file配置项,看它指向了哪个PHP文件。
2、打开那个文件,搜索function phpinfo、override_function、rename_function,或者类似if (function_exists('phpinfo')) { unset($GLOBALS['phpinfo']); }这样的可疑代码。
3、如果发现对phpinfo()的显式屏蔽逻辑,把它注释或删除。
4、同时检查include_path下是否存在第三方安全类库(比如php-malware-scanner、hardened-php等),确认它们没有启用函数拦截功能。
5、保存修改后,清除OPcache:执行php -r "opcache_reset();",或者干脆重启PHP-FPM进程。
上一篇:wap浏览器有哪些
下一篇:iphone的照片怎么传到电脑
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
4
5
6
7
8
9