如何使用IIS 7.5配置Perl/FCGI(FastCGI)?

如何使用IIS 7.5配置Perl/FCGI(FastCGI)?,perl,iis,iis-7.5,fastcgi,Perl,Iis,Iis 7.5,Fastcgi,我正在尝试让Perl/FastCGI(FCGI)与IIS7.5一起运行。C:\Windows\System32\inetsrv\iisfcgi.dll的版本是7.5.7601.17514。下面是我的web.config和我的Perl脚本: D:\MiLu\Dev :: more /t1 web.config <?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer>

我正在尝试让Perl/FastCGI(FCGI)与IIS7.5一起运行。
C:\Windows\System32\inetsrv\iisfcgi.dll的版本是
7.5.7601.17514
。下面是我的
web.config
和我的Perl脚本:

D:\MiLu\Dev :: more /t1 web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
 <system.webServer>
  <directoryBrowse enabled="true" />
  <handlers>
   <add name="FCGI" path="*.pl" verb="*"
    modules="FastCgiModule"
    scriptProcessor="C:\Opt\Cygwin\bin\perl.exe"
    resourceType="Unspecified" requireAccess="Script" />
  </handlers>
 </system.webServer>
</configuration>

D:\MiLu\Dev :: more /t4 Perl\fcgi\count.pl
use strict;
use warnings;
use FCGI;

my $count = 0;
my $request = FCGI::Request();

while ( $request->Accept >= 0 ) {
    print "Content-type: text/html\r\n\r\n", ++$count;
}
然而,有一种方法似乎只适用于IIS 5.1和6.0

IIS有一个专用的FCGI模块,这表明IIS 5.1和6.0提供了自己的非标准FCGI实现。如果这是真的,那么IIS7.5呢?不确定因素很多

FCGI::IIS
的作者,但放弃了

我在哪里可以找到更具体的错误是什么?有日志文件吗?我应该在Windows事件查看器(eventvwr)中查找什么

有没有我错过的IIS魔法咒语


关于这一组合的信息并不多。但它最终可能会起作用。这里有一个,还有。

我已经有一段时间没有这样做了,而且从来没有和Cygwin一起做过。 为了测试这一点,请下载并安装适用于您的体系结构的最新活动状态perl,并尝试按以下方式安装/配置:

另一参考:

祝你好运。


我刚刚遇到这个。你提到的很多链接都是我的。在我写这些指南的时候,FastCGI for IIS是全新的,而Vista版本还没有发布。不幸的是,由于工作的关系,我最终完成了其他项目,在Vista(IIS 7)版本发布后,我没有机会继续阅读指南。

我刚刚又来了一个需要这个的项目,在我自己寻找解决方案的过程中,我发现了你的帖子。我做了一些测试,并设法找到了解决方案

FastCGI在Windows上的工作方式与在Linux上的工作方式根本不同。它不仅适用于IIS版本,也适用于Apache版本

在Linux上,您可以将FastCGI设置为处理程序,脚本的shebang将足以将其指向Perl并执行正确的操作(只要您已经为FCGI或CGI::Fast编写了脚本)

在Windows上,您需要指定要使用处理程序调用的FastCGI脚本:

IIS 7:
IIS管理器->站点->网站->处理程序映射->添加模块映射…
请求路径:test_script.fcgi
模块:FastCgiModule
可执行文件:c:\perl\bin\perl.exe | c:\inetpub\wwwroot\test\u script.fcgi
名称:测试FCGI示例
单击OK,然后选择添加FastCGI应用程序。如果检查服务器的FastCGI设置,则需要将|之后的部分设置为可执行文件(Perl)的参数。
重新启动服务器(不仅仅是网站)。它应该是有效的。不幸的是,如果您想使用这种技术,您需要为每个脚本添加一个映射。IIS模块试图解决这个问题,但它有很多警告,并且没有完成。

阿帕奇 我通过将mod_fcgid.so文件复制到适当的目录,并更新httpd.conf:


fcgidInitialeEnv路径“C:/WINDOWS/system32;C:/WINDOWS;C:/WINDOWS/system32/Wbem;C:/Perl/bin”
FcgidInitialEnv系统根目录“C:/Windows”
FCGID初始环境系统驱动器“C:”
FCGID初始环境温度“C:/WINDOWS/TEMP”
FCGID初始环境TMP“C:/WINDOWS/Temp”
FcgidInitialEnv windir“C:/WINDOWS”
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 1000
FCGidMax1
FcgidMaxRequestLen 8131072
选项索引跟随SYMLINKS ExecCGI
AddHandler fcgid script.fcgi
FcgidWrapper“C:/Perl/bin/Perl.exe C:/wamp/www/test_script.fcgi”.fcgi

我希望这能帮助任何和你面临同样问题的人



Lyle

我遵循了第二个URL中的步骤,并且能够正确部署,感谢链接!谢谢,莱尔。我现在已经离开了这个Perl/IIS设置,但我相信您的更新将有助于其他用户在web开发领域这个有点黑暗的角落寻求建议。
D:\MiLu\Dev :: C:\Opt\Cygwin\bin\perl.exe Perl\fcgi\count.pl
Content-type: text/html

1