能正常输出 phpinfo() 页面即表明 PHP 已安装且 Web 服务器正确加载 PHP 模块;它显示版本、扩展、php.ini 路径、时区、上传限制等关键信息,需通过浏览器访问 info.php 文件验证,成功表现为完整渲染的表格页面且各核心区域无报错或空白。

能正常输出 phpinfo() 页面,是确认 PHP 已安装且 Web 服务器(如 Apache 或 Nginx)已正确加载 PHP 模块的最直接方式。它不只告诉你“PHP 装了”,更暴露运行环境的关键细节:版本、扩展是否启用、php.ini 实际路径、时区、上传限制等。
怎么写一个能触发 phpinfo() 的文件
你不需要额外安装工具或命令行操作——只需一个极简的 PHP 文件,放在 Web 根目录下,通过浏览器访问即可。
- 新建文件,例如
info.php,内容仅一行: - 保存到 Web 服务器可访问的目录中(如 Apache 默认是
/var/www/html/,Windows XAMPP 是C:\xampp\htdocs\) - 确保文件权限允许 Web 服务器读取(Linux 下常见为
644) - 在浏览器中访问
http://localhost/info.php(或对应域名/IP + 路径)
看到什么才算验证成功
成功不是只看到“PHP Version”几个字,而是整个表格式页面完整渲染,且关键区域无报错或空白:
-
PHP Version行显示具体版本号(如8.2.12),而非???或报错 -
Loaded Configuration File显示真实的php.ini路径(如/etc/php/8.2/apache2/php.ini),说明配置文件被识别 -
Server API显示Apache 2.0 Handler或FPM/FastCGI,表明 PHP 是以预期模式运行的 - 滚动查看
extensions区域,确认你需要的扩展(如mysqli、curl、openssl)状态为enabled
常见失败现象和对应排查点
如果打不开页面、显示源码、或提示 500/404,问题通常不在 phpinfo() 本身,而在环境链路某处断开:
立即学习“PHP免费学习笔记(深入)”;
- 浏览器显示原始代码(
)→ PHP 模块根本没被 Web 服务器加载,检查 Apache 的libphp.so是否载入,或 Nginx 是否配置了正确的fastcgi_pass - 返回 404 → 文件路径不对,或 Web 服务器 DocumentRoot 配置指向了错误目录;也可能是文件名被重写规则拦截(如某些 CMS 的
.htaccess屏蔽了*.php) - 返回 500 Internal Server Error → 检查 Web 服务器错误日志(如 Apache 的
error.log),常见原因是php.ini语法错误,或扩展模块与当前 PHP 版本不兼容 - 页面打开但部分区域为空(如
mysql相关全灰)→ 对应扩展未启用,需确认extension=mysqli在php.ini中未被注释,且该 so/dll 文件真实存在
为什么不能只依赖命令行 php -v
php -v 只验证 CLI SAPI 下的 PHP 是否可用,而 Web 环境用的是另一个 SAPI(如 apache2handler 或 fpm)。两者可能使用不同的 php.ini、不同扩展集、甚至不同 PHP 二进制文件。
例如:系统装了 PHP 8.1 CLI,但 Apache 加载的是旧版 7.4 的模块;或者 CLI 启用了 opcache,而 Web 端没开——这些差异只有 phpinfo() 能如实反映。
真正容易被忽略的是:很多一键环境(如 XAMPP、MAMP、Docker 镜像)会默认禁用 phpinfo()(通过 disable_functions),或把 display_errors 关掉导致错误静默。别只看有没有页面,要盯住“Loaded Configuration File”和各扩展的实际状态。











