如何调用phpinfo查看环境信息_用phpinfo输出PHP信息方法【技巧】

直接执行phpinfo()可输出完整PHP环境信息,但需Web服务器正确解析PHP文件;常见问题包括Nginx/Apache未配置PHP处理器、文件权限或路径错误;应临时存放于受控子目录、限制访问并用完即删;生产环境推荐用phpversion()、get_loaded_extensions()、ini_get()等函数按需获取信息。

直接在 Web 服务器上执行 phpinfo() 就能输出完整的 PHP 环境信息,但必须确保脚本能被 Web 服务正确解析,且不能暴露在生产环境。

为什么访问 phpinfo.php 页面却显示源码或 404

常见原因是 Web 服务器(如 Nginx 或 Apache)未将 .php 文件交由 PHP 解析器处理。

  • Nginx 需确认配置中包含类似 fastcgi

    _pass 127.0.0.1:9000
    unix:/var/run/php/php8.1-fpm.sock 的转发规则,并已启用 index.php 为默认索引
  • Apache 要检查是否加载了 libphp.so 或启用了 mod_php,且 .php 后缀已关联到 application/x-httpd-php
  • 文件权限错误(如 phpinfo.php 不在 Web 根目录下,或权限为 600 导致 Web 进程无法读取)也会导致 403 或空白响应

如何安全地创建并访问 phpinfo 页面

不要把 phpinfo.php 放在公开可访问路径(如网站根目录),更别用默认文件名。临时使用时应加访问控制。

  • 把文件放在 Web 根目录的子目录里,比如 /var/www/html/debug/,再配合服务器配置限制 IP 或加密码
  • 内容只写最简版本:
  • 若需限制仅本地访问,Nginx 可加 allow 127.0.0.1; deny all;;Apache 可用
  • 用完立刻删除该文件——phpinfo() 会泄露 PHP_INI_SYSTEM 级配置、扩展列表、环境变量甚至部分绝对路径

phpinfo() 的替代方案:按需获取特定信息

生产环境禁用 phpinfo() 时,可用内置函数分项查询,避免信息过度暴露。

  • 查看 PHP 版本:PHP_VERSION 常量或 phpversion()
  • 列出已加载扩展:get_loaded_extensions(),可过滤关键项如 in_array('curl', get_loaded_extensions())
  • 查某个配置项值:ini_get('upload_max_filesize'),注意它只返回 PHP_INI_USERPHP_INI_PERDIR 级别的值;PHP_INI_SYSTEM 项需用 ini_get_all() 并检查 access 字段
  • 获取当前 SAPI 类型:php_sapi_name()(如 apache2handlerfpm-fcgicli),这对判断运行上下文很关键

真正麻烦的不是调用 phpinfo(),而是它输出的信息太多又太细——你得知道哪一行对应哪个配置项,比如 Loaded Configuration File 行告诉你实际生效的 php.ini 路径,而这个路径在不同系统上可能位于 /etc/php/8.1/cli/php.ini/usr/local/etc/php/8.2/php.ini,稍不注意就改错了文件。