跳转到内容

IIS 和 FastCGI/注册解释器

来自维基教科书,开放的书籍,为开放的世界

此页面主要是一个官方 Microsoft 文档的维基镜像。[1]

配置 FCGI.ini

[编辑 | 编辑源代码]

全局注册扩展

## php
cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe"

## perl
cscript fcgiconfig.js -add -section:"Perl" -extension:pl -path:"C:\strawberry\perl\bin\perl.exe"

要注册特定于站点的扩展,只需添加 -site=<sitenum> 标志。(没有尖括号)

cscript fcgiconfig.js -add -section:"PHP" -extension:php -path:"C:\PHP\php-cgi.exe" –site:1

成功后,您应该看到

Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

INI successfully written.

完成 fcgiext.ini

[编辑 | 编辑源代码]

文档默认位于C:\WINDOWS\system32\inetsrv\fcgiext.ini

FastCGI 文档使用类型部分将 FastCGI 应用程序映射到 IIS 站点(虚拟主机)上,使用特定的 IIS ID。以及一个描述应用程序的部分

[Types]
;619896678 is my example IIS site id
*:619896678=Catalyst

[Catalyst]
ExePath=C:\strawberry\perl\bin\perl.exe
Arguments="D:\Inetpub\www\DMApp\script\dmapp_fastcgi.pl"

在 IIS 中注册 FCGI

[编辑 | 编辑源代码]

要将 FastCGI 添加到站点,请按照以下步骤操作:开始 → 管理工具 → Internet Information Services (IIS) 管理器 → 右键单击 网站 文件夹属性 → 主目录 → 配置 → 选择您安装的扩展 → 编辑 → 您应该看到C:\WINDOWS\system32\inetsrv\fcgiext.dll或类似的可执行文件字段中的内容。取消选中“验证文件存在”。

故障排除

[编辑 | 编辑源代码]

ScriptMap 已经存在

  • 示例
C:\WINDOWS\system32\inetsrv\fcgiconfig.js(1223, 5) (null): ScriptMap already exi
sts, path=IIS://127.0.0.1/W3SVC, scriptmap=.pl,C:\Perl\bin\perl.exe "%s" %s,5,GE
T,HEAD,POST
  • 原因:通常是旧的 Active State CGI 垃圾
  • 解决方案:开始 → 管理工具 → Internet Information Services (IIS) 管理器 → 右键单击 网站 文件夹属性 → 主目录 → 配置 → 删除所有冲突的扩展,例如 .pl、.plex、.plx、.php、.rb 等 → 确定 / 确认
  • ^ 基于 Microsoft 慷慨提供的示例的信息"使用 FastCGI 在 IIS 6.0 和 IIS 5.1 上托管 PHP 应用程序". IIS 和 FastCG. Microsoft. 2007-09-24. 检索于 2008-02-05.
华夏公益教科书