BB’s Blog:本博近期关注 中国移动、电影、电视、手机软件.
在Windows下ActivePerl必须以perl.exe命令行方式

MovableType 在WINDOWS2003平台中,只能以ActivePerl以perl.exe设置为c:\Perl\bin\perl.exe "%s" %s 命令行方式,如果用ISAPI方式解析CGI程序会导致很经常出现script produced no output,这应该是ActivePerl的一个BUG,怪不的官方没说明如何使用ISAPI解析CGI程序。

Activeperl的官方文档是这样介绍两者的差别的:

Why should I use Perl for ISAPI rather than Perl for Win32 (perl.exe)?
The short answer is: it's faster. The long answer gets kind of technical, but it goes like this:
The main advantage of PerlIS over perl.exe is that PerlIS runs as a DLL in the web server's process space. Because Win32 platforms set up a protected memory space for each process that is started, there's a lot of overhead in starting a new process or program. Passing scripts to an interpreter, such as perl.exe, requires starting a new process for every script, which gets expensive in terms of system resources.
DLLs, on the other hand, don't need their own process space; they use the space of the process that calls them. They don't require nearly as much overhead to start, and once loaded they stay loaded until the calling process ends. PerlIS therefore runs Perl scripts with a quicker turn-around time than perl.exe.
Extra care should be taken when you write PerlIS applications. It is difficult to crash the web server using CGI, but because the PerlIS DLL runs in the process space of the server, your web server is more susceptible to crashes and hangs caused by programming errors.

也就是说如果连接数少用perl.exe和ISAPI内存使用相差的不多。虽然使用ISAPI速度快,但因为只使用一个内存空间,如果出现问题就会影响到服务器上其他的程序,而使用perl.exe就算出现问题,也不会影响服务器其他程序,因为一个连接用一个独立的内存空间。

厦大博客架设在Windows 2003的IIS+PHP+MySQL+Perl平台下,以下是厦大博客所使用的软件版本:

1、Perl 版本使用: 5.8.6。
2、使用Microsoft-IIS/6.0,官方说使用IIS5.0或者IIS6.0。
3、PHP运行方式 ISAPI,PHP版本 4.4.1。官方建议使用PHP4。我个人感觉PHP4.4.1相对会好点。
4、MySQL 4.1.20 ,官方建议使用MYSQL4,我也觉得MYSQL5不是很好。


下面是发现“在Windows下ActivePerl必须以perl.exe命令行方式”问题的记录过程:

最近XMUBLOG运行一些插件的时候,cgi页面会显示'绝对路径' script produced no output 。出现这种情况有时候过一会就会恢复正常,有时候需要重启动IIS才能恢复正常。

最初我怀疑是服务器CGI的加载设置问题,而联系提供商发现服务器已经将ActivePerl设置成以ISAPI方式解析CGI程序。于是开始怀疑MT插件的问题,昨天晚上就对插件进行测试,发现了是blogroll出现的问题,并且还发现如果使用英文后台就不会出现这种情况。我联系了汉化作者平生一笑,他很热心并登陆官方网站查找原因,MT官方网站有类似的案例,解决方法是去掉多行字符串。也就是说如果我要解决插件的问题就得大规模的将tmpl进行整理,当然我也不会有这种耐心去整理。

下午istef上线时候,我把近期出现的问题和他进行了交流,他告诉我目前我们使用的这台WIN2003服务器在TMPL环境中只要出现多行的字符串就会有no output。于是我上网搜索了下如何在服务器上解决这个问题。有一方法是:设置IIS虚拟主机相应应用池,进入点属性,进去性能将web园设置 3-5 就可以解决这个问题,如果以后再出现,可再设置多一些。

这样设置后插件问题是暂时解决了,可突然间整个后台时常出现no output,应该是因为web园设置多个,如果服务于一个池的工作进程遇到 ASP 锁,那么其他工作进程仍可以供应内容并接管锁定的工作进程的工作。用此方法可以在no output的时候刷新进入其他进程,然而这样设置了还是没解决根本问题。最后我还是决定将BLOGROLL禁用了,大家加连接还是直接改模版吧。

本文信息

» 跟踪本文: 手机WAP
» 发表日期:2007年02月11日12:04 AM
» 分类: 搭建 Install
» 作者:bb
» 本文链接:http://bblog.biz/movabletype/_install/windows_perl_exe.htmlEDIT
» 本文引用地址:本文不允许引用
» 本站留言支持:html标签、coCommentgravatar
» 书签:Add to 365KeyAdd to del.icio.us百度搜藏Add to Yahoo
» 现有评论:-、现有引用:-
» 评论审核:直接点击“我要回复”评论文章,需要管理员验证后才能显示,感谢你的回复.

评论(-)

本文不允许评论

引用(-)

本文不允许引用

我要回复

昵称:   记住我的用户信息:
邮件:   Subscribe to This Entry:
主页:
Very Happy Smile Sad Surprised Shocked Confused Cool Laughing Mad Razz Embarassed Crying or Very Sad Evil or Very Mad Twisted Evil Rolling Eyes Wink
Short Cuts
Search my Blog
Subscribe This Entry
  • Enter your Email address:
Archives
Vote
评价本文:
Category Entries