“cgi 模块丢失”错误本质是iis未启用cgi功能,需在服务器管理器中勾选“cgi”和“isapi扩展”,安装后重启iis;再验证fastcgimodule是否加载,检查php为nts版、路径为绝对路径、权限正确,并确保已安装vc15–2022运行库、无残留php.ini、应用池身份设为localsystem。

出现“CGI 模块丢失”错误,本质是 IIS 缺少 CGI 功能支持,不是 PHP 本身的问题。Windows Server 默认不启用 CGI,必须手动勾选安装。
确认并启用 IIS 的 CGI 功能
在服务器管理器中打开“添加角色和功能向导”,逐级展开到“Web 服务器(IIS)→ Web 服务器 → 应用程序开发”,确保以下两项已勾选:
- CGI(必需,FastCGI 依赖它)
- ISAPI 扩展(部分旧配置或调试工具会用到,建议一并启用)
完成安装后,无需重启系统,但需重启 IIS 服务(运行 iisreset 或在 IIS 管理器中右键“服务器节点→重新启动”)。
验证 FastCGI 模块是否加载成功
打开 IIS 管理器 → 左侧连接树选中服务器根节点 → 双击“模块”图标。在列表中查找 FastCgiModule。若未出现,说明 CGI 功能未生效或安装不完整。
若已启用 CGI 但仍无该模块,可尝试命令行强制注册:
%windir%\system32\inetsrv\appcmd list module FastCgiModule
如返回“找不到模块”,请回到上一步重新检查 CGI 功能安装状态。
检查 PHP 安装路径与 FastCGI 映射配置
即使 CGI 功能开启,若 FastCGI 设置中指定的 php-cgi.exe 路径错误或权限不足,也会表现为“模块异常”。请确认:
- 使用的是 Non-Thread Safe(NTS)版本 的 PHP 7.4.33(如
php-7.4.33-Win32-vc15-x64.zip),不是 TS 版 - FastCGI 设置中“完整可执行文件路径”填写的是绝对路径,例如:
C:\php\php-cgi.exe,不能写成php-cgi.exe或相对路径 - PHP 目录(如
C:\php)对 IIS_IUSRS 和 Users 组具有读取+执行权限
排除常见干扰项
某些情况下,错误提示虽为“CGI 模块丢失”,实际根源在环境依赖:
- 缺失 Visual C++ 运行库:PHP 7.4 基于 VC15 编译,必须安装 Microsoft Visual C++ 2015–2022 Redistributable(x64)
- 残留旧版 php.ini:检查
C:\Windows\System32\php.ini是否存在,若有,请删除并重启 IIS(否则会覆盖你配置的 php.ini) - 应用程序池身份:PHP 7.4.33 在 Windows Server 2008 R2 上需将应用池“标识”设为 LocalSystem,否则易报 500 错误并间接影响 CGI 加载
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











