loaded configuration file显示的路径才是web环境实际加载并解析的php.ini文件;若为(none)则未加载任何配置文件,全用默认值;cli的php --ini与web环境隔离,不可替代phpinfo()。

phpinfo() 页面里找 Loaded Configuration File
打开浏览器访问包含 <?php phpinfo(); ?> 的页面后,直接 Ctrl+F 搜索 Loaded Configuration File 这一行。它显示的路径就是当前 Web 环境(比如 Nginx + PHP-FPM 或 Apache)**实际加载并解析的 php.ini 文件**。这个值才是你改了之后会生效的那个文件。
注意别被上面的 Configuration File (php.ini) Path 干扰——那只是 PHP 去“找”的目录,不是它“用”的文件。如果 Loaded Configuration File 显示 (none),说明 Web SAPI 根本没加载任何 php.ini,所有配置走编译默认值。
为什么不能用 CLI 命令替代 phpinfo()
php --ini 查的是 CLI 模式下的配置路径,和 Web 环境完全隔离。常见情况包括:
- FPM 加载
/etc/php/8.2/fpm/php.ini,而php --ini显示/etc/php/8.2/cli/php.ini - Docker 容器里 CLI 和 FPM 用不同用户启动,
php --ini可能连权限都过不去 - 某些 Plesk、cPanel 或虚拟主机环境会为每个站点单独指定 ini 文件,CLI 命令根本看不到
所以只要你在调试 Web 请求(比如表单提交失败、上传限制不生效),就必须看 phpinfo() 页面,而不是终端里敲几下命令就完事。
找不到 info.php?用临时脚本绕过文件系统限制
有些共享主机禁用了 phpinfo() 函数,或不允许上传 .php 文件。这时可以写一个最小化脚本,用 ini_get_all() 替代:
<?php echo "<pre class="brush:php;toolbar:false;">";
print_r(ini_get_all('date')); // 例如只查 date 相关配置
echo "";
?>
但注意:ini_get_all() 不返回 Loaded Configuration File 路径本身,它只读取已生效的值。要确认路径,还是得靠 phpinfo() ——哪怕你得临时联系客服开启一次函数权限。
路径存在但修改不生效?检查三个关键点
看到 Loaded Configuration File: /etc/php/8.2/fpm/php.ini,改完却没反应,大概率是以下之一:
- 改的是 CLI 的
php.ini,不是 FPM 的——确认服务类型,重启对应进程:sudo systemctl restart php8.2-fpm - 扩展配置在
conf.d/目录下(如/etc/php/8.2/fpm/conf.d/20-opcache.ini),主文件里有include=/etc/php/8.2/fpm/conf.d/*.ini,你得去那里加extension=redis.so - PHP 进程用户(如
www-data)对新 php.ini 文件没有读权限:ls -l /etc/php/8.2/fpm/php.ini应显示-rw-r--r--,且属组可读
最常被忽略的是:Web 环境改完配置后,只重启了 Nginx,忘了 reload 或 restart PHP-FPM。进程没重读 ini,改了也白改。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











