For installation of Movable Type 3.2 on Windows 2003, I do so many test and ask a lot of questions on the Movable Type Support forum and got no answer. Yesterday, I join the following mail group: perl-win32-users. I received the right answer same day. That’s a good place to get help and find the real expert like Jan Dubois.
IIS6 changed the default directory for CGI script, so you could say IIS6 is the problem. On the other hand I don’t think it was ever specified that you could rely on the current directory being any specific value, and using relative paths in CGI scripts is just a bad idea.
I had a one more test today. I installed the native Movable Type 3.2 in the root folder of the website in the Windows 2003. eg, http://www.yoursite.com/mt.cgi It works. When I changed it to a subfolder under the root, eg, http://www.yoursite.com/mt/mt.cgi the error came. Even I set the subfolder as an application, the starting point from the subfolder, still error.
So I know the IIS6 has some bugs in this area. In IIS4 or 5, I set it as application and the Movable Type 3.2 can got the default directory from the starting point. In IIS6, It alway use the root as the default directory.
When I change the code:
use lib 'lib'
use lib 'mt/lib'
I install all files under subfolder “mt”. It works again.
So that, never use relative path in the perl code, if the code might be used under subfolder in the IIS6.