如何在IIS上运行PHP网站?Windows Server 2012环境配置求助
解决IIS无法解析PHP文件的问题
嗨,我懂你现在的情况——静态HTML能正常访问,但PHP文件就是没被解析,直接像静态文件一样输出了对吧?这是因为IIS还不知道该用PHP的解析程序来处理.php后缀的文件,下面是具体的配置步骤,基于你已经安装好PHP的前提:
1. 先确认PHP的安装路径
如果你用的是XAMPP自带的PHP,路径一般是 C:\xampp\php,进去确认下有没有 php-cgi.exe 这个文件,这是PHP的核心解析程序。
2. 给IIS安装CGI模块
IIS默认没开启CGI支持,得先装上这个组件:
- 打开服务器管理器,点击添加角色和功能
- 一路下一步到功能页面,找到CGI选项并勾选,然后完成安装
- 安装完成后重启IIS,你可以在命令行里敲
iisreset,或者在IIS管理器里右键站点选择重启
3. 配置IIS的PHP处理程序映射
这一步是核心,用来告诉IIS:“遇到.php文件时,用PHP的CGI程序来解析”:
- 打开Internet信息服务(IIS)管理器,找到你的默认网站(Default Web Site)
- 在右侧的功能视图里找到处理程序映射,双击打开
- 点击右侧的添加模块映射,填写以下内容:
- 请求路径:
*.php - 模块:选择FastCgiModule(如果找不到这个选项,回去确认CGI模块已经安装成功)
- 可执行文件:浏览到你的PHP目录下的
php-cgi.exe,比如C:\xampp\php\php-cgi.exe - 名称:随便起一个好记的名字,比如
PHP_FastCGI - 点击确定,弹出的对话框选是,创建对应的FastCGI应用程序
- 请求路径:
4. 调整PHP.ini配置(可选但推荐)
如果用的是XAMPP的PHP,建议修改几个关键配置避免后续问题:
- 找到PHP目录里的
php.ini文件,用记事本或代码编辑器打开 - 找到
cgi.fix_pathinfo这行,去掉前面的分号,改成cgi.fix_pathinfo=1 - 可以设置时区,比如
date.timezone=Asia/Shanghai,避免PHP抛出时区警告 - 保存文件后重启IIS让配置生效
5. 测试配置是否成功
创建一个简单的测试文件test.php,内容如下:
<?php phpinfo(); ?>
把它放到 C:\inetpub\wwwroot 目录下,然后访问 http://localhost/test.php,如果能看到满屏的PHP配置信息,就说明配置成功了!
另外提一句,要确保IIS的应用程序池用户(默认是IIS AppPool\DefaultAppPool)对PHP目录和网站根目录有读取权限,不然可能会出现权限报错。
内容的提问来源于stack exchange,提问作者Pant
相关产品推荐
相关产品推荐

