PHP PHPinfo不能出现PHP信息的解决办法:1、找到并打开PHP.ini文件;2、将其中的short_open_tags打开;3、重新加载PHP.ini服务即可。
本文操作环境:windows7系统、PHP7.1版、DELL G3电脑
PHP PHPinfo 不能出现PHP信息怎么办?为什么你的 PHPinfo() 无法显示
一、问题描述
<?PHP echo PHPinfo(); ?>
浏览器访问了一下,却返回了 NULL。
二、问题定位及解决
网上查了下,大部分人遇到的问题其实是 short_open_tags 的问题,他们的代码如下:
<? echo PHPinfo(); ?>
这种情况是需要把 PHP.ini 中的 short_open_tags 打开,然后重新加载 PHP.ini 服务就OK了。
这里又有两个问题,一是怎么知道PHP执行加载的是哪个 PHP.ini 文件呢,可以在命令行下执行: PHP --ini 来找到PHP.ini 文件;二是如何重新加载 PHP.ini 文件,如何你的服务器上面启用了PHP-fpm,一般来说重启 PHP-fpm 就OK了,命令为: service PHP-fmp restart ,如果没有启用 PHP-fpm 服务(较早版本的PHP),一般重启 apache服务就OK,命令为 service httpd restart 。
按照上面的步骤操作完成以后,大部分人遇到的问题就解决了,但是这个是别人的问题,跟我的并不是一个问题 orz...
无奈,感觉这个东西肯定是跟PHP的配置有关系,于是去官网看了下PHP.ini 的文档,里面以后一项配置如下:
disable_functions string 本指令允许你基于安全原因禁止某些函数。接受逗号分隔的函数名列表作为参数。 disable_functions 不受安全模式的影响。 本指令只能设置在 PHP.ini 中。例如不能将其设置在 httpd.conf
意思就是PHP.ini 里面可以配置一些方法,这些方法不能被调用,打开PHP.ini 找到这个配置,果然 PHPinfo() 这个方法被禁用了,如下:
disable_functions = PHPinfo,system,proc_open,proc_close,show_source,popen,pclose
到这里豁然开朗,临时把 PHPinfo() 这个方法从disable_functions 中删除掉,重新加载 PHP.ini 文件,然后再次从浏览器访问 test.PHP, 这次成功了,问题解决。不过这里要提醒小伙伴们 PHPinfo() 是很敏感的信息,平时最好还是不要暴露给客户端,因此测试完我就赶紧给关掉了。
推荐学习:《PHP教程》