我的一亩三分地 我就喜欢!
13fen  设为主页
 收藏本站
 
当前位置: > 一亩三分地:首页 > 网络编程 > CGI专区 > perl(CGI)程序显示script produced no output 的问题
热门文章排行
热门文章排行 perl实例分析教程之九(10-30)
CGI教程:记录用户记录脚本之二(10-27)
CGI教程:调用CGI脚本文件的例子之四(10-27)
跟我学Perl(6)(10-30)
跟我学Perl(2)(10-30)
精采文章排行
精采文章排行 实战 FastCGI_2. 安装 FastCGI之二(10-30)
实战 FastCGI_2. 安装 FastCGI之一(10-30)
实战 FastCGI_1.克服 CGI 的瓶颈(3)(10-30)
实战 FastCGI_1.克服 CGI 的瓶颈(2)(10-30)
实战 FastCGI_1.克服 CGI 的瓶颈(1)(10-30)
技术专题推荐
网管论坛交流
 

perl(CGI)程序显示script produced no output 的问题 

作者:   来源:   点击:   日期:2007-11-26

一直垂涎Movable Type 3.3x的标签和一大堆好功能。但一直没能下决心好好升级一把。
因为我的服务器环境就是让人郁闷的
win2003 + IIS6,对perl的支持很是差劲,经常 ”no output“。
相信只要是这个环境的MTer一定和我心有同感。
废话少说:
主要解决了两个困难

1.'绝对路径' script produced no output
这个问题的根本来自于看了平生一笑这篇文章后,安装perl安装成了isapi方式,虽然执行速度快,但经常会出现这个错误。
原因在于IIS对perl Isapi方式支持不行,有多行字节溢出的问题。
最彻底的解决办法就是全部改成perl命令行解释的方法。
之前被这篇文章图片误导,将解析方式写成了
c:\xxx\perl.exe %s %s"
结果不行。
请参考这篇文章:在IIS6中配置PHP/Perl支持
应当写成:
c:\xxx\perl.exe ”%s“ %s
尤其注意在“Web 服务扩展”面板中要将CGI Extension中的执行方式改成这样。

2.CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.

这个问题的解决办法如下
Web站点上点右键->新建虚拟目录,目录名自己写,指向mt.cgi文件所在目录。
下载这个官方的Bootstrap.pm文件,将其拷贝到lib/MT/Bootstrap.pm,覆盖原文件
这步非常重要!
官方原文(下面是平生一笑的翻译):
---------------------------------------------
导致Movable Type在IIS 6.0(Windows 2003)上安装出现CGI Error的原因是,在Windows 2003 Server下,Movable Type的当前工作路径与CGI脚本路径并不相同,运行mt-check.cgi,你会发现,mt-check.cgi:

# Current working directory: (path)
# MT home directory: (different path)

这里的Current working directory和MT home directory指向了不同的路径。要解决此问题,请按照以下步骤操作:

* 在IIS下创建一个虚拟目录,指向Movable Type CGI脚本所在的物理路径,即mt-check.cgi报告的MT home directory;
* 下载这个新的Bootstrap.pm文件,将其拷贝到lib/MT/Bootstrap.pm,覆盖原文件;
* 编辑mt-config.cgi文件,设置CGIPath为刚才建立的虚拟目录的URL;
* 再次运行mt-check.cgi,你会发现 Current working directory 和 MT home directory 的路径相同,都指向了文件真实的物理路径。
-------------------------------------------------
但实际上我发现,只要虚拟目录指向mt所在目录即可,不一定要二者相同的
下面是我的配置对比。
# Current working directory: C:/iis/.../www/kingda/cgi-bin
# MT home directory: C:\iis\...\www\kingda\cgi-bin\

然后用你的域名加那个虚拟目录名访问mt.cgi即可了。
MT3.34成功运行,霍哈哈。终于可以使用Tags了



文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【论坛讨论

   相关文章:
·在IIS6中配置Perl支持的方法 ·使用 Visual Basic .NET 重载事件处理程
·.NET编译技术内幕(2) ·.Net正式版中的一些Bug及其解决方案
·.NET 框架类库(上) ·使用 .NET 框架类替代 API 调用 (一)

   文章评论:(条)
  
 请留名: 匿名评论   点击查看所有评论 网管论坛
 

  责任编辑:一分  声明:刊登此文章是为了传递更多信息,文章内容仅供参考,转载请注明出处。