The following instructions are for installing Movable Type 2.5 on a website hosted by DreamHost. I created the instructions from notes I took during what turned out to be a smooth, problem free install. I tried to write down a note for each step, but it is definitely possible I may have missed a step. The next time I do an install, I will update these notes if I discover I left out anything important. If you notice an error or missing info, I would appreciate it if you let me know at robert AT wombatnation DOT com.

If you already have MT 2.5 installed, take a look at my instructions for upgrading to 2.6.

Any text in bold should be replaced with your specific website name, database name, database user, database password, MovableType username, etc. Obviously, I did not really use ahardtoguesspassword literally as my password, and neither should you.

Create MySQL Subdomain, Database, and Database User

New MySQL domains and databases take about an hour to become active on DreamHost, so do this step as early as possible. MySQL domains and databases are created in the MySQL control panel, in the "Goodies" section. MySQL domains are special; don't create your MySQL domain in the regular DreamHost domain control panel.

  1. Use the DreamHost MySQL control panel to add mysql.domainname.com as a MySQL hostname. You don't have to use mysql as the sub-domain, but it's a common convention.
  2. Continue in the control panel to create a MySQL database. Give it a name you will remember, e.g., mtblogdb
  3. Create a new user, e.g., dbadmin, for this database.
  4. Give the dbadmin user a password - hardtoguesspassword

Download MT Install File to Site

There are a lot of ways to do this. I did the following:

  1. Download MT-2.5-full-lib.tar.gz to local computer
  2. FTP MT-2.5-full-lib.tar.gz from local computer to the domainname.com directory on the Dreamhost server

Unpack MT Install File

You can do some of the following on your local computer before uploading to your DreamHost server, but I think it is much easier to do this work on the server. While you can use Telnet instead of ssh to connect to your server, ssh is secure and just as easy to use. If you use Windows, I recommend PuTTY.

  1. Connect to domainname.com using ssh and cd into domainname.com directory
  2. gunzip MT-2.5-full-lib.tar.gz
  3. tar -xvf MT-2.5-full-lib.tar

Prepare Directories

These instructions assume you want to install MovableType into a new sub-directory called "mt" and you want your weblog's public homepage to be at www.domainname.com/blog.

  1. mkdir mt
  2. mv MT-2.5-full-lib mt
  3. mkdir blog
  4. cd mt

Edit Main Config and Password File

I use emacs as my editor. Use whichever editor you know well. I added simplified emacs instructions in case you haven't used it before.

  1. emacs mt.cfg
  2. Change value of CGIPath to http://www.domainname.com/mt/
  3. Below the line for CGIPath, add/set the following MySQL settings:
    • ObjectDriver DBI::mysql
    • Database mtblogdb
    • DBUser dbadmin
    • DBHost mysql.domainname.com
  4. Uncomment the following lines in mt.cfg:
    • DBUmask 0022
    • HTMLUmask 0022
    • UploadUmask 0022
    • DirUmask 0022
  5. Press ctrl-x then press ctrl-s then press ctrl-x then press ctrl-c to save and exit emacs
  6. emacs mt-db-pass.cgi
  7. Change the password to TheSamePasswordYouUsedEarlier for dbadmin
  8. Press ctrl-x then press ctrl-s then press ctrl-x then press ctrl-c to save and exit emacs

Secure the Files

On my system's install of Emacs, the file you are editing is always backed up with the same name appended with a ~. For example, after editing and saving mt.cfg with Emacs, you will find an mt.cfg~ file in the directory. Use
rm *~
to delete these backup files. If you use a different editor, like vim, pico, or nano, make sure you delete the backup files from your server immediately.

Otherwise, anyone who knows your directory structure could request copies of the backup files with an appropriately, constructed URL, e.g., http://domain.com/mt/mt-db-pass.cgi~. Normally, a cgi file will be executed on the server rather than served back to the browser as a file. However, a .cgi~ file just looks an ordinary text file to the web server.

Also, you should protect mt.cfg with a .htaccess file for the directory. This is clearly explained in the Movable Type instructions.

Set Permissions

Permissions for the CGI files, except for mt-db-pass.cgi, should be set to read/write/execute for you and read/execute for group and other. The root directory for your blog should also be set to read/write/execute for you and read/execute for group and other.

  1. chmod 755 mt*.cgi
  2. chmod 644 mt-db-pass.cgi
  3. cd ..
  4. chmod 755 blog

Sanity Check of Perl Install

Load http://www.domainname.com/mt/mt-check.cgi in a web browser to make sure your DreamHost server has the proper versions installed of the Perl modules that MovableType requires.

When I checked (October 2002), DreamHost had everything installed with new enough versions. The CGI script also indicated that cgiwrap or suexec were probably installed. At the time, the version of Perl on my DreamHost server was 5.00503, which is new enough for MT 2.5.

Init and Load Your New MT System

Load http://www.domainname.com/mt/mt-load.cgi in a web browser to init the system. You should see something like:

Loading initial data into system...
Loading database schema...

    Loading blog...
    Loading author...
    Loading permissions...
    Loading templates...
    Mapping templates to blog archive types...
        Mapping template ID '10' to 'Daily'
        Mapping template ID '10' to 'Weekly'
        Mapping template ID '10' to 'Monthly'
        Mapping template ID '11' to 'Category'
        Mapping template ID '12' to 'Individual'

Done loading initial data! All went well.

Now, go back to your ssh session:

  1. cd mt
  2. rm mt-load.cgi

This is necessary to prevent you or someone else from re-initializing your system.

Login

  1. Load http://www.domainname.com/mt/mt.cgi in a web browser
  2. Log in as Melody with password Nelson
  3. Change profile to a new username with password AnotherHardToGuessPassword

If everything went as planned, you should now be able to administer and post to your Movable Type weblog.