TweetFollow Us on Twitter

Movable Type on Panther

Volume Number: 21 (2005)
Issue Number: 3
Column Tag: Programming

Patch Panel

by John C. Welch

Movable Type on Panther

No Need To Wait For Tiger To Get A Topnotch Blogging System On Mac OS X Server

With all the hoopla about Mac OS X Server 10.4, and all the new tricks it's going to bring as part of the standard installation, I thought I'd take a look at one that's near and dear to my heart, and see about implementing something similar on the current version of Mac OS X Server, namely the Weblog, or "blog" implementation.

Welcome

Now, while Tiger Server will give you a blog as part of the standard installation, there are a number of reasons not to wait for that. For one, while I'm quite sure that Apple's blog setup will be functional and work well for most; it may not be a system that does everything you need it to do. (Everything I've read indicates that Tiger's blog setup will be based on Blojsom, a Java blog implementation.)

Secondly, if you are going to use a blog as a production system, you'll want to test Tiger server out thoroughly before unleashing it on your users. Finally, why wait? There are blog systems that you can run on Mac OS X Server today, and we'll take a look at installing and configuring one of them, namely Movable Type, from Six Apart, (http://www.sixapart.com/), creators of Movable Type, the TypePad blogging service, and new owners of LiveJournal, a public blogging community based on Open Source software.

Why Movable Type?

Well, for a number of reasons. One, I'm familiar with it, as my own website, (http://www.bynkii.com/) is a Movable Type, (Movable Type) based site. (No, I'm not an HTML whiz, which is one reason why I like blogs.) It's quite popular in the Mac world, with sites such as NSLog();, and Daring Fireball among the sites using Movable Type. It can run easily on Mac OS X Server, once you get how to install it, and it can use various databases as a back end, such as BerkeleyDB, MySQL, PostgreSQL, and SQLite.

Movable Type uses CSS and other standard web technologies to create its "look" so if you don't like any of the defaults, you can change it to suit your needs without having to worry about what it will do to various browsers, and almost any web design tool can be used with Movable Type.

Movable Type is well documented, and has a solid API that can be used to extend its featureset a number of ways, including plugins. This is not to say that the other systems aren't just as good, but I had to pick one, and I know Movable Type, so, this is the one we look at.

Getting Movable Type

Getting Movable Type can be a little tedious, but there are a number of license configurations that will work for anyone, from free, to not ridiculously expensive, depending on the number of blogs and authors you want. Note that with Movable Type, if you have separate blogs that all fall under the same root domain, (such as those I use for the various sections of Bynkii.com), that's considered a single blog as far as licensing is concerned. Go to http://www.sixapart.com/movabletype/pricing, and pick the configuration that works best for you.

Once you've selected your licensing configuration, download the full install of the latest version of Movable Type, 3.15 as of this article. (You'll have to get a free TypePad ID to get Movable Type, but in my experience, Six Apart has yet to spam me, or email me at all for that matter, and I've been using Movable Type for a little over two years now.) You select the format you want, .tar.gz or .zip, and download it to your Mac, either the server you'll be running it on, or an administration station. Expand the archive, and then immediately navigate into the docs subdirectory, and open mtinstall.html in a browser. This contains the primary installation documentation, and you will want to be quite familiar with it. Almost every problem I've ever had with a Movable Type installation on Mac OS X Server is either due to not paying attention to the directions, or Apple's changes to a standard Apache install.

Installing Movable Type

Okay, so we've read the instructions, and we're going to set up Movable Type on our Mac OS X box. To keep things simple for this article, we're going to use the BerkelyDB as the back end. This is where things get a little odd thanks to Apple's...unique take on Apache directory setups. First, you want to ensure that Perl is in the right place, since Movable Type makes heavy use of Perl. Open a command line window in terminal and run "which perl" The answer should be /usr/bin/perl, as that's the normal place that Mac OS X puts it. If you've modified your perl location, follow the Movable Type instructions on changing the CGI files so they know where to look.

We're going to install the Movable Type CGI files into Apple's cgi-bin directory, so we'll want to create an mt-static directory in the main web documents directory. For our example, we'll use /Library/WebServer/Documents/. You can have this directory anywhere along with your actual non - CGI files, but again, we're keeping it simple. We're going to put all the CGI files into the default CGI location, /Library/WebServer/CGI-Executables/.


Site Settings for Movable Type

However, before we do any of this, we want to make sure that the Web services for this site in Mac OS X Server are set correctly. Start up Server Admin, and select the Web settings. Go to the lower Settings tab in Web services, and select the sites tab. Open up the site you're going to use for your Movable Type installation, and under options, enable "CGI Execution" and disable "Performance Cache". You'll also want to go into the Modules tab and make sure that the perl_module and php_modules are enabled, since Movable Type uses both. Save those changes, and exit Server Admin.

In terminal, (you can do all of this in the Finder, or even via SFTP, but in the end, terminal ends up being a more direct and simpler way to set up Movable Type.), cd to /Library/Documents/ and create a directory named mt-static. Set the permissions so owner and group have full permissions, everyone else has read and execute only, i.e. chmod 775 mt-static. Then copy the following items into this folder, as per the Movable Type installation instructions, (which, since you read them thoroughly before starting, you already know to do this.)

  • The mt.js file
  • The styles.css file
  • The docs folder
  • The images folder

Once those are in mt-static, I set the permissions for them as follows, (Note: This is for a server that only talks to internal clients. If this server will be exposed to the public Internet, you will want to set your permissions more restrictively):

  • mt.js to full permissions for owner and group, read and execute only for all others (chmod 775)
  • styles.css to read & write for owner and group, read only for all others (chmod 664)
  • The contents of the docs folder to read & write for owner and group, read only for all others (chmod 664)
  • The docs folder itself to full permissions for the owner and group, read and execute only for all others (chmod 775)
  • The contents of the images folder to read & write for owner and group, read only for all others (chmod 664)
  • The images folder itself to full permissions for the owner and group, read and execute only for all others (chmod 775)

Finally, set the owner and group for mt-static and all its contents to www, the web server user used by Mac OS X's web services. (chown -R www:www mt-static/) Now that we have mt-static taken care of, let's go set up the meat of Movable Type, the cgi directory.

Change directory to /Library/WebServer/CGI-Executables, the default CGI directory for Mac OS X Server. Create a directory called mt and change directory into that. (Note: you can just dump all the CGI files into /Library/WebServer/CGI-Executables, but I like to give them their own directory. It makes it easier to keep track of what CGI files are attached to what, and reduces the chance of a random other CGi file overwriting your Movable Type CGI files.)

Now, copy all the Movable Type files, (that you didn't copy into mt-static) into this mt directory. (Those of you who are more observant will note that we are doing things out of order of the Movable Type installation instructions. This doesn't make a difference in the end. I happen to prefer uploading, then configuring. If you like to configure, then upload, that works too.)

Change the permissions of all the files ending in .cgi in the mt directory to full permissions for the owner, read and execute only for everyone else. (chmod 755 *.cgi) Since we are going to use the BerkeleyDB, we have to create a directory for those files. Create a directory in mt called db, and set the permissions to full access for everyone. (chmod 777 db) Now, lets create the directory for our first weblog files. Again, by partitioning each blog's files into their own directory, we make our lives a lot simpler later on. So, cd back to /Library/WebServer/Documents/ create a directory, and call it firstblog. Inside of this directory, create another directory called archives. Set the permissions of firstblog and it's contents so that owner and group have full permissions and everyone else only has read and execute. (chmod -R 775 firstblog) Then change its ownership to www for the user and the group. (chown -R www:www firstblog). Congratulations, the initial installation of Movable Type is finished. Change directory back to /Library/WebServer/CGI-Executables/mt, and we can start configuring Movable Type.

Initial Movable Type Configuration

In the editor of your choice, open the /Library/WebServer/CGI-Executables/mt/mt.cfg file. I use pico with the -w switch to avoid line wrap issues, but you can use any decent text editor, such as BBEdit, TextWrangler, or SubEthaEdit.

The first thing we want to set is the CGIPath for Movable Type. This will let Movable Type know where to start looking for its CGI files. This is not the physical disk path to them, but the path you'll see as a URL for our setup, it's going to be:

http://fulldnsnameorIPaddressofserver/cgi-bin/mt/

(This is where you run into one of Apple's Apache Oddities. Yes, the CGI directory is called "CGI-Executables". Ignore that, for down that path lies madness. If you look at the Apache configuration file, httpd.conf in /etc/httpd/, you'll see this line:

ScriptAlias /cgi-bin/ "/Library/WebServer/CGI-Executables/"

Which tells Apache that the CGI-Executables directory is really the root cgi-bin directory. So even though it seems really wrong, we assume /cgi-bin/ to be /Library/WebServer/CGI-Executables/. Confusing? Yep. Nonstandard? Yep. Is it worth redoing the entire Apache setup for this? Probably not.) So your CGIPath line should look like:

CGIPath http://fulldnsnameorIPaddressofserver/cgi-bin/mt/

Next, we set the path to our db directory. Since this is a physical disk path, not a virtual HTTP path, we use the "real" path to the db directory, namely:

/Library/WebServer/CGI-Executables/mt/db

Put that in as the path for the DataSource line in mt.cfg, so it looks like this:

DataSource /Library/WebServer/CGI-Executables/mt/db

The next thing we need to set is the path to our mt-static directory and its files. This is a HTTP path, and can be relative from the root of the web documents directory, so we just set StaticWebPath to:

StaticWebPath /mt-static/

That's the minimal configuration to get Movable Type working. However, there are a couple of things that I like to set as well. First, for email notifications of things like comments and trackbacks, I set my mail transfer to smtp and then set my mail server. (Note: You can also just use sendmail locally if you want, but I prefer to use SMTP, since that way, if I change my mail server's machine, I don't have to change my Movable Type settings. It gives me a little more flexibility without a lot of work. So I uncommented the MailTransfer and SMTPServer lines, and set SMTPServer to my mail server: (Obviously, you'll want to set this to your mail server)

MailTransfer smtp
SMTPServer fulldnsname.ofyourmailserver.here

That's pretty much it for mt.cfg. So save your changes and closet that file. Don't think that we've fully configured Movable Type by a long shot. If you take the time to read the mt.cfg file thoroughly, there are a lot of ways you can really tweak Movable Type's setup and performance, so that it works the way you want it to.

Now, we start doing the web configuration of Movable Type. First, we're going to want to check for the available Perl modules. To do this, we use the mt-check.cgi file. So go to:

http://yourwebserver/cgi-bin/mt/mt-check.cgi.

(Note: Yes, I know that the Movable Type instructions don't tell you to put the "cgi-bin" directory in the path when you're running these CGIs. It's been my experience that you have to, so I just do it and move on. You can probably fix this if you want, but I haven't had a real reason to yet.) You should get a page with a list of configuration information, listing the Perl modules that Movable Type could find. By default, Mac OS X Server should have all the requisite modules installed. It won't always have all the optional ones, but you can always install those later. The important thing is that you get the "Movable Type System Check Successful" message at the bottom of your screen. If not, go back and make sure that you installed all the files to their correct places, set your permissions right, and that mt.cfg is pointing to the right places.

The next step is to initialize the system. This is the make - or - break test for your setup. If you get past this step, then you've got your basic installation and config done. Go to:

http://yourwebserver/cgi-bin/mt/mt-load.cgi.

If you set up everything correctly, then you get the System Initialization Complete message, and dire warnings to delete the mt-load.cgi file. I recommend listening to these dire warnings. However, since we've all been careful, this step works great, and we can now log into Movable Type, and set up our first weblog.

Configuring Movable Type's Web Interface

Go to:

http://yourwebserver/cgi-bin/mt/mt.cgi

This is the main URL for administering your Movable Type setup, so you'll want to bookmark it. The initial userID and password you use is Melody for the userID, and Nelson for the password. Once you've logged in, you'll see the initial Movable Type administration screen.


Initial Movable Type Administration Screen

Obviously, you're going to want to create a new weblog author, and give that author full control over your installation, and that default weblog. Once that's done, log out, then log back in as the new author, and edit Melody's permissions so she can't do anything. Unfortunately, you can't delete her, so we'll just cripple her thoroughly. Next we're going to modify that initial weblog so it matches what we want out of it. On the main menu screen, in the "First Weblog" section, click on "configuration".

That will bring you to the "Core Setup" screen, and we can commence changing this to reflect our setup.

  • Change the "Weblog Name:" to whatever you like. This will be the title of the blog for readers, and in the main administration screen.
  • Change the "Local Site Path:" to /Library/WebServer/Documents/firstblog, so that all your blog files are in that firstblog directory we created earlier.
  • Set the "Site URL:" to http://yourwebserver/firstblog/. This will be the URL for people wanting to read your blog.
  • Set the "Local Archive Path:" to /Library/WebServer/Documents/firstblog/archives. This is the physical disk path to the directory in firstblog that will hold the archives of your blog entries.
  • Set the "Archive URL:" to http://macservertest.kclife.net/firstblog/archives/. This will be the base URL for all your entry archives.
  • Finally, set the "Timezone:" to whatever your local Timezone is.
  • Click the "Save Changes" button.

This page will refresh with a new addition, a button that says "Rebuild my site". With Movable Type, the biggest annoyance is the site rebuilding. The current version gives you some ways to avoid this, but you may as well get used to it.


Core Setup screen with rebuild button

Clicking the "Rebuild my site" button will bring up the Rebuild window, shown below. Hit the Rebuild button, and your initial config is now set.


Rebuild Window

Again, there are a ton of configuration options here, but you now have Movable Type basically set up so you can commence to blogging, so, how about we create our first entry?

First Entry

If you look at the column on the left hand side of the "Core Setup" screen, you'll see a link for "New Entry" Click on that, and you'll get the "Create New Entry" screen, seen below.


Movable Type New Entry screen

As you can see, there are quite a few options here, and I'm not going to go over all of them. The online help for Movable Type is excellent, and you should get in the habit of using it as early as possible. Most of the options are pretty self - explanatory. The few I'll point out are that "Entry Body" is what you see below the title on the blog on the main page. "Extended Entry" is what you see when you click on the "continue reading..." links at the bottom of the Entry Body. Use of the Extended Entry is entirely up to you. You don't ever have to use it if you don't want to. The other thing that can catch you off guard is the "Post Status". If you leave it on "Draft", you'll never see your entries on your blog. So, once you're ready to publish your wisdom and wit to the blog, change the "Post Status" to "Publish and hit "Save". Within seconds your entry will be posted, and that's it, you're blogging on Mac OS X Server, even without Tiger.

Conclusion

Obviously, I haven't even begun to touch on all the ways you can customize your blog via custom templates, changing the CSS stylesheets, adding your own stylesheets, etc. There are tons of plugins out there, everything from anti-spam to drop caps for your entries, and you can find all of them on Six Apart's site. If you're going to have your blog on the public Internet, the anti-spam plugins are essentially a necessity, and Movable Type provides one of the better ones, Movable Type-Blacklist, by default. Finally, you don't have to just use Movable Type's "New Entry" screen. There are a multitude of blog editors out there, free and shareware. I personally use ecto, available at http://ecto.kung-foo.tv/. It's not free, but it's one of the best, and has an excellent feature set.

One final note: Blogs aren't just for fun/personal sites. I use them at my "real" job as a way of keeping track of what I'm working on and documenting it as well. There's nothing nicer than having a searchable, easily accessible documentation source that allows for rich text, images, even movies. I find that blogs have made my life as a sysadmin much easier. Simply by giving me a way to keep track of information in a location that is not the ridiculously cluttered top of my desk. So regardless of when Tiger shows up, Mac OS X Server is a great platform for blogging on any level.


John Welch (jwelch@bynkii.com) is an IT Staff Member for Kansas City Life Insurance, a Technical Strategist for Provar, (http://www.provar.com/) and the Chief Know-It-All for TackyShirt, (http://www.tackyshirt.com/. He has over fifteen years of experience at making Macs work with other computer systems. John specializes in figuring out ways in which to make the Mac do what nobody thinks it can, showing that the Mac is a superior administrative platform, and teaching others how to use it in interesting, if sometimes frightening ways. He also does things that don't involve computertry on occasion, or at least that's the rumor.

 
AAPL
$501.02
Apple Inc.
+2.34
MSFT
$34.83
Microsoft Corpora
+0.34
GOOG
$895.87
Google Inc.
+13.86

MacTech Search:
Community Search:

Software Updates via MacUpdate

Apple Canon Laser Printer Drivers 2.11 -...
Apple Canon Laser Printer Drivers is the latest Canon Laser printing and scanning software for Mac OS X 10.6, 10.7 and 10.8. For information about supported printer models, see this page.Version 2.11... Read more
Apple Java for Mac OS X 10.6 Update 17 -...
Apple Java for Mac OS X 10.6 delivers improved security, reliability, and compatibility by updating Java SE 6.Version Update 17: Java for Mac OS X 10.6 Update 17 delivers improved security,... Read more
Arq 3.3 - Online backup (requires Amazon...
Arq is online backup for the Mac using Amazon S3 and Amazon Glacier. It backs-up and faithfully restores all the special metadata of Mac files that other products don't, including resource forks,... Read more
Apple Java 2013-005 - For OS X 10.7 and...
Apple Java for OS X 2013-005 delivers improved security, reliability, and compatibility by updating Java SE 6 to 1.6.0_65. On systems that have not already installed Java for OS X 2012-006, this... Read more
DEVONthink Pro 2.7 - Knowledge base, inf...
Save 10% with our exclusive coupon code: MACUPDATE10 DEVONthink Pro is your essential assistant for today's world, where almost everything is digital. From shopping receipts to important research... Read more
VirtualBox 4.3.0 - x86 virtualization so...
VirtualBox is a family of powerful x86 virtualization products for enterprise as well as home use. Not only is VirtualBox an extremely feature rich, high performance product for enterprise customers... Read more
Merlin 2.9.2 - Project management softwa...
Merlin is the only native network-based collaborative Project Management solution for Mac OS X. This version offers many features propelling Merlin to the top of Mac OS X professional project... Read more
Eye Candy 7.1.0.1191 - 30 professional P...
Eye Candy renders realistic effects that are difficult or impossible to achieve in Photoshop alone, such as Fire, Chrome, and the new Lightning. Effects like Animal Fur, Smoke, and Reptile Skin are... Read more
Sound Studio 4.6.6 - Robust audio record...
Sound Studio lets you easily record and professionally edit audio on your Mac.Easily rip vinyls and digitize cassette tapes or record lectures and voice memos. Prepare for live shows with live... Read more
DiskAid 6.4.2 - Use your iOS device as a...
DiskAid is the ultimate Transfer Tool for accessing the iPod, iPhone or iPad directly from the desktop. Access Data such as: Music, Video, Photos, Contacts, Notes, Call History, Text Messages (SMS... Read more

PROVERBidioms Paints English Sayings in...
PROVERBidioms Paints English Sayings in a Picture for Users to Find Posted by Andrew Stevens on October 16th, 2013 [ permalink ] | Read more »
OmniFocus 2 for iPhone Review
OmniFocus 2 for iPhone Review By Carter Dotson on October 16th, 2013 Our Rating: :: OMNIPOTENTiPhone App - Designed for the iPhone, compatible with the iPad OmniFocus 2 for iPhone is a task management app for people who absolutely... | Read more »
Ingress – Google’s Augmented-Reality Gam...
Ingress – Google’s Augmented-Reality Game to Make its Way to iOS Next Year Posted by Andrew Stevens on October 16th, 2013 [ permalink ] | Read more »
CSR Classics is Full of Ridiculously Pre...
CSR Classics is Full of Ridiculously Pretty Classic Automobiles Posted by Rob Rich on October 16th, 2013 [ permalink ] | Read more »
Costume Quest Review
Costume Quest Review By Blake Grundman on October 16th, 2013 Our Rating: :: SLIGHTLY SOURUniversal App - Designed for iPhone and iPad This bite sized snack lacks the staying power to appeal beyond the haunting season.   | Read more »
Artomaton – The AI Painter is an Artific...
Artomaton – The AI Painter is an Artificial Artistic Intelligence That Paints From Photos You’ve Taken Posted by Andrew Stevens on October 16th, 2013 [ | Read more »
Hills of Glory 3D Review
Hills of Glory 3D Review By Carter Dotson on October 16th, 2013 Our Rating: :: BREACHED DEFENSEUniversal App - Designed for iPhone and iPad Hills of Glory 3D is the most aggravating kind of game: one with good ideas but sloppy... | Read more »
FitStar: Tony Gonzalez Adds New 7 Minute...
FitStar: Tony Gonzalez Adds New 7 Minute Workout Program for Those Who Are in a Hurry Posted by Andrew Stevens on October 16th, 2013 [ permalink ] | Read more »
PUMATRAC Review
PUMATRAC Review By Angela LaFollette on October 16th, 2013 Our Rating: :: INSIGHTFULiPhone App - Designed for the iPhone, compatible with the iPad PUMATRAC not only provides runners with stats, it also motivates them with insights... | Read more »
Flipcase Turns the iPhone 5c Case into a...
Flipcase Turns the iPhone 5c Case into a Game of Connect Four Posted by Andrew Stevens on October 15th, 2013 [ permalink ] | Read more »

Price Scanner via MacPrices.net

Updated MacBook Price Trackers
We’ve updated our MacBook Price Trackers with the latest information on prices, bundles, and availability on MacBook Airs, MacBook Pros, and the MacBook Pros with Retina Displays from Apple’s... Read more
13-inch Retina MacBook Pros on sale for up to...
B&H Photo has the 13″ 2.5GHz Retina MacBook Pro on sale for $1399 including free shipping. Their price is $100 off MSRP. They have the 13″ 2.6GHz Retina MacBook Pro on sale for $1580 which is $... Read more
AppleCare Protection Plans on sale for up to...
B&H Photo has 3-Year AppleCare Warranties on sale for up to $105 off MSRP including free shipping plus NY sales tax only: - Mac Laptops 15″ and Above: $244 $105 off MSRP - Mac Laptops 13″ and... Read more
Apple’s 64-bit A7 Processor: One Step Closer...
PC Pro’s Darien Graham-Smith reported that Canonical founder and Ubuntu Linux creator Mark Shuttleworth believes Apple intends to follow Ubuntu’s lead and merge its desktop and mobile operating... Read more
MacBook Pro First, Followed By iPad At The En...
French site Info MacG’s Florian Innocente says he has received availability dates and order of arrival for the next MacBook Pro and the iPad from the same contact who had warned hom of the arrival of... Read more
Chart: iPad Value Decline From NextWorth
With every announcement of a new Apple device, serial upgraders begin selling off their previous models – driving down the resale value. So, with the Oct. 22 Apple announcement date approaching,... Read more
SOASTA Survey: What App Do You Check First in...
SOASTA Inc., the leader in cloud and mobile testing announced the results of its recent survey showing which mobile apps are popular with smartphone owners in major American markets. SOASTA’s survey... Read more
Apple, Samsung Reportedly Both Developing 12-...
Digitimes’ Aaron Lee and Joseph Tsai report that Apple and Samsung Electronics are said to both be planning to release 12-inch tablets, and that Apple is currently cooperating with Quanta Computer on... Read more
Apple’s 2011 MacBook Pro Lineup Suffering Fro...
Appleinsider’s Shane Cole says that owners of early-2011 15-inch and 17-inch MacBook Pros are reporting issues with those models’ discrete AMD graphics processors, which in some cases results in the... Read more
Global Notebook Shipments To Grow Less Than 3...
Digitimes Research’s Joanne Chien reports that Taiwan’s notebook shipments grew only 2.5% sequentially, and dropped 8.6% year-over-year in the third quarter despite the fact that notebook ODMs have... Read more

Jobs Board

Senior Mac / *Apple* Systems Engineer - 318...
318 Inc, a top provider of Apple solutions is seeking a new Senior Apple Systems Engineer to be based out of our Santa Monica, California location. We are a Read more
*Apple* Retail - Manager - Apple Inc. (Unite...
Job Summary Keeping an Apple Store thriving requires a diverse set of leadership skills, and as a Manager, you’re a master of them all. In the store’s fast-paced, Read more
*Apple* Solutions Consultant - Apple (United...
**Job Summary** Apple Solutions Consultant (ASC) - Retail Representatives Apple Solutions Consultants are trained by Apple on selling Apple -branded products Read more
Associate *Apple* Solutions Consultant - Ap...
**Job Summary** The Associate ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The Associate ASC's role is to Read more
*Apple* Solutions Consultant (ASC) - Apple (...
**Job Summary** The ASC is an Apple employee who serves as an Apple brand ambassador and influencer in a Reseller's store. The ASC's role is to grow Apple Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.