Manage Web Content with Movable Type
Updated by Linode
This guide has been deprecated and is no longer being maintained.
Movable Type is a free, open source content management system designed to facilitate easy creation of blogs and websites. We assume you have a working LAMP environment set up on your Linode already; if not, please refer to our LAMP guides for setup instructions before continuing with this tutorial.
For this example, we’ll be using a LAMP server built on Debian Lenny. Your server environment may be based on a different distribution, but the installation steps should be very similar. For additional help beyond the scope of this document, you may want to consult the Movable Type Install Guide.
Making Sure Perl/CGI Works
If your LAMP environment isn’t already set up to allow Perl scripts to be run on your website, you’ll need to take the following steps. Otherwise, you may proceed to “Download Movable Type” to continue with installation.
Next, we’ll make sure Apache knows where CGI scripts are allowed to be run.
1 2 3 4 5 6 7 8 9 10 11 12 13
<VirtualHost *:80> ServerAdmin email@example.com ServerName example.com ServerAlias www.example.com DocumentRoot /srv/www/example.com/public_html/ ErrorLog /srv/www/example.com/logs/error.log CustomLog /srv/www/example.com/logs/access.log combined AddHandler cgi-script .cgi .pl </VirtualHost> <Directory /srv/www/example.com/public_html/> Options +ExecCGI </Directory>
We’ve added a line to the
<VirtualHost> section of our site’s Apache configuration file which uses “AddHandler” to tell Apache how to treat files that end in
.cgi. We’ve added a <Directory> section as well to allow CGI scripts to be run from the public_html directory. Reload Apache as follows:
Installing Support Modules
You may skip this step if desired; we’re going to install some optional Perl modules that enable enhanced functionality in Movable Type. The installation commands shown here make use of the CPAN interactive shell. First, we need to update our system and install some prerequisite packages:
1 2 3
apt-get update apt-get upgrade apt-get install build-essential libssl-dev libgd2-xpm-dev libxml2-dev perlmagick libgraphics-magick-perl
Next, start the CPAN shell:
perl -MCPAN -e 'shell'
If this is your first time running the shell, you’ll be asked if you’d like most options configured automatically. This is a safe option for beginners, although those familiar with the shell may wish to proceed with manual configuration. After configuration is done, issue the following commands:
1 2 3 4 5 6 7 8 9 10 11
install Crypt::DSA install IPC::Run install Archive::Zip install HTML::Entities install Crypt::SSLeay install GD install Digest::SHA1 install LWP::UserAgent install XML::Atom install Mail::Sendmail install HTML::Parser
Create a Database for Movable Type
From the command line issue the following (inserting MySQL’s root password):
In the MySQL console that appears, run the following commands:
1 2 3 4 5
use mysql CREATE USER bamboo IDENTIFIED BY 'changeme'; CREATE DATABASE bamboo_db; GRANT ALL PRIVILEGES ON bamboo_db.* TO 'bamboo'; exit
Remember to change “changeme” to a strong password; write this down for later reference.
Download Movable Type
Visit the Movable Type download page. Copy the download link to the most recent version into your clipboard (typically by right-clicking on the download link and selecting “copy link location”).
Log into your Linode as root through SSH, navigate to your website’s website directory, and use
wget followed by the download link you copied to get the current version of Movable Type. We’re using the site “example.com” for example purposes.
cd /srv/www/example.com/ wget http://www.movabletype.org/downloads/stable/MTOS-5.03-en.zip
Unpack the installation archive as follows (you may need to install the
unzip program, as with
apt-get install unzip):
unzip MTOS*zip rm MTOS*zip
Move the files from the newly create directory to your public HTML and cgi-bin directories and change a directory to be owned by the Apache user:
1 2 3
mv MTOS-5.03-en/ public_html/ chown www-data:www-data public_html/ chown www-data:www-data public_html/mt-static/support
Install Movable Type
Bring up your website in your favorite browser, and you’ll be greeted by the Movable Type installation wizard. Your system will be checked to make sure you meet the requirements for Movable Type. When you reach the “Database Configuration” section, you will be asked to provide some information. We’ve used these values:
- Database Type: MySQL Database
- Database Server: localhost
- Database Name: bamboo_db
- Username: bamboo
- Password: [from mysql setup]
After basic configuration is complete, you’ll be asked to enter a username, display name, and email address for your Movable Type administrator account. Choose a strong password to protect your account. When asked to choose a “Blog URL” you may want to make it the base URL of your site (“example.com” in our case), and for “Publishing Path” you may want to enter the path to your public_html directory (
/srv/www/example.com/public_html/ in our case). Alternately, you can accept the defaults provided to host the system under a subdirectory of your site’s root. You’re done!
Monitor for Software Updates and Security Notices
When running software compiled or installed directly from sources provided by upstream developers, you are responsible for monitoring updates, bug fixes, and security issues. After becoming aware of releases and potential issues, update your software to resolve flaws and prevent possible system compromise. Monitoring releases and maintaining up to date versions of all software is crucial for the security and integrity of a system.
Please monitor the following Movable Type mailing lists to ensure that you are aware of all updates to the software and can upgrade appropriately or apply patches and recompile as needed:
When upstream sources offer new releases, repeat the instructions for installing the Movable software as needed. These practices are crucial for the ongoing security and functioning of your system.
This guide is published under a CC BY-ND 4.0 license.