phpinfo打不开说明请求未进入php解析环节,需排查访问方式(必须用http://localhost/xxx.php)、fastcgi配置(确认php-cgi.exe注册及*.php映射)和php运行环境(验证php-cgi.exe可执行、php.ini加载正确、权限与依赖库齐全)。

phpinfo 打不开,说明请求没走到 PHP 解析环节,不是 PHP 本身没装好,而是 IIS 和 PHP 之间没接通。重点排查三块:访问方式是否正确、FastCGI 配置是否生效、PHP 运行环境是否就绪。
确认是不是用对了访问方式
必须通过 http://localhost/test.php 访问,不能双击打开或用 file:// 协议。IIS 不处理本地文件路径,浏览器直接读源码或报 404 就是这个原因。
- 新建 test.php 放在默认网站根目录(
C:\inetpub\wwwroot) - 内容只写
<?php phpinfo(); ?>,保存为 UTF-8 无 BOM 格式 - 浏览器地址栏输
http://localhost/test.php,不是file:///C:/...
检查 FastCGI 处理程序是否配置成功
IIS 10 不像 Apache 那样自动加载模块,PHP 必须通过 FastCGI 显式注册并映射到 .php 扩展。常见漏项:
- 在 IIS 管理器 → 选择服务器 → “FastCGI 设置”中,确认
php-cgi.exe路径存在且可执行(注意:必须用php-cgi.exe,不是php.exe) - 在网站 → “处理程序映射”中,找到名为
PHP_via_FastCGI的条目,确保其可执行文件指向正确的php-cgi.exe,且 verb 为*、路径为*.php - 若没有该条目,需手动添加:扩展名
*.php→ 可执行文件选php-cgi.exe→ 模块选FastCgiModule
验证 PHP-CGI 是否能真正运行
即使映射存在,如果 php-cgi.exe 启动失败,IIS 会静默返回 500 或空白页。快速验证方法:
- 命令行执行:
C:\php\php-cgi.exe -v(把路径换成你实际解压位置),应输出 PHP 版本信息;若报缺少vcruntime140.dll或msvcp140.dll,需安装 Visual C++ 2015–2022 运行库 - 检查
php.ini是否被加载:在同目录下放一个phpinfo.php,用 CLI 方式运行php-cgi.exe phpinfo.php > out.html,打开 out.html 看 Loaded Configuration File 路径是否正确 - 确保
php.ini中已启用fastcgi.impersonate = 1、cgi.force_redirect = 0、cgi.fix_pathinfo = 0,且extension_dir指向正确的ext目录
其他高频干扰项
这些不常被想到,但实际发生率很高:
-
防火墙/端口拦截:IIS 默认监听 80,但若被 Skype、SQL Server Reporting Services 或其他服务占用了 80 端口,会导致整个网站不可达——先运行
netstat -ano | findstr :80确认 -
权限问题:IIS 应用程序池标识(如
ApplicationPoolIdentity)需对php-cgi.exe所在目录、php.ini、ext文件夹有读取+执行权限 -
错误未显示:IIS 默认屏蔽 PHP 错误。在 IIS 管理器 → 网站 → “错误页” → “编辑功能设置” → 勾选“详细错误消息”;同时在
php.ini中设display_errors = On、error_reporting = E_ALL,改完重启 IIS(iisreset)
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











