如何用phpinfo() 看一下php的何用参数
打开一个文本编辑器,新建一个文件,何用里面只写一行代码:<?何用php phpinfo(); ?>。保存成 info.php,何用扔到你的何用网站根目录,浏览器访问一下。何用就这么简单,何用你就能看到一张巨大的何用表格,从上到下密密麻麻,何用像一份体检报告。何用
我第一次跑这个函数的何用时候,真的何用被震住了。页面长到得滚好几屏,何用全是何用PHP的“家底”。你以为你只是何用装了PHP?不,它连自己编译时的编译器版本、配置文件路径、甚至环境变量里的临时文件夹位置都告诉你。你要是用Apache,它还能把加载的模块列表给你列出来,比如mod_rewrite到底开没开,一眼就能判断。
重点看哪几块?别被那些花里胡哨的扩展列表吓到。直接找 Loaded Configuration File 那一行——它告诉你php.ini到底在哪个位置。很多时候你改了php.ini却感觉没生效,八成是改错文件了。这个参数能帮你确认,服务器加载的是不是你以为的那个文件。顺带一提,旁边还有个 Scan this dir for additional .ini files,有些虚拟主机商会把自定义配置放在那个目录里,你直接改主php.ini反而会被覆盖。
往下翻,找 memory_limit 和 upload_max_filesize。这俩是日常踩坑重灾区。我见过不少朋友,上传图片老报错,折腾半天代码,结果一看phpinfo,upload_max_filesize只有2M。改一下这个值,问题立刻消失。还有 post_max_size,它得比upload_max_filesize大,不然你传大文件时,POST数据直接被截断,连错误提示都不给你一个。
再看 error_reporting 和 display_errors。开发环境里,display_errors最好设成On,这样报错直接显示在页面上,省得翻日志。但生产环境必须Off,否则用户能看到你的绝对路径和数据库报错信息,那是给黑客递刀子。phpinfo页面里这两个值清清楚楚,你随时能检查自己的环境是不是“裸奔”状态。
还有一个冷门但实用的:PHP_SAPI。它告诉你PHP是以什么模式运行的——是Apache模块(apache2handler),还是CGI-FPM(fpm-fcgi)。这决定了你改配置后需不需要重启Apache,或者只要reload一下php-fpm就行。很多人搞不清这个,改完配置以为生效了,其实跑的是旧进程。
不过得提醒一句,phpinfo页面信息太全了,连系统路径、环境变量都暴露了。生产服务器上用完就删,别留着当摆设。我见过有人把它放在网站根目录忘了删,结果被扫描工具发现,专门拿这个去做攻击试探。看完了,立刻删掉文件,这才是正经做法。
最后说点个人感受:phpinfo是个朴素的工具,不花哨,但每次排查环境问题,它都是第一站。别嫌它丑,它比那些图形化的管理面板直接多了。有时候你装了个扩展,面板里显示启用了,但phpinfo里压根没出现——这时候你该信谁?当然是phpinfo。它显示的,是当前实际加载的PHP实例的真实状态,不是某个面板的“预期状态”。
所以,下次遇到PHP行为奇怪,先建个info.php看看。五秒钟,能省你半小时瞎猜。
