最可靠方式是访问phpinfo()页面;它完整列出$_SERVER、getenv()可读的环境变量(如PATH、DOCUMENT_ROOT、PHP_INI_SCAN_DIR),而非依赖php -v或系统变量,因XAMPP中Apache模块与CLI PHP常使用不同二进制和配置。

直接结论:XAMPP 中查看 PHP 环境变量,最可靠的方式是访问 phpinfo() 页面;它会完整列出 $_SERVER、getenv() 可读的所有环境变量(如 PATH、DOCUMENT_ROOT、PHP_INI_SCAN_DIR),而不是靠命令行或配置文件猜。
为什么不能只信 php -v 或系统环境变量
在 XAMPP 中,命令行执行的 php -v 和 Apache 实际加载的 PHP 可能不是同一个二进制或配置——尤其当你手动改过 PATH 或装了多个 PHP 版本时。phpinfo() 显示的是 Apache 模块模式下真实生效的环境,包括:
• Apache 启动时继承的系统环境变量
• Apache 自己注入的变量(如 SERVER_NAME、REQUEST_URI)
• PHP 运行时通过 putenv() 设置的变量(如果代码里有)
• php.ini 中通过 variables_order 控制是否暴露的变量(默认 EGPCS,含 $_ENV)
快速生成并访问 phpinfo() 页面的 3 种方式
无需安装额外工具,以下任一方法都可立即生效:
- 在 XAMPP 的网站根目录(通常是
C:\xampp\htdocs\)新建一个info.php文件,内容为:<?php phpinfo(); ?>
然后浏览器访问http://localhost/info.php - 启动 XAMPP 控制面板 → 确保 Apache 已运行 → 打开浏览器访问
http://localhost→ 点击首页上的phpinfo()链接(XAMPP 默认提供) - 若已启用 XAMPP 的“Admin”按钮(控制面板右上角),点击后跳转的页面通常也带
phpinfo()入口,位置在左侧菜单或页脚附近
从 phpinfo() 页面定位关键环境变量
打开页面后,用浏览器搜索(Ctrl+F)以下关键词即可快速定位:
立即学习“PHP免费学习笔记(深入)”;
-
Environment区块:列出所有getenv()可获取的原始系统环境变量(如PATH、COMSPEC) -
PHP Variables区块:显示$_SERVER数组内容,含 Apache 设置的运行时变量(如DOCUMENT_ROOT、SCRIPT_FILENAME) -
Loaded Configuration File行:告诉你当前生效的php.ini路径,该文件中include_path、extension_dir等本身也是环境影响源 -
Scan this dir for additional .ini files行:对应PHP_INI_SCAN_DIR,XAMPP 常用此机制加载php_xdebug.ini等扩展配置
安全提醒:别让 info.php 长期在线
phpinfo() 页面会暴露绝对路径、扩展列表、已启用模块(如 openssl、gd)、甚至数据库连接信息(如果配置过)。攻击者可据此判断漏洞利用路径。务必做到:
• 调试完立刻删除 info.php 或重命名为非公开名(如 _debug_123.php)
• 不要上传到生产服务器
• 若必须保留,用 .htaccess 限制 IP(如 Require ip 127.0.0.1)
真正容易被忽略的点是:XAMPP 的 Apache 和 CLI PHP 使用不同配置文件,phpinfo() 只反映 Apache 模块下的真实环境——如果你在写命令行脚本,得单独跑 php -i 查看 CLI 模式下的变量,两者可能完全不同。



















