我在Debian Lenny机器上有2个不同的Web服务器。一个运行FastCGI(TRAC),另一个Web服务器运行PHP和一些CGI脚本。所以我目前启用了2个Apache2模块(cgi和fcgi)以及相应的2个vhosts设置。我对这两个模块同时运行没有特别的兴趣。
所以我想继续运行Apache fastcgi模块,因为它看起来效率更高。
您能否确认以下评估是对还是正确?
1-我将无法为TRAC站点做任何改变/更改(已经运行fcgi)
2-我将不得不调整其他Web服务器vhost,使用fastcgi脚本的处理程序进行设置
3-我将只需要将perl模块从“使用CGI”更改为“使用CGI :: Fast”
4-我将能够保留perl现有CGI脚本的其余部分,而不进行其他更改
5-我不需要在Web服务器脚本中使用CGI :: Apache但CGI :: FastCGI(i / o当前的CGI模块)
我希望我的观点很明确,因为它对我来说有点陌生......
THX
修改:
这是对Naveed和J-16的提示,
如果它可以帮助其他人,我会采取以下措施:
哼,用CPAN安装CGI :: Fast,然后效果更好..
在已安装libperl的Debian上
perl -MCPAN -e shell
cpan> install CGI::Fast
将文件名从* .cgi更改为* .fcgi,
编辑:修改了文件上传代码,因为初始脚本不再起作用(仍然不明白为什么),所以我不得不用这样一个替换while循环:
open(FILE,">$upload_dir/$file_name")
while ($bytes_count = read($file_query,$buffer,2096)) {
$size += $bytes_count;
print FILE $buffer;
}
close(FILE);
进行。
世界尚未完美,但它终于有效。
答案 0 :(得分:6)
除了更改使用CGI以使用CGI :: Fast之外,您还需要做更多的工作。确保用while循环包装CGI脚本,文档说明http://p3rl.org/CGI::Fast
use CGI::Fast;
while (CGI::Fast->new()) {
# The original CGI code goes in here
}