php在iis中无法运行的根本原因是环境配置错误而非标签问题,需依次确认:①iis处理程序映射是否指向正确的php-cgi.exe;②php路径是否加入系统path且php-cgi -v可执行;③php.ini中cgi.fix_pathinfo=0、display_errors=on等关键项已正确设置;④测试文件置于wwwroot下并使用标准标签。

PHP标签本身不需要“加”,关键在于IIS是否能正确解析 <?php ?> 这类语法。如果你在浏览器中直接看到 <?php echo 'hello'; ?> 的源码,或者页面空白、报500错误,说明PHP根本没有被IIS执行——不是标签写错了,而是环境没配好。
确认PHP短标签是否启用(可选但需注意)
默认情况下,PHP只识别标准标签 <?php ?>。如果你用了简写标签如 ?> 或 = ?>,需确保 short_open_tag = On 已在 php.ini 中开启:
- 打开
php.ini,搜索short_open_tag - 取消注释并设为:
short_open_tag = On - 保存后重启IIS(运行
iisreset或在IIS管理器中重启网站)
真正决定能否显示内容的,是以下四件事
一、IIS必须把 .php 文件交给 PHP 解析器
- 在IIS管理器 → 服务器或站点 → “处理程序映射” → 确认存在一条映射:
- 请求路径:
*.php - 模块:
FastCgiModule(不是 CgiModule) - 可执行文件:指向
C:\php\php-cgi.exe(路径必须准确,且该文件真实存在)
- 请求路径:
- 如果缺失或指向错误,
.php文件会被当作纯文本下载或返回500
二、PHP必须能被系统调用
- 确保
C:\php\(或你的PHP安装目录)已加入系统 PATH 环境变量 - 以管理员身份运行命令提示符,输入:
php-cgi -v
能输出版本号,说明环境变量和PHP本体正常;若提示“不是内部或外部命令”,需重新配置PATH
三、php.ini 配置不能阻断执行
这几个设置直接影响能否输出内容:
-
cgi.fix_pathinfo = 0(防止路径解析漏洞,IIS推荐关闭) -
display_errors = On(开发时建议打开,方便看报错) -
error_reporting = E_ALL(确保所有错误可见) -
date.timezone = Asia/Shanghai(避免时区警告干扰输出)
改完记得重启IIS
四、测试文件要放在正确位置并用标准标签
- 把测试文件(如
test.php)放在IIS默认网站根目录(通常是C:\inetpub\wwwroot\) - 文件内容用标准标签,例如:
<?php phpinfo(); ?>
- 浏览器访问
http://localhost/test.php,能看到PHP信息页才算成功
不复杂但容易忽略
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











