Movable Type Installation on Windows Server 2003
Note: This article was written in 2008. Movable Type has hopefully changed quite a bit by now, so you may not want to use the following instructions.
Wow, what a pain. I'm glad I didn't personally pay for this software. I thought this was yet another PHP content management system.
Nope, it's Perl.
To hopefully save someone from searching all over the web and back, here are the problems I encountered while installing. This guide assumes a semi-proficient knowledge of IIS configuration.
First off, make sure you install ActiveState's ActivePerl on your server. Manually configuring Perl is not something I'd care to dive into. If that's your bag, go to CPAN (and why the hell are you reading this guide?).
Using the IIS Manager, navigate to your website and choose "Properties". Under the "Home Directory" tab, click the "Configuration" button.
In the Application Configuration window, click the "Add" button.
Use the following values in the Extension Mapping dialog:
C:\Perl\bin\perl.exe "%s" %s
Verbs: Check "Limit to:" and enter
Uncheck the box labeled "Verify that file exists" (this will speed execution on scripts)
Next, select the "Web Service Extensions" item on the left of the IIS Manager (at the same level as "Web Sites"). Select "Perl CGI Extension" and click the "Allow" button.
I already had PHP installed on this server, so I'm skipping that step for this guide. PHP is far less tricky to install, anyway, and there are extensive guides for this already.
Fix Shoddy Installation Procedures
When navigating to my Movable Type directory, I immediately encountered the error "CGI Error The specified CGI application misbehaved by not returning a complete set of HTTP headers."
Bad CGI application, bad! Smack it on the nose with a rolled up magazine!
First off, you should run the
mt-check.cgi script to make sure everything's on the up-and-up. If the script runs successfully, you've successfully installed and configured ActivePerl. Yay, you're halfway (yes, halfway) there!
Near the top of this page, you should see the following:
Current working directory:
MT home directory:
The MT Knowledge Base says to download
this modified Bootstrap.pm file, and replace it with the version on your server. I honestly don't know what's different about it, or why they couldn't include it with the installation, or even if it does anything different. Mindlessly obey.
The same page also advises to "Create a new "virtual directory" under IIS which points to the physical directory where the Movable Type CGI files are located (i.e., the "MT home directory" mt-check.cgi reports)" That explanation is unhelpful. What it should tell you is "Do not install MovableType directly into the folder you wish to present to the world." As in, I moved the entire thing to
/cgi-bin/ and created a virtual folder named "blog" under the root folder pointing to
CGIPath variable in
mt-config.cgi should match your virtual folder name (like
Install MySQL Driver
Oops, now navigating to the blog URL results in an error saying that the MySQL driver is missing (sharp readers will notice this was missing in
mt-check.cgi as well, I did not). On your server, run the ActiveState Perl Package Manager, which should be in your Start menu. If you scan through all packages, you'll notice a DBD-mysqlPP module. This will not work, as far as I know. You need to add another repository source to get the actual module you need.
In PPM, go to Edit > Preferences, then go to the "Repositories" tab in the preferences window. Add the CPAN repositories to its sources by either selecting "uwinnipeg" from the "Suggested" list, or do what I did manually. Enter "CPAN" for name, and
http://cpan.uwinnipeg.ca/PPMPackages/10xx/ to the location box, then click the "Add" button. You should now have
DBD-mysql available for installation. Install it.
That should be it! As far as configuring MovableType goes, that's where I get off, because this installation was for a client who already knew how to use it, and already had his login information in the database (this was a server move).