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.

 

Community Search:
MacTech Search:

Software Updates via MacUpdate

Apple Remote Desktop 3.8 - Remotely cont...
Apple Remote Desktop is the best way to manage the Mac computers on your network. Distribute software, provide real-time online help to end users, create detailed software and hardware reports, and... Read more
NeoOffice 2014.7 - Mac-tailored, OpenOff...
NeoOffice is a complete office suite for OS X. With NeoOffice, users can view, edit, and save OpenOffice documents, PDF files, and most Microsoft Word, Excel, and PowerPoint documents. NeoOffice 3.x... Read more
DesktopLyrics 2.6.6 - Displays current i...
DesktopLyrics is an application that displays the lyrics of the song currently playing in "iTunes" right on your desktop. The lyrics for the song have to be set in iTunes; DesktopLyrics does nothing... Read more
Ember 1.8.3 - Versatile digital scrapboo...
Ember (formerly LittleSnapper) is your digital scrapbook of things that inspire you: websites, photos, apps or other things. Just drag in images that you want to keep, organize them into relevant... Read more
Apple iTunes 12.1 - Manage your music, m...
Apple iTunes lets you organize and play digital music and video on your computer. It can automatically download new music, app, and book purchases across all your devices and computers. And it's a... Read more
LibreOffice 4.4.3 - Free, open-source of...
LibreOffice is an office suite (word processor, spreadsheet, presentations, drawing tool) compatible with other major office suites. The Document Foundation is coordinating development and... Read more
FoldersSynchronizer 4.2.1 - Synchronize...
FoldersSynchronizer is a popular and useful utility that synchronizes and backs-up files, folders, disks and boot disks. On each session you can apply special options like Timers, Multiple Folders,... Read more
Simon 4.0.2 - Monitor changes and crashe...
Simon monitors websites and alerts you of crashes and changes. Select pages to monitor, choose your alert options, and customize your settings. Simon does the rest. Keep a watchful eye on your... Read more
Cocktail 8.1.2 - General maintenance and...
Cocktail is a general purpose utility for OS X that lets you clean, repair and optimize your Mac. It is a powerful digital toolset that helps hundreds of thousands of Mac users around the world get... Read more
Cyberduck 4.6.4 - FTP and SFTP browser....
Cyberduck is a robust FTP/FTP-TLS/SFTP browser for the Mac whose lack of visual clutter and cleverly intuitive features make it easy to use. Support for external editors and system technologies such... Read more

Playworld Superheroes Review
Playworld Superheroes Review By Tre Lawrence on January 30th, 2015 Our Rating: :: HERO CRAFTINGUniversal App - Designed for iPhone and iPad It’s all about the imagination, fighting bad creatures — and looking good while doing so.   | Read more »
Join the SpongeBob Bubble Party in this...
Join the SpongeBob Bubble Party in this New Match 3 Bubble Poppin’ Frenzy Posted by Jessica Fisher on January 30th, 2015 [ permalink ] | Read more »
Handpick Review
Handpick Review By Jennifer Allen on January 30th, 2015 Our Rating: :: TANTALIZING SUGGESTIONSiPhone App - Designed for the iPhone, compatible with the iPad Handpick will make you hungry, as well as inspire you to cook something... | Read more »
Storm the Halls of Echo Base in First St...
Storm the Halls of Echo Base in First Star Wars: Galactic Defense Event Posted by Jessica Fisher on January 30th, 2015 [ permalink ] Universal App - Designed for iPhone and iPad | Read more »
Contradiction Review
Contradiction Review By Tre Lawrence on January 30th, 2015 Our Rating: :: SPOT THE LIEiPad Only App - Designed for the iPad Contradiction is a live action point and click adventure that’s pretty engaging.   Developer: Tim Follin... | Read more »
Unlock Sunshine Girl in Ironkill with th...
Unlock Sunshine Girl in Ironkill with this special 148Apps code Posted by Rob Rich on January 29th, 2015 [ permalink ] Robo-fighter Ironkill has been out on iOS a | Read more »
Crossroad Zombies Review
Crossroad Zombies Review By Jordan Minor on January 29th, 2015 Our Rating: :: CROSSWALKING DEADiPad Only App - Designed for the iPad Crossroad Zombies is a rough draft of a cool genre mash-up.   | Read more »
Blood Brothers 2 – Tips, Cheats, and Str...
War is hell: Is it the kind of hell you want to check out? Read our Blood Brothers 2 review to find out! Blood Brothers 2, DeNA’s follow-up to the original Blood Brothers, is an intriguing card collecting / role-playing / strategy hybrid. There’s... | Read more »
Blood Brothers 2 Review
Blood Brothers 2 Review By Nadia Oxford on January 29th, 2015 Our Rating: :: AN AGGRAVATING RELATIVEUniversal App - Designed for iPhone and iPad Blood Brothers 2 is built on a simple, solid foundation, but its free-to-play system... | Read more »
I AM BREAD, the Toast of the Town, is Ro...
Have you ever dreamt of being deliciously gluten-y? Do you feel passionate about Rye and Wheat? The guys at Bossa Studios do and that is why they are bringing I AM BREAD to iOS soon. The loafy app will feature all the new content that is being... | Read more »

Price Scanner via MacPrices.net

Amazon offers 15-inch 2.2GHz Retina MacBook P...
 Amazon.com has the 15″ 2.2GHz Retina MacBook Pro on sale for $1879 including free shipping. Their price is $120 off MSRP, and it’s the lowest price available for this model from any reseller (except... Read more
Intel Aims to Transform Workplace With 5th-Ge...
Intel Corporation today announced the availability of its 5th generation Intel Core vPro processor family that provides cutting-edge features to enable a new and rapidly shifting workplace. To meet... Read more
iOS App Sharalike Introduces New Instant Smar...
Sharalike slideshow and photo management software for iOS, is making it easier than ever to create shareable meaningful moments with its new instant SmartShow technology. Staying organized is a goal... Read more
Apple Becomes World’s Largest Smartphone Vend...
According to the latest research data from Strategy Analytics, as global smartphone shipments grew 31 percent annually to reach a record 380 million units in the fourth quarter of 2014. Apple became... Read more
Cut the Cord: OtterBox Resurgence Power Case...
Dead batteries and broken phones are two of the biggest issues for smartphone users today. Otterbox addresses both with the new Resurgence Power Case for Apple iPhone 6, promising to make those panic... Read more
13-inch Retina MacBook Pros on sale for up to...
B&H Photo has 13″ Retina MacBook Pros on sale for $200 off MSRP. Shipping is free, and B&H charges NY sales tax only: - 13″ 2.6GHz/128GB Retina MacBook Pro: $1199.99 save $100 - 13″ 2.6GHz/... Read more
15-inch 2.5GHz Retina MacBook Pro on sale for...
 B&H Photo has the 15″ 2.5GHz Retina MacBook Pro on sale for $2319.99 including free shipping plus NY sales tax only. Their price is $180 off MSRP, and it’s the lowest price available for this... Read more
Back in stock: Refurbished iPod nanos for $99...
The Apple Store has Apple Certified Refurbished 16GB iPod nanos available for $99 including free shipping and Apple’s standard one-year warranty. That’s $50 off the cost of new nanos. Most colors are... Read more
Apple lowers price on refurbished 256GB MacBo...
The Apple Store has lowered prices on Apple Certified Refurbished 2014 MacBook Airs with 256GB SSDs, now available for up to $200 off the cost of new models. An Apple one-year warranty is included... Read more
New Good Management Suite Simplifies Enterpri...
Good Technology has announced the availability of the Good Management Suite, a comprehensive cross-platform solution for organizations getting started with mobile business initiatives. Built on the... Read more

Jobs Board

At-Home Chat Specialist- *Apple* Online Stor...
**Job Summary** At Apple , we believe in hard work, a fun environment, and the kind of creativity and innovation that only comes about when talented people from diverse Read more
Sr. Mac Expert- *Apple* Online Store - Apple...
**Job Summary** The World Wide Apple Online Store (AOS) Sales and Service team is looking for motivated, outgoing, and tech savvy individuals who want to offer Apple Read more
*Apple* Solutions Consultant- Retail Sales (...
**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
Event Director, *Apple* Retail Marketing -...
…This senior level position is responsible for leading and imagining the Apple Retail Team's global engagement strategy and team. Delivering an overarching brand Read more
At-Home Chat Specialist- *Apple* Online Stor...
**Job Summary** At Apple , we believe in hard work, a fun environment, and the kind of creativity and innovation that only comes about when talented people from diverse Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.