在Windows Server上用IIS搭建PHP独立站的核心是稳、快、可维护,需精简IIS角色(仅Web服务器、静态内容等)、部署NTS版PHP并固化路径、配置单一FastCGI映射、严格设权限与参数,全程无需第三方工具。

在Windows Server上用IIS搭PHP独立站,核心不是堆功能,而是稳、快、可维护。关键在于选对版本、关掉冗余、权限收窄、路径明确——不是所有勾选项都该打上。
一、IIS安装只留必要角色
打开“服务器管理器”→“添加角色和功能”,全程跳过“基于功能的安装”,直选“基于角色的安装”。只勾选:
- Web服务器(IIS)
- 展开后仅启用:Web管理工具(含IIS管理控制台)、静态内容、默认文档、HTTP错误、CGI
别选“ASP.NET”“.NET Extensibility”“WebSocket”等无关项;CGI必须勾,它会自动带入FastCGI模块,无需额外操作。装完不重启也行,但建议执行 iisreset /restart 确保服务加载干净。
二、PHP部署坚持NTS+VC15+路径固化
去 windows.php.net 下载最新版 VC15 x64 Non-Thread Safe ZIP(如 php-8.3.13-nts-Win32-vs16-x64.zip)。解压到 C:\php,不建议放Program Files或带空格路径。
立即学习“PHP免费学习笔记(深入)”;
通过 SSH 隧道从 Android 设备在互联网上对 Windows PC 实现完整远程控制的设置与使用指南,适用于远程桌面访问、安全 RDP 等。
- 重命名 php.ini-production 为 php.ini
- 编辑 php.ini:
extension_dir = "ext"(相对路径即可,IIS下有效)
date.timezone = Asia/Shanghai
fastcgi.impersonate = 1(必开,否则文件权限异常)
upload_tmp_dir = C:\php\tmp(手动建目录,赋予 IIS_IUSRS 修改权限) - 启用扩展:去掉 mysqli、pdo_mysql、mbstring、openssl 前的分号
把 C:\php 加进系统PATH;再新建系统变量 PHP_FCGI_MAX_REQUESTS=10000,防FastCGI进程过早回收。
三、IIS中只配一条精准处理映射
打开IIS管理器 → 选中服务器节点 → 双击“处理程序映射” → 右侧“添加模块映射”:
- 请求路径:*.php
- 模块:FastCgiModule
- 可执行文件:C:\php\php-cgi.exe
- 名称:PHP_via_FastCGI
点“请求限制” → 取消勾选“验证文件是否存在”(避免404误判);点“是”确认。不要添加多个映射,也不要用通配符或正则。之后在“FastCGI设置”里双击刚加的 php-cgi.exe 条目,把 实例最大请求数 设为10000,活动超时 改为300秒。
四、验证与最小化调试闭环
在 C:\inetpub\wwwroot 下建 info.php,内容仅一行:
<?php phpinfo(); ?>
- 命令行运行 php -v,看到版本即PHP CLI就绪
- 浏览器访问 http://localhost/info.php,出现完整phpinfo页面且 Server API 显示为 CGI/FastCGI,说明IIS+PHP链路通了
- 若报500,查 Windows事件查看器 → 应用程序日志,重点看 WWW Server 和 FastCGI 错误;常见原因是 php-cgi.exe 路径错、VC++运行库缺失(装 Microsoft Visual C++ 2015–2022 Redistributable (x64))或 tmp 目录无写权限
跑通后删掉 info.php,后续站点直接放代码进 wwwroot 或绑定新网站即可。整个过程不依赖第三方面板,所有配置可脚本化复现。


















