作者:
最后更新于 | 最初发布于 | 分类: MT笔记
CGI Error
The specified CGI application misbehaved by not returning a complete set of HTTP headers.
所以,如果你的服务器,采用的是Windows 2003 + IIS6,而且你的MovableType没有安装在服务器的根目录下的,Perl解释器,又是用的Perl.exe命令的话,就要采用修改MovableType3.2源文件的办法,来升级了。这个方法对于那些租用,借用服务器的人来说适用。
现在有第二个方法,来自于一笑的大迁移,Win 2003下安装Movable Type。这个方法不错,前提是必须拥有管理员权限,我就可以,现在我就是采用他的方法,可以不必修改源文件。。
其实这篇文章的重点不再这里,我想要讲的是对于perl文件,一般采用两种方法,一种perl.exe命令行方式,一种是perlis.dll的ISAPI方式。都有优缺点,很多文章都只是介绍如何设置perl.exe命令行方式来解释perl的。
很少提到ISAPI方式。
首先看看Activeperl的官方文档:
Why should I use Perl for ISAPI rather than Perl for Win32 (perl.exe)?一笑讲的是perl isapi的兼容性好。不错,还有其它。
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.
总之,其实两种方式都有优劣,就看服务器管理员侧重的重点是哪边了。