MovableType Successfully Installed on Windows XP

To be honest, I don’t know too much about Perl. However, to make the best weblog system work – Movable Type, I installed Perl onto my Windows XP machine from scretch. I believe I am not alone to install MT to Windows XP machines – although I believe there will not be too many people doing so – so I’d like to record the steps for other’s reference. It is also a good resource for myself if I need to rebuild the server.


Windows XP

Inetnet Information Server (IIS)

Install Perl on Windows XP

  • Download ActivePerl for Windows XP from ActiveState. At the time I downloaed, the version was ActivePerl 5.6.1 build 633.
  • After registering my user information, I choosed WIndows MSI package, which is 8.31M in size.
  • It took me about 2 minutes and 51 seconds to download – thanks to the broadband provider – China Great Wall Broadband Corp[Chinese site]. I haven’t dreamed of downloading files larger than 5M in 10 minutes before.
  • Install the MSI package. There is no any problem during the installation. I accepted all the defaul settings expect changing the default location from c:\Perl to c:\Program Files\Perl. I believe it is always good to follow the Windows convension instead of seeking for a place in root directory of C:\. This makes the disk hard to manage. Update: I am changing my mind recently. “C:\Program Files” folder is special in terms of Read-only settings and security permissions. Moving programs from their original location to this folder may bring unneccessary trouble if the program has never been tested in this environment.

Download MT source code

  • Download the MT source code from It is only 299K in size and took me 5 seconds to get it from the other side of the Pacific.
  • Having MT-2.21.tar.gz on my disk, I met the first problem. I rely heavily on Windows XP to extract all .ZIP files and don’t use WinZip any more, but it seems I need to get my Winzip back. OK. Download a trial version from and continue.
  • Now all the source code is located in C:\Inetpub\Wwwroot\Mt folder, which can be accessed via I am very serious about naming convensions. I cannot bear to put all the files directly into the root folder.

Configure IIS for Perl and perl script with .CGI extension to work

  • I know it is wired for more green hand to have CGI run on Windows computer. At this time, if anyone access, it will prompt to download the file instead of see the result. I configured IIS to recognize .CGI extension just as it recognize .ASP or .SHTML.
  • In Inetmgr.exe, right click MT folder and select Properties. Click Create button in Application Settings area on Directory tab. Now we have created a seperate application.
  • Click Configure and check the program to parse .pl files. It is C:\program files\perl\bin\perl.exe “%s” %s for my server.
  • Note: The following changes can be changed on website level, no applicaiton level. Click Add and enter the same parsing program (C:\program files\perl\bin\perl.exe “%s” %s for my case) and enter .cgi to Extension text box. Click OK.

Configure MT to work on my site

  • Open MT.cfg
  • Changed the CGIPath to
  • Changed DataSource to c:\inetpub\wwwroot\mt\db\ (Alex reminded me that I need to state that you have to create the db folder yourself. The db folder does not exist by default).

Updated: Install additional MT modules

Before you can run your MovableType, you still need to install more required ActivePerl components. As stated in Checking for Perl Modules section of MovableType Installation menual, you need to run

At the time I downloaded ActivePerl, it includes most of the required modules except the following:




Typically, you need to follow these steps:

1. Start -> Run

2. Type “cmd” and click “OK”

3. In DOS command line, enter “PPM” (without quotation marks)

4. When PPM> prompt apprears, type “Install HTML-template”

5. Wait until it is installed, then type “Install Image-Size”

6. Type “Install DB_File”

7. Quite PPM program.

Thanks for Jeff for pointing this out. I forgot to add this item before.

Updated again Fail to Install DB_File

If you see this error message when installing DB_File

PPM> Install DB_File

Install package ‘DB_File?’ (y/N): Y

Installing package ‘DB_File’…

Error installing package ‘DB_File’: Read a PPD for ‘DB_File’, but it is not inte

nded for this build of Perl (MSWin32-x86-multi-thread)

You may try to follow the steps below:

Thanks for Samuel Wan for pointing this out for me. I have also wrote another blog entry on this: DB_File Error When Installing MovableType

Complete the installation

  • After all the steps are perfomed, there is very little work left. Just follow the installation instruction and it works very well.
  • The user manual is also very good resource to go ahead to configure the MT system.

Updated Sending Email on Windows XP

Sending email on Unix system seems easy. Just configure the sendmail command and it will work. Typically you don’t have any SMTP server that you can configure MT to send to. To port MovableType on Windows system (Windows 2000 or Windows XP or Windows .NET Server), you will need to configure the SMTP services of IIS.

  • Check you have IIS install with SMTP service. Start -> Control Panel -> Add/Remove Programs -> Add/Remove Windows Component. (or simply Start -> Run -> AppWiz.cpl). Ensure IIS is selected. You may also want to click Details… button to see if SMTP is installed within IIS.
  • Make sure SMTP is started. Start -> Run -> InetMgr.exe. Make sure SMTP is up and running.
  • Configure On properity sheet of SMTP Viture Server, click Relay button on Access tab. The default setting is “Only the list below”. Add the IP address of the server your MovableType is hosted to the list. Or, select “All expect the list below”. The later one is not recommended since it may open a door for spammers to use your server to send spams. (Microsoft has more detailed articles on configuration of SMTP Service.)
  • Configure MovableType to send mail using local SMTP server. Uncomment the lines below in mt.cfg file.

    MailTransfer smtp

    SMTPServer localhost

    Replace localhost with the host name of your SMTP server if you are hosting the servers on two machines.


  • I’d like to thank Geo, who writes for He inspired me with the idea of WebLog. After talking with him on the issue of Google’s block in China, I was aware of the weblog trends and joined it.
  • I also want to thank andersja, the owner of anderrsja’s blog. His site on weblog are very well done. I learnt a lot on categories and the pertential usage of MovableType from his site.

This posting is provided “AS IS” with no warranties, and confers no rights.

126 thoughts on “MovableType Successfully Installed on Windows XP

  1. Thanks for your feedback and congratulations with getting Movable Type running on XP – very cool (I haven’t seen it done before :-)

    Happy blogging!

  2. I will follow your steps to migrate my Movable Type installation to Windows 2000 Server from FreeBSD.

    But I will go deeper: I’ll try to set it up for use a Microsoft SQL Server database, instead of MySQL.

    Regards from Argentina!

  3. MaTu,

    It is good that this guide can help you. I am going to add some details to this log so it can be of help for more readers.

    It is very good to port it to SQL Server. Good luck. Please also share your steps after you have done so. I’d like to add your link to this page later.

    Good Luck.

  4. I am delghted to learn that my humble site inspired you to start the same. You know, I myself was inspired by other site.

    Good luck and all the best to you!


  5. Geo,

    I’d like to say thank you again for your site. Did you remember our conversation on the ban of Google in China one week ago? You were like a news reporter. It is the first time I found the MovableType and more importantly, you inspired me that I can be a report too and tell others about what is happening. Take the Google’s case, I am in China and I can monitor everything closely, while others may need to read news to get update. That is the main reason I begin to create my own blog. I am very luck to have known you.

    Jian Shuo


    Jian Shuo Wang

  6. Hi Jian;

    Ni Hao Ma?

    I managed to install Moveabletype into free server as my own server doesn’t support Perl/PHP/CGI. I don’t know much about programming stuff and to be able to install Moveabletype without a major glitch is a feat to me. :-)

    I have a question, why did you install perl into your Windows XP? I mean if my webserver do not support Perl/PHP/CGI, I still be able to install it into my local PC and rerouted the path/result to my webserver?

    I’m lost here.


  7. Hi nsalleh,

    Thanks for writing comments on my blog. Congratulations that you installed MT to your server successfully. I noticed that your log is hosted at Does netfirms provide all the requirements for MT? I never tried it yet.

    Regarding the question, “why did you install perl into your Windows XP”, it is a very good question. Why? First of all, I just installed broadband in my house with high speed and real and relatively static IP address. So I have a good reason in host my site on my own PC. Since the OS on my PC is already Windows XP Professional, after I decided I am going to use MT, I went to web and found ActivePerl and all the required component. I am lucky that I setup everything with one hour. It is also a feat to me. (I learnt the word “feat” from your post. I didn’t know this word before – English is not my native language.)

    I am not sure about the mean of the sentence “I mean if my webserver do not support Perl/PHP/CGI, I still be able to install it into my local PC and rerouted the path/result to my webserver?”. What is “rerouted the path/result to the webserver”? Let me guess. I tried to host the executable on my own machine and FTP the result static page to my server (, which is much stable than my PC. I asked about this function in MovableType forum (;act=ST;f=14;t=7880), but it seems no result yet.

    Jian Shuo Wang

  8. hey,

    I followed you instructions and everything worked fine. However, now when I want to REBUILD the site after posting, I get this error.

    Writing to ‘C:\inetpub\wwwroot\blog\archives\000002.html’ failed: Opening local file ‘C:\inetpub\wwwroot\blog\archives\000002.html’ failed: Permission denied


    Another question I have is that I want to setmy blog so that I can type loaclhost/blog and be able to see my blog; right now I have mt-files in wwwroot\mt (with cgi) and static files in wwwroot\blog. Should that work?


  9. Hi Pagal,

    Thanks for writing comment to my blog.

    First of all, I need to disclaim that

    a) I am not familiar with Perl, as I stated in the first sentence of this blog entry.

    b) I may not be able to help you to troubleshoot this strange problem since I just used the steps listed and it works like a charm. So I didn’t met this problem.

    After you read the disclaimer, I will try to give you my immediate suggestion.

    1) Please make sure c:\inetpub\wwwroot\blog folder is there before you try to rebuild. Based on my experience (may not be right), MovableType will NOT create folder for you. You need to create the folder “blog” by yourself before rebuild. I believe this is the most possible cause of the problem.

    2) Have you tried use the default path, that is, use c:\inetpub\wwwroot to store the archives?

    3) If the step 2 does not work too, please check the Security setting of c:\inetpub\wwwroot. For troubleshooting propose, set it to be EVERYONE Full Control (Right click -> Properties -> Security tabe -> Add -> Everyone -> Check Full control -> OK) If this works, it should be security reason. Please note that setting everyone full control to the folder is only for testing propose. Remain this setting may cause security holes of your server.

    If it still does not solve the problem, I suggest you post the question into MovableType’s Support Forum at . Maybe somebody there has encountered the same problem as you and can help you.

    Jian Shuo

  10. Hi,

    Followed your installation instruction.. the only thing missing is the installtion of the Db_File from perl.

    ppm> install DB_File

    and it all works out.



  11. I have been trying to install MT on my Windows 2000 server for a very long time. The biggest problem came from trying to install the DB_File module!

    After much searching, I came across this website: “”, which mentions a similar difficulty installing the db_file module. The webpage walks through the installation of activeperl 5.8 (or higher), and describes the following steps:

    > cd \perl\bin (modify to match your directory)

    > ppm

    ppm > repository add

    ppm> install GD

    ppm> install DB_File

    Now, I’ve tried typing “install DB_file” many times without success, but I successfully installed DB_File after adding the repository and installing the GD module first.

    I love movable type, and hope that this post will help others who have experienced problems with ActivePerl and DB_File

    -Samuel Wan

  12. talked too soon, actually ppm says all went well. DB_File 1.806 successfully installed…


    mt-check.cgi continues to say DB_File is NOT installed!!

    and if I try to go to mt-load.cgi I get


    Unsupported driver MT::ObjectDriver::DBM: Can’t load ‘C:/Perl/site/lib/auto/DB_File/DB_File.dll’ for module DB_File: load_file:The specified module could not be found at C:/Perl/lib/ line 83.

    at C:/Perl/site/lib/ line 251

    Compilation failed in require at C:\val\mt\lib/MT/ObjectDriver/ line 9.

    BEGIN failed–compilation aborted at C:\val\mt\lib/MT/ObjectDriver/ line 9.

    Compilation failed in require at (eval 3) line 1.

    BEGIN failed–compilation aborted at (eval 3) line 1.


    any info would be appreciated.


  13. hello

    i had the same problem

    check if libdb.dll (active perl usually puts it in C:\Perl\bin)

    is in the system path.

    On XP(and maybe NT) go to settings->control panel->system->advanced

    click Environment variables and append

    ;C:\Perl\bin (or whatever in your case)

    to _system_ (not user) PATH

    apache does not run scripts under your name by default

    i hope it helps

    DB_File windows libdb.dll “Can’t load”

  14. Hi Jian Shuo,

    Good to have you here, sharing knowledge and provide advice.

    One question, can MT support Chinese language ?


  15. Everythink is perfect

    The Instalation was completed without any errors

    Thank You

    my web site is under construction now but i promise that I`ll put a link to this site in mine.

    Thanks for all

  16. Just to let you know this guide has saved me many hours of banging my head against the wall. I have just one question how did you get it listed on google?

  17. Matthew,

    Thanks for letting me know that my site helped you. It is a great gift for me too.

    To get a site listed in Google, sometimes it is very simple – create a useful website and Google will find you, eventually.

  18. Hi all,

    I’m now installing MT on WinXP/Apache2/Perl5.8/MySQL3.23.55 and have a few questions. Everything but MT is setup and working properly.

    First, what exactly is DataSource in mt.cfg supposed to refer to? That is not very clear from the documentation.

    Also, I’m having trouble with DB_File and DBD::MySql, like many others have. DB_File seems to have all the correct files and directories in the right place, but I get the standard error (Can’t load ‘C:/Perl/site/lib/auto/DB_File/DB_File.dll’ for module DB_File…) when I load mt-load.cgi (or in my case).

    Is there some configuration script to run for DB_File, or some config file setting to edit to get it to work?


  19. Hi again,

    I just got it all installed and setup properly. Thanks to Jian Shuo Wang and Deane Barker for the info on your sites and various postings on the subject (at MT help forums too).

    It took me two whole days to get it running on WinXP/Apache2/Perl5.8/MySQL3.23.55. The problem I had was that for some reason, mt-check.cgi ( for win32) and mt-load.cgi ( for win32) did not work when called from a web browser (http://localhost/mt/, http://localhost/mt/

    I finally figured out that they ran just fine from the WinXP command line, and that I had DBI::mysql and ImageMagick configured just fine the whole time. Actually I did get a popup error that Perl56.dll could not be found when running at the command line, but I just ignored it b/c I’m using Perl58.dll, and b/c it otherwise worked correctly and returned the correct results in the command line.

    Anyway, once I ran “perl mt-load.cgi” from the command line, I could then browse to http://localhost/mt/ and that worked.

    Also, adding e:\mysql\bin to WinXP PATH was necessary too.

    Thanks again for the help everyone.

    PS – I’m running MT on localhost just to experiment and learn, I don’t have any plans to put it on a public site anytime soon.

  20. I tried the configuration for iis/smtp. However when I try to send notifications, I get the following error: Error sending mail (Sending mail via SMTP requires that your server have Mail::Sendmail installed: ); try another MailTransfer setting?

    ANy idea what I could’ve done wrong?

    (Win2k/ActivePerl 5.8.0/MT2.6.3/iis/smtp)


  21. Jian, I installed Moveable Type sucessfully. Can you let me know how to have a Comments link on my Weblog, I can’t have other people to post comment on my weblog.

  22. Nitesh, try these steps:

    In MovableType configuration console:

    1. Click on “Blog Config” on the left toolbar.

    2. Click Preferences

    3. Scroll to the last check box “Allow comments” on by default? . Check it.

    4. Click Save to save the configuration.

    I remember it is not checked by default. Hope it helps.

  23. Holy crap is installing this thing hard.

    I did the instructions on this website (by the way – great website).

    I had to install Service Pack 3 on my Windows 2000 box in order for the latest MSI from Active State to work.

    I loaded all three Perl Modulues successfully. I edited the mt.cfg file per this page and I referenced a directory that was not there – c:\inetpub\wwwroot\mt\db which I created and then I got the login page but there was nothing in the DB directory.

    That’s where I had to run from a command prompt – Perl mt-load.cgi and voila – my db directory how had 36 files which look like they belong there.

    Now I can run and I get a login screen but I don’t know the username or password – I have been looking at manuals and have not found it yet – what is the default password for MT?



  24. Alright – I missed a section, after running mt-load and creating the database – I see the default username and password – Melody/Nelson.

    However now when I enter those two pieces in to the login screen it does not go anywhere.

    Any thoughts?


  25. Installing MT onto XP from scratch (including PERL and Apache).

    Forgive the length of this message, here is a start-to-finish account, including getting past the DB_FILE error.

    First I had to get perl and apache, searching around I found a set of different Perl possibilities:

    I selected the following because it contained a complete installation of the latest perl and apache with modules.

    Perl/Apache/mod_perl/mod_ssl/php for Win32.

    Perl-5.8-win32-bin.exe, consisting of Perl-5.8.0 and Apache 2.0.43

    I grabbed the whole directory: Perl-5.8-win32-bin

    and then followed the joining instructions to create a 37MB file

    this has a Perl, Apache2 and lots of modules

    Running Perl-5.8-win32-bin.exe unzippled into three directories, Perl, Apache2, and Readme’s

    following the readme i put perl and apache2 directly under c:\

    then I ran the perl config accepting all defaults:

    C:\Perl\bin> perl

    Add the location of the perl bin/ and the Apache2 bin/

    directory to your PATH.

    (append “;C:\perl\bin;c:\apache2\bin” to PATH

    set the following environment variables (these are under control panel: system: advanced: environmental variables)




    Apache didnt’t behave itself from the command line (as listed in the readme) but in the Apache2/bin directory there is a file: ApacheMonitor.exe which allows you to turn on apache on and off as a service (and defaults it appears to setting apache to run automatically; you can change this in Services)

    Then i edited the apache config file:


    (I had to use wordpad first to open some of these ‘text’ files, add a space somewhere and save to take care of the little squares that showed up on notepad)

    I made sure the following were set:

    ServerRoot “C:/Apache2”

    DocumentRoot “C:/Apache2/htdocs”

    Then I could point my browswer to


    and see that apache was running.

    Now to MT

    I unzipped/tarred it to



    then I made the following directories:




    then copied from MT-2.63-full-lib




    into C:\Apache2\htdocs\mt-static

    the rest I copied into


    Then I edited C:\Apache2\cgi-bin\mt.cfg

    with the following lines:

    CGIPath http://localhost/cgi-bin/

    DataSource C:\Apache2\cgi-bin\db

    StaticWebPath /mt-static/

    [I suggest rebooting at this point]

    Now for the tricky stuff. I tried to access


    as directed, and got a horrible DB_FILE not detected

    (thanks to some webpages) it turns out that you can run this program from the command line:

    c:\apache2\cgi-bin perl mt-check.cgi

    and it finds DB_FILE

    so then I ran

    c:\apache2\cgi-bin perl mt-load.cgi

    and that worked too

    but still I couldn’t get




    to work from the browser. Still the same DB_FILE problem

    Finally I REBOOTED, it all worked!

    enter Melody and Nelson as password to get in, then change these

    I’m too tired to figure out if I had rebooted where I suggest above whether it would work.

    Anyway, I hope this helps, let me know if i missed something.

  26. Jom, very nice job! Although I haven’t try to follow all the steps you listed, but it seems complete. Thanks for sharing with us. Anyone who didn’t solved the problem using my steps, please try Jom’s. Let him and me know by posting after this thread.

  27. Only one thing I really can’t understand: why isn’t this clear info on the MT website ??

    It enabled me to get MT running within half an hour, thank you !

  28. Just posted a link to this resource. Curious, do you have trackback enabled?

    Thanks for taking the time to document it. I hope to be following your lead later this week!

  29. Kevin, I have enabled TrackBack to this entry. I don’t why most entries on this site allows trackback instead of this one. Thanks for linking to Wangjianshuo’s blog

  30. So you want to install Movable Type? Part 1

    So you have decided to put the effort into setting up your own web server using MS Windows 2000 Server and IIS 5.0. Please don’t ask me about Apache web server installs as I haven’t used Apache before. Please visit…

  31. I’d like to add my thanks to the many I’m sure you’ve already received. Your page made it very easy for me to get MoveableType configured on my Win2K machine. If this link hadn’t showed up when I was searching the MoveableType site when I was trying to find installation help, I’d probably still be stuck.

  32. Thanks very much for psoting this information. I would have been stuck without it.

  33. Thank you so much for posting this information!

    Very clear and it all worked for me on the first try.

  34. MovableType On Windows 2000/XP

    As a programmer of nearly 8 solid years, I have often heard that getting stuck on a problem usually means you have to walk away, take a few moments (or sleep), and come back to the problem. Yesterday and today…

  35. MovableType on Windows 2000

    Came across a great article that helped in the installation of the blog software. We did have to pay for our license, however, there is a free license you can use for personal (not-for-profit) use….

  36. This is very helful…I was wondering if any of you have come accross this error in trying to run mt-check, or any cgi script from local browser. I am using IIS. Any info would be greatly appreciated, Thanks!!


    CGI Error

    The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are:

    Backslash found where operator expected at c:\inetpub\wwwroot\mt\mt-check.cgi line 1, near “Perl\”

    Backslash found where operator expected at c:\inetpub\wwwroot\mt\mt-check.cgi line 1, near “bin\”

    syntax error at c:\inetpub\wwwroot\mt\mt-check.cgi line 1, near “Perl\”

    “use” not allowed in expression at c:\inetpub\wwwroot\mt\mt-check.cgi line 7, at end of line

    BEGIN not safe after errors–compilation aborted at c:\inetpub\wwwroot\mt\mt-check.cgi line 20.

  37. Jeff, I have no immediate idea about the error since I didn’t encountered the error. But it seems that the source code of the MovableType is modified. As the first line, it should be something like

    use /bin/perl/;

    Check your page. According to the error message, it may be some backslash (\) in the string, while it should all be forward slash (/).

    Check if it is the case. If so, change them back to /

    I am not sure what will cause the change in the line.

  38. Thank you so much for posting this information. The documentation is severly lacking in the Win32 department and this page did the trick. I could not have done it without you!

  39. Hi jian shuo,

    This is an excellent resource, thanks!

    So I had many _many_ a problem. The one that your site didn’t cover regards permissions.

    Using Apache and Active State Perl, mt-check.cgi would not find the DB (same errors listed on this page with the same symptoms like it works from the command line, etc.) Some investigation showed my @INC was including the right paths.

    Finally I noticed my permissions on my c:\Perl\site\lib\ directory were, in UNIX speak, 700.

    If you have cygwin installed:

    cd c:\Perl\

    chmod -R 755 */

    chmod -R 644 *.*

    or right click and set the security of the directory making sure they SYSTEM group (or whoever apache is set to run as) can see it.

    Hope this helps. Thanks again.

  40. Just to let everyone know, this also works with IIS6 on Windows 2003.

    Great site, Jian! I wouldn’t have been able to set this up without it!


  41. Great info here. Very useful. I wanted to a add a note that it is possible to run movabletype with mysql on Windows as well – I a musing Windows 2000 with SP4.

    You can get mysql for Windows from the website and if you install PHP as well ( you can set up phpMyAdmin to make it easier to manage. Once that is set up and you have mysql running, you will need to run the following:

    ppm> install DBD-mysql

    so that you can use mysql with movable type.

    From there, you need to follow the movable type install guide to set it up to use mysql and you are set.

  42. i just want to install the perl language into my computer. i just want to compile and run a perl program. i don’t understand about this cgi and iis stuff? please help. i have a windows xp.

  43. Hello. I just want to thank you warmly for putting this guide on the net. You are now the main reason for me being able to publish a new weblog on innovaiton in Denmak shortly (it is currently running on a server behind my firewall).



  44. A word of warning to people!

    Be very careful using DB_File. They change their file format often, and I am currently getting screwed by that fact.

    I am moving my blog from one server to another. The problem is that the old server has DB_File 1.73. The new one has 1.806. The two are incompatible with each other. To make matters worse, I can’t find the 1.73 package that I used (it’s no longer on ActiveState).

    In case you’re curious what you’re using:

    PPM> query DB_File

    If you do go the DB_File route, save a copy of the ActiveState MSI and a copy of the DB_File package. Trust me; you don’t want to be where I am now.

  45. I followed Jom’s instructions (thanks a billion for that) and APAche, Perl, and all the modules for Apache seemed to install fine. I ran all the required scripts for MT and with mt-check.cgi it says I have everything installed fine for MT to work; however, when I try to access Movable Type it gives me a ” 500 Internal Server Error” page. It seems like everything should work, but when I go to http://localhost/cgi-bin/mt.cgi I don’t get the login screen like I should. Any suggestions? I think it may be a permissions thing, but I’m not completely sure.

  46. ok so the first part of the tutorial helped me install perl and execute the install from ppm> does anyone know how to install this on windows running apache? i’m lost as to what i do next and no forum or website lists how to do this… arrr so agrivating… pls help

  47. jom or who ever else can anser this… i followed jom’s directions up above. few exceptions though, i had to make my ‘cgi-bin’ folder c:\apache2\htdocs\cgi-bin because i have to use :8080 with my cable provider to access the cgi-bin dir for this step

    ‘CGIPath http://localhost/cgi-bin/‘ – jom

    ‘CGIPath http://localhost:8080/cgi-bin/ – me

    i get the internal server error like the guy above me in the article….. any suggestions??? remember that i’m running this off my cable at home and have to use :8080 for localhost:8080 to acces htdocs! … please i swear if someone gets this to work i’ll write the most indepth tutorial for windows so ppl don’t have to go through this shit!

  48. hi,

    thanks for the info. I am going to move to MovableType and going to use your tips. But hey, it seems like XP Home does not come with IIS. Did you use XP pro or how did you manage?



  49. Dear Jian Shuo Wang & Friends,

    This page of yours has been very helpful to me in the past. Using the information you have provided here has helped me set up moveable type on my windows xp server running IIS 5. In the past i’ve successfully installed perl and configured it for MT a few times. I’ve even setup php & mysql to run another blogging system called ‘pmachine’. However, I’ve recently wiped my primary drive and reloaded all of the needed programs to restart MT but for some reason for the first time I am having a very difficult time installing perl! I know this isn’t particulary a perl forum, but i’ve read all of the documentation and searched everywhere for an answer, uninstalled and attempted to re-install perl 5.6 & 5.8 to no avail and i was wondering if anyone that posts to or reads this page could make a suggestion? I keep running the MSI installer and it says it is successfully installing perl (which it has done in the past) but perl just does not load? Have i gone totally insane or senile? I’ve asked activestate support but haven’t heard anything back yet. I would be very grateful to anyone who could point me in the right direction again! Thanks!

  50. What do you mean by “but perl just does not load?” Does it mean that you cannot run perl scripts or you cannot run perl CGI? If it is the former, it may be the environment parameters’ problem. Try to locate PERL.exe and try to run pathto\perl.exe to see if it works.

  51. When I first installed Perl successfully earlier this year, all I needed to do was run the MSI Installer and everything worked perfectly. Now any version I try to install and run the Perl Package Manager from I get this message:


    ‘perl’ is not recognized as an internal or external command,

    operable program or batch file.

    You do not have Perl in your PATH.


    I had never seen this message before. I tried uninstalling and reinstalling both current versions but nothing has worked yet. I tried reading the documentation and searching for answers on the internet but I have found nothing to remedy this yet. It is probably a simple solution I am overlooking? Right now I am currently uninstalling it for the 3rd time and I am running out of ideas. Thanks!

  52. Thanks for the advice. I’m not sure if that was the problem, but after I re-installed ActivePerl 5.6.1 build 633 it started working. Now the only problem is that mt-check.cgi hangs:


    Movable Type [mt-check.cgi]


    Current working directory: c:/inetpub/wwwroot/mt

    Operating system: MSWin32

    Perl version: 5.6.1

    (Probably) Running under cgiwrap or suexec


    HTML::Template (version >= 2)…

    HTTP/1.1 502 Gateway Error

    Server: Microsoft-IIS/5.1

    Date: Thu, 04 Dec 2003 17:58:07 GMT

    Connection: close

    Content-Length: 186

    Content-Type: text/html

    CGI TimeoutThe specified CGI application exceeded the allowed time for processing. The server has deleted the process.


    Sometimes it gets a little bit farther than the “HTML::Template (version >= 2)…” statement. I have set my CGI script timeout to 999999 but that doesn’t fix it. Any further advice would be extremely welcome! Thanks!

  53. Thank you!, this really helped me get over some of the hurdles I came across when installing MT on IIS6 using mysql.

  54. An oddity which I’m sure is easily solvable… thus very annoying.

    I have everything installed perfectly using win xp pro and db_file on IIS. I can log in, edit, manage etc but I am unable to ‘view’ my site… or any other site I have made.

    I have entered the .cgi file extension with the perle.exe but…

    I keep consistently getting a 403 permissions error. I have tried to make sure all the permissions on the blog folder are fully writable ‘scripts and executables’ but I’m missing something. Anyone have any idea what other permission I need to set? Jian could you share with me your settings? I appreciate any help… this whole blog idea is fantastic for documentation. Now I just need to get over this last hump.

  55. Hi Mace,

    the 403 error typically appear not because the Read/Write permission. It is typical the hint that you didn’t set your “Default Page” correctly.

    If you browse a sie or folder without a file name, for example, IIS will look for the default page under that folder and return the file. In my site, I set it to be index.asp, index.htm. So and are the same for me.

    If you name your default page as, for example, index.htm while you only have default.htm in that folder, the IIS will return 403 error – “you don’t have permission to browse the folder”, since a default page is not found.

    So here is my suggestions:

    1. Find out your default page setting in IIS.

    2. Either change your default page in IIS to be the default page of your blog, or change the output of the default page in MovableType. I believe you know how to change the IIS settting. The movabletype setting is at Template -> Main Index page.

    Good Luck!

  56. Mike – I know what you havnt done!

    you havnt set apache to listen to that port yet.

    you have to do that in the config file – called httpd.conf on the PC.

    the line you are looking for is:

    Listen 80

    you want it to listen to other ports too, so you can do this:

    Listen 80

    Listen 8080

    Listen 8001


    Ive had some issues with this not working exactly as I expected… it is freeware you know ;)

    Anyway, I defeated the issue by using virtual hosts. If you need info on that, send me an email, with the subject “need help with virtual hosts!”

  57. Josh/Mike,

    If you’re still having problems– make sure the first line of the .cgi perl scripts are setup for windows (to where your perl path is). For example replace

    ‘#!/usr/bin/perl’ with ‘#!c:/perl/bin/perl.exe.’

    Hope that helps.

    Jian Shuo — kudos – great site for getting mt running on win32 quickly.



  58. Larry, thanks for the tips. Although I believe Windows will use the configuration of IIS and the file extension (.pl) to determine the interpreter to be used, it may be of help in certain circumstances.

  59. Hi Jian,

    Thanks so much for the information posted on your site. I’ve “almost” installed MT on my XP Pro server. I say “almost” because I can access mt.cgi but the default username: Melody password: Nelson does not allow me to log into MT. Is there any way of resetting the default passwords? I have full access to all the files.

  60. hello,

    i have followed this tutorial up to this point:

    In Inetmgr.exe, right click MT folder and select Properties. Click Create button in Application Settings area on Directory tab. Now we have created a seperate application.

    i can’t find the location of Inetmgr.exe on my windows xp home computer. is it possible for MT to be installed on xp home?

    please e-mail me at

    thank you!


  61. Jen, you cannot install MovableType onto your Windows XP Home since Home Edition of Windows XP does not support IIS (the web server). You can try Windows XP Professional.

  62. my cgi timesout :(

    i have installed perl then put all the files on mt in a folder called mt in wwwroot, put cgi in iis, and then wrote http://localhost/mt/mt.cgi but after long time it simpl gets timeout, wat to do, by the way i m on winXP.

  63. hey jian

    I have followed the same steps to install MT on Windows Xp but, was not able to follow the following steps-

    Configure IIS for Perl and perl script with .CGI extension to work

    Configure MT to work on my site

    * Changed the CGIPath to

    * Changed DataSource to c:\inetpub\wwwroot\mt\db\.

  64. When I try and configure the .cgi extension to be read by perl. I click the configuration button and nothing happens? Does anyone have any clue what’s going on?

  65. Greetings from Canada.

    First, let me say that everyone here is a Genius!!!!

    I started this as a ‘learning experience’ and apart from a bump here (mostly my errors) and there IT ALL WORKED! I now have MT installed, and driven by Apache2. I am not quite sure what to do with it all, but I now have the option at least.

    Many thanks to all who contributed to this site, and of course to the creator – Jian Shuo Wang … forgive the pronunciation – tsia tsia Nin LoaShr!!!

    I hope to contribute my own insights as time passes.

    Thanks again.

  66. …Greetings from Canada again…

    A solid Thank you to Jom …. it was your model that I followed almost entirely.

    Thanks again.

  67. Hello from Canada.

    This is for the people running XP Home on their machines. This link will give detailed instructions on how to configure your machine for IIS. (Warning – not for the faint of heart.;)

    I have not tried this directly, but I have experimented with the files on my work station….all seems to be in order.

    Good Luck All.

  68. great tips! I was able to get MT to run on Windows 2003 Server running IIS and ActiveState’s Perl.

    However, I can’t seem to get the TrackBack feature to work – my TrackBack links give 404 errors, i.e. try this one:

    I believe I need mod_rewrite which is only for Apache web servers.

    I’ve Googled like a lunatic for IIS equivalents, (which there are a few), but I don’t want to waste time installing it if it isn’t going to be a “plug and play” proposition with MovableType.


  69. I got as far as Inetmgr.exe. I right clicked the MT folder, selected Properties, clicked Create button in Application Settings area on Directory tab.

    Then this is the part I don’t understand:

    Click configure and check the program to parse .pl files.

    It is C:\program files\bin\perl.exe “%s” %s for my server.

    Note: The following changes can be changed on website level, no applicaiton level. Click Add and enter the same parsing program (C:\program files\perl\bin\perl.exe “%s” %s for my case) and enter .cgi to Extension text box. Click OK.

  70. I just finished the installation. Thanks. But, when I login to MT I get a message from Apache shown below.


    You don’t have permission to access /cgi-bin/ on this server.

    Apache/1.3.27 Server at Port 80

    How do get permission to access the cgi-bin?

    Thanks for any help anyoone can give me.

  71. hi how are you i am having a problem running perl on my xp machne. when i use the command perl and the file name i need to run it will tell me that the perl is not a rcognized command(internal or external).

  72. It is because you didn’t put PERL.EXE into your PATH environment variable. Navigate to the directory where PERL.exe resides and you can run it, or add it to %PATH%

  73. I have to thank you it is working now. Do u give any lessons in programing in perl. i have a big file i need to extratc some information from it. Is there a way to do it in perl.

    thank you

  74. I have to thank you it is working now. Do u give any lessons in programing in perl. i have a big file i need to extratc some information from it. Is there a way to do it in perl.

    thank you

  75. I am trying to install Movable Type on Win XP Pro, with IIS5 and ActiveState Perl 5.6.0. I have everything working so that mt-check.cgi comes up, but it does recognize that DBD-mysql is installed, although Perl claims that it is. Is there something that I am missing?

    I installed DBI and DBD-mysql using the following commands:

    ppm> install DBI

    ppm> install DBD-mysql

    and everything went fine.

  76. I’m running MT 2.661 on IIS myself. Used your site to assist with the install.

    1 problem. I get email notifications for comments posted, but I don’t get any email notifications when I post a new blog entry. I added two email addresses to the Notification list within the MT interface to see if they get notified of news posts, but it doesn’t work.

    I’m using the following in mt.cfg (SMTP not Sendmail)

    MailTransfer smtp


    The IP address is a LAN IP and it points to a different server from the blog server.

    Doesn’t make sense that email works for comments and not new blog posts.

    Any ideas?

  77. DOH! I just realized that MT 2.661 doesn’t automatically send out notifications. you have to manually send one out. Well that sucks. Is there a plug-in or mod to v2.661 that will auto-send an email with excerpt + title of blog to anyone in my notify list?

  78. hey this is great – I hit the same problem on an win2003, IIS, ActivePerl set up and all works fine now that I’ve installed the missing DB_File module.

    It would help if they mention in the installation instructions that there’s this mt-check.cgi file that tells you what’s missing from your perl!


  79. Hello,

    I could add/delete/modify entries on my Movable Type 3.15 on my Windows XP/IIS.

    But when I want to upload file, first it pops a window for selecting file, it’s ok, then I click “Upload”, it shows a error page says dns error. Why?

    Here is the log of IIS,

    xx.xx.xx.xx, -, 2005/3/15, 10:01:01, W3SVC1, WENWEI-2, xx.xx.xx.xx, 437, 319, 2150, 200, 0, GET, /mt/mt.cgi, __mode=start_upload&blog_id=1,

    xx.xx.xx.xx, -, 2005/3/15, 10:01:01, W3SVC1, WENWEI-2, xx.xx.xx.xx, 0, 448, 139, 304, 0, GET, /mt/mt.js, -,

    xx.xx.xx.xx, -, 2005/3/15, 10:01:01, W3SVC1, WENWEI-2, xx.xx.xx.xx, 0, 465, 139, 304, 0, GET, /mt/images/topnav-logo.gif, -,

    xx.xx.xx.xx, -, 2005/3/15, 10:01:01, W3SVC1, WENWEI-2, xx.xx.xx.xx, 0, 463, 139, 304, 0, GET, /mt/images/topnav-bg.gif, -,

    xx.xx.xx.xx, -, 2005/3/15, 10:01:07, W3SVC1, WENWEI-2, xx.xx.xx.xx, 468, 58004, 1184, 200, 0, POST, /mt/mt.cgi, -,

    No action after the last line.

    Any idea?

  80. Hi Jian,

    I think i like your site, hope you will grant me to post, park and listen to every useful conversation you guys have.. i don’t know if MT could help..i have a private server build by a traitor friend, mu and ro.. The story is quite long so i just say, i have a problem with him. He always attack my server and, i just need a little advice if it’s ok with you guys..

    i am using windows xp too but i used apache as my webserver, php and mysql for my Ro or ragnarok online private server, mssql for my mu server..

    security settings:

    remote access: disabled

    firewall: enabled

    6 open ports:

    1st open port for my ragnarok login server

    2nd open port for my ragnarok char server

    3rd open port for my ragnarok map server

    4th open port for my mu online login server

    5th open port for my mu online connect server

    6nd open port for my http

    firewall software used:

    blackice & analogx


    2 times victim in sql injection..

    i don’t know if he could access my pc coz after he injected my

    mssql, he changed my last backup to my previous backup

    which is several days ago…

    question are:

    how to find a hole?

    how to close that hole?

    what possible software i need to use to protect my server

    from being hacked?

    what is port knocker?

    can port knocker help?

    what is the possible promblems,

    is it open ports? or

    exposed dns?

    how could i hide my ports or dns/domain?

    other say trojan can open ports, how?

    is it possible that they used trojan agains my server?

    i hope i could get some help from your site Jian…

  81. I would go for publishing a series of white papers. This tactic works wonderfully.-mature hardcores

    men getting fucked

    Teens for Cash

  82. Respected sir,

    I have more importent question,

    1. when i install windows xp professional cd in our system.

    2 after that go to start button ,and go to control panel .

    3. in control panel have more option , but i choosed Add/Remove program window in that add / remove windows component in that in the wizard window i checked IIS,then i got IIS in wizard window after clicking in IIS ok button, i could not get Inetpub folder in my harddrive.

    Please tell me the actual step.

    Thanking you


  83. hi.

    i want to study perl from starting. can u send the startup notes and what is the usage of the PERL


  84. I’m able to write and run programs from the command line interface successfully.

    1. Can you please clarify me how does these programs can be related to web based


    2. How should the HTML and .PL files be intergrated?

    Can you please send me a sample program….

  85. I see the first blog at jianshuo. It is start .

    study jianshuo write blog .

    I will study and work at shanghai. so need learn all about shanghai now.

  86. Hello,

    Need a small help. I was configuring Apache 2.2.4 in windows XP. One funny thing is that, I am unable to see the Administrator User account. With the account ‘Ashok(having Admin authority), I have installed Apache’s .msi executable. It did not give problem. I too have configured httpd.conf file as follows:

    ThreadsPerChild 250

    MaxRequestsPerChild 0

    ServerRoot “C:/Program Files/Apache Software Foundation/Apache2.2”

    Listen 80

    All the default modules as usual(I did not paste here to reduce length) and then…


    ServerName Ashok:80

    DocumentRoot “C:/Program Files/Apache Software Foundation/Apache2.2/htdocs”

    Options FollowSymLinks

    AllowOverride None

    Order deny,allow

    Deny from all

    Satisfy all

    Options Indexes FollowSymLinks

    AllowOverride None

    Order allow,deny

    Allow from localhost Ashok

    DirectoryIndex index.html

    Order allow,deny

    Deny from all

    ErrorLog logs/error.log

    LogLevel warn

    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\”” com


    LogFormat “%h %l %u %t \”%r\” %>s %b” common

    LogFormat “%h %l %u %t \”%r\” %>s %b \”%{Referer}i\” \”%{User-Agent}i\” %I

    %O” combinedio

    CustomLog logs/access.log common

    ScriptAlias /cgi-bin/ “@@ServerRoot@@/cgi-bin/”

    AllowOverride None

    Options ExecCGI

    AddHandler cgi-script .cgi .pl

    Order allow,deny

    Allow from localhost Ashok

    DefaultType text/plain

    TypesConfig conf/mime.types

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    SSLRandomSeed startup builtin

    SSLRandomSeed connect builtin

    After this setting in httpd.conf, I was trying to browse http://localhost/cgi-bin/(or index.html),

    I get the below error…

    You don’t have permission to access /cgi-bin/ on this server.

    Any help is appreciated.

  87. I want to make application not autorunable & not to show in setup process

  88. i am using windows xp too but i used apache as my webserver, php and mysql for my Ro or ragnarok online private server, mssql for my mu server..

    security settings:

    remote access: disabled

    firewall: enabled

    6 open ports:

    1st open port for my ragnarok login server

    2nd open port for my ragnarok char server

    3rd open port for my ragnarok map server

    4th open port for my mu online login server

    5th open port for my mu online connect server

    6nd open port for my http

    firewall software used:

    blackice & analogx

  89. i still can’t get install the dbi and dbd-mysql modules after download the *.ppd files. For example i put the dbi.ppd file in c:\dbi\. and then i run command :

    ppm>install c:\dbi\dbi.ppd

    but i still got errors, the installation didn;t refer to directory c:\dbi\

    Anybody help me?

    Thank you…

  90. Hi,

    I’m hoping you may be able to help.

    I am trying to use a free Perl search engine script called “Perlect Search 3.37”. It uses DB_File which I am having problems with. I have Perl 5.10.0 installed on my Win 2003 Small Business Server. DB_File is at 1.817 and Berkeley is at 4.3.29 .. IIS is at 6.0.

    I have installed all the components and the search works perfectly from my command line. I am logged onto my server as administrator. However, when I try to run the search from a browser I get:

    Software error:

    Can’t load ‘C:/Perl/site/lib/auto/DB_File/DB_File.dll’ for module DB_File: load_file:Access is denied at C:/Perl/lib/ line 64.

    at C:/Perl/site/lib/ line 252

    Compilation failed in require at C:\Inetpub\wwwroot\cgi-bin\perlfect\search\ line 55.

    BEGIN failed–compilation aborted at C:\Inetpub\wwwroot\cgi-bin\perlfect\search\ line 55.

    For help, please send mail to this site’s webmaster, giving this error message and the time and date of the error.

    I have changed permissions to just about every folder that has anything to do with running this script to “Full Control” and even changed the permissions to DB_File.dll to “Full Control” for EVERYONE and I still get the same access denied message.

    I’ve been working on this issue for about a week now, trying all different sorts of things. I’m ready to pull the last remaining bits of hair out of my head !!!

    I can get no help from Perlfect website but I see that 2 other people have had the same problems as I have from reading the comments at:

    They did not update the comments page with any resolutions, if they ever found any.

    I am fairly sure this is a permissions issue but since I am NOT a Perl programmer I just don’t know for sure.

    The other problem I have is this. If I comment IN the statement “use DB_FIle;” from the search script I die at another line #82, further into the script.

    I downloaded ActiveState Perl developers kit so I can get a line number for my source. According to the Perl PDK, line 82 is:

    82: tie %inv_index_db, $db_package, $INV_INDEX_DB_FILE, O_RDONLY, 0755 or die “Cannot open $INV_INDEX_DB_FILE: $!”; ,

    Line 82 is the first line of several subsequent database “OPEN” statements in my script:

    tie %inv_index_db, $db_package, $INV_INDEX_DB_FILE, O_RDONLY, 0755 or die “Cannot open $INV_INDEX_DB_FILE: $!”;

    tie %docs_db, $db_package, $DOCS_DB_FILE, O_RDONLY, 0755 or die “Cannot open $DOCS_DB_FILE: $!”;

    tie %urls_db, $db_package, $URLS_DB_FILE, O_RDONLY, 0755 or die “Cannot open $URLS_DB_FILE: $!”;

    tie %sizes_db, $db_package, $SIZES_DB_FILE, O_RDONLY, 0755 or die “Cannot open $SIZES_DB_FILE: $!”;

    tie %desc_db, $db_package, $DESC_DB_FILE, O_RDONLY, 0755 or die “Cannot open $DESC_DB_FILE: $!”;

    tie %content_db, $db_package, $CONTENT_DB_FILE, O_RDONLY, 0755 or die “Cannot open $CONTENT_DB_FILE: $!”;

    tie %titles_db, $db_package, $TITLES_DB_FILE, O_RDONLY, 0755 or die “Cannot open $TITLES_DB_FILE: $!”;

    tie %dates_db, $db_package, $DATES_DB_FILE, O_RDONLY, 0755 or die “Cannot open $DATES_DB_FILE: $!”;

    tie %terms_db, $db_package, $TERMS_DB_FILE, O_RDONLY, 0755 or die “Cannot open $TERMS_DB_FILE: $!”;

    I’m assuming it is failing on the first one, the open to $INV_INDEX_DB_FILE and why, I don’t know. The file exists, I have permissions set to “full control” for everybody and their uncle.

    Have you any ideas or suggestions on how to trouble shoot this issue?

    Any help at all is appreciated!

    Keep in mind that the script works, as is, from my servers command line!!!!! Just not from a web browser……..


Leave a Reply

Your email address will not be published. Required fields are marked *