在 IIS 10 上配置 PHP 支持,推荐使用 ‌FastCGI‌ 方式,这是当前最稳定、最高效的集成方法。以下是详细的配置步骤:


1. 安装 IIS 角色

确保 IIS 已安装并启用必要功能:


打开 ‌控制面板‌ > ‌程序‌ > ‌启用或关闭 Windows 功能‌。

勾选 ‌Internet Information Services‌。

展开 ‌World Wide Web Services‌ > ‌应用程序开发功能‌,确保勾选 ‌CGI‌。

点击 ‌确定‌,等待安装完成。

2. 下载并配置 PHP

IIS 10 推荐使用 ‌非线程安全(NTS)‌ 版本的 PHP:


访问 PHP 官方下载页面。

下载最新稳定版的 ‌VC15 x64 Non-Thread Safe‌(或对应你系统的版本)ZIP 包。

将压缩包解压到一个固定目录,例如:C:\php。

在 C:\php 目录下,将 php.ini-production 复制并重命名为 php.ini。

用文本编辑器打开 php.ini,修改以下关键项:

extension_dir = "ext"
cgi.force_redirect = 0
fastcgi.impersonate = 1
date.timezone = Asia/Shanghai

如需数据库支持,取消以下行的注释:

extension=mysqli
extension=pdo_mysql

3. 配置 IIS 的 FastCGI 模块


打开 ‌IIS 管理器‌(在开始菜单搜索 inetmgr)。

在左侧连接树中,点击 ‌服务器名称‌(非站点)。

双击 ‌FastCGI 设置‌。

点击右侧的 ‌添加应用程序‌。

在 ‌完整路径‌ 中输入:C:\php\php-cgi.exe(请根据实际路径调整)。

展开 ‌常规‌ 选项,设置:

‌监视对文件所做的更改‌:C:\php\php.ini

‌活动状态时间限制‌:300 秒

点击 ‌确定‌ 保存。


4. 添加处理程序映射


在 IIS 管理器中,点击 ‌处理程序映射‌。

点击右侧的 ‌添加模块映射‌。

填写以下信息:

‌请求路径‌:*.php

‌模块‌:FastCgiModule

‌可执行文件‌:C:\php\php-cgi.exe(与上一步一致)

‌名称‌:PHP_via_FastCGI

点击 ‌请求限制‌,确保勾选 ‌仅限脚本‌。

点击 ‌确定‌,并确认提示的脚本处理器权限。


5. 设置默认文档(可选)


为了让 IIS 默认加载 index.php:

在 IIS 管理器中,选择你的网站(如 Default Web Site)。

双击 ‌默认文档‌。

点击 ‌添加‌,输入 index.php。

使用 ‌上移‌ 按钮将 index.php 移至列表顶部。


6. 验证配置


在网站根目录(默认为 C:\inetpub\wwwroot)创建一个新文件 info.php。

写入以下内容:

<?php
phpinfo();
?>

保存文件,打开浏览器访问:http://localhost/info.php。

如果看到详细的 PHP 配置信息页面,说明配置成功。

常见问题排查

‌页面显示源码或下载 PHP 文件‌:检查处理程序映射是否勾选了“仅限脚本”,并确认 .php 映射未被 StaticFileModule 拦截。

‌500 内部服务器错误‌:检查 php-cgi.exe 路径是否正确,IIS_IUSRS 用户是否有权限读取 C:\php 目录。

‌PHP 扩展不生效‌:确认 php.ini 中扩展路径正确,且文件存在于 C:\php\ext\ 目录下。

‌依赖缺失‌:确保已安装 Microsoft Visual C++ Redistributable(与 PHP 版本匹配)。

‌提示‌:如需简化配置,可使用微软官方的 ‌Web Platform Installer (Web PI)‌ 自动安装 PHP,但该工具已逐步停用,手动配置更可靠且可控。‌