在 CentOS 上处理 PHP 环境时,很多问题最终都会落到“当前到底加载了哪份配置”上。比如扩展为什么没生效、上传限制为什么和预期不一样,往往不是命令不会用,而是没有先区分 Web 和 CLI 两套运行环境。本文按排查顺序整理 4 种常用查看方法,并把 php.ini 定位、配置覆盖和重启生效这些关键细节一并讲清楚。
通过 phpinfo() 查看 Web 环境配置
如果要确认浏览器访问时 PHP 实际使用的配置,phpinfo() 是最直接的方法。它会输出完整的 HTML 页面,集中展示 PHP 版本、已加载模块、配置项参数以及服务器环境信息,适合快速诊断 Web 场景下的问题。
操作方式很简单:在 Web 服务器文档根目录下创建一个测试文件,例如 Apache 默认目录 /var/www/html,新建 info.php,写入以下内容:
保存后,通过浏览器访问 http://服务器IP/info.php,例如 http://192.168.1.100/info.php,即可看到完整配置页面。
这里最值得关注的是页面中的 Loaded Configuration File,它能直接告诉你当前 Web 环境加载的是哪一个 php.ini。
需要特别注意的是,phpinfo() 页面会暴露大量环境细节。生产环境中用完后应立即删除 info.php,避免将敏感信息直接暴露到公网。
通过 php -i 查看 CLI 环境配置
如果你在终端中调试脚本,或者要检查命令行下 PHP 的行为,使用 php -i 更合适。这个命令会输出 PHP CLI 的全部配置信息,包括版本、扩展、环境变量和 ini 指令值。
直接执行:
php -i
如果只关心某个配置项,可以配合 grep 过滤,例如查看 memory_limit:
php -i | grep "memory_limit"
这类方式适合做快速确认,但不要忽略一个常见问题:CLI 环境和 Web 环境可能加载的并不是同一份配置文件。因此,在查看输出时,同样要重点确认 Loaded Configuration File 对应的路径。
怎么确认 php.ini 的真实位置
修改配置前,先找准文件位置,否则改了也可能不是当前生效的那一份。CentOS 上常见的确认方法有 3 种。
1. 用 php --ini 直接查看
先在终端执行:
php --ini
输出中的 Loaded Configuration File 就是当前 CLI 环境实际加载的 php.ini 路径,常见结果可能是 /etc/php.ini 或 /etc/php/8.1/cli/php.ini。
2. 通过 phpinfo() 页面确认 Web 配置来源
如果要确认 Web 服务对应的配置来源,可以直接查看 phpinfo() 页面中的 Loaded Configuration File。这个方法对排查“浏览器里不生效、命令行里却正常”的情况尤其有效。
3. 用 find 全盘搜索
如果前两种方式都没拿到结果,可以直接搜索系统中的 php.ini:
sudo find / -name php.ini
这个命令通常需要 root 权限,适合在环境较复杂、安装来源较多时做兜底排查。
用 ini_get() 在脚本里读取指定配置
当程序需要根据当前配置动态调整行为时,ini_get() 比手动查页面或终端输出更实用。比如根据 upload_max_filesize 控制上传逻辑,或者根据 display_errors 判断错误输出策略,都可以直接在代码里读取。
示例代码如下:
这种方式适合写进诊断脚本,或者在业务逻辑中做运行时判断。它的优势在于读取精确、调用方便,但前提仍然是你要清楚脚本当前运行在哪个环境里。
排查时别忽略这 3 个关键细节
CLI 和 Web 可能不是同一套配置
这是最常见的误判来源。CLI 环境通常通过 php -i 或 php --ini 查看,而 Web 环境则应使用 phpinfo() 页面确认。两边的 Loaded Configuration File 不一致时,就不能把一个环境的结论直接套到另一个环境上。
配置项可能被额外覆盖
即使已经找到 php.ini,某些设置也可能被其他位置覆盖。例如 Apache 环境下可能受 .htaccess 影响,脚本内部也可能通过 ini_set() 临时修改。遇到“文件里明明改了,结果却不对”的情况,这一步必须查。
修改后记得重启相关服务
php.ini 改完后,如果没有重启对应服务,配置通常不会生效。常见操作如下:
sudo systemctl restart httpd
sudo systemctl restart php-fpm
实际需要重启哪一个,取决于你的运行方式:Apache 模块方式关注 httpd,使用 PHP-FPM 时则应重启 php-fpm。
结语
查看 CentOS 上的 PHP 配置,核心思路其实很明确:先分环境,再查配置来源,最后确认修改是否真的生效。只要把 phpinfo()、php -i、php --ini 和 ini_get() 这几种方法搭配起来,日常开发和运维中的大多数配置排查都能更快落到实处。









