先分别在命令行和网页进程查看 php_sapi、主配置文件和扫描的配置目录。两边可能由不同的 php 安装或服务启动,所以 php --ini 的结果只代表命令行。
确认 CLI 实际读取哪份配置
在运行 PHP 命令的同一终端执行。记录 PHP 版本、主配置文件和额外配置目录。
php -v php --ini php -r 'echo PHP_SAPI, PHP_EOL, php_ini_loaded_file() ?: "(none)", PHP_EOL;'

如果命令行使用了预料之外的版本,先检查终端 PATH 或调用绝对路径。
从网页进程读取同样的字段
在仅本地可访问的开发站点放一个临时脚本。用实际运行应用的 Web 服务打开它。
<?php header('Content-Type: text/plain; charset=utf-8');
echo 'SAPI: ', PHP_SAPI, PHP_EOL;
echo 'Main ini: ', php_ini_loaded_file() ?: '(none)', PHP_EOL;
echo 'Scanned files: ', php_ini_scanned_files() ?: '(none)', PHP_EOL;
echo 'memory_limit: ', ini_get('memory_limit'), PHP_EOL;
将网页输出和命令行并排对照。验证结束后移除临时脚本。
同一份配置却显示不同值时查什么
以 memory_limit 为例,先确认额外配置文件和 FPM 池是否覆盖该值,再检查应用是否调用 ini_set。
php -r 'echo ini_get("memory_limit"), PHP_EOL;'
修改后按部署方式重新加载对应的 PHP 服务,再请求一次网页。CLI 新进程的结果与网页结果需要分别验证。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











