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

Latest Forum Discussions

See All

Summon your guild and prepare for war in...
Netmarble is making some pretty big moves with their latest update for Seven Knights Idle Adventure, with a bunch of interesting additions. Two new heroes enter the battle, there are events and bosses abound, and perhaps most interesting, a huge... | Read more »
Make the passage of time your plaything...
While some of us are still waiting for a chance to get our hands on Ash Prime - yes, don’t remind me I could currently buy him this month I’m barely hanging on - Digital Extremes has announced its next anticipated Prime Form for Warframe. Starting... | Read more »
If you can find it and fit through the d...
The holy trinity of amazing company names have come together, to release their equally amazing and adorable mobile game, Hamster Inn. Published by HyperBeard Games, and co-developed by Mum Not Proud and Little Sasquatch Studios, it's time to... | Read more »
Amikin Survival opens for pre-orders on...
Join me on the wonderful trip down the inspiration rabbit hole; much as Palworld seemingly “borrowed” many aspects from the hit Pokemon franchise, it is time for the heavily armed animal survival to also spawn some illegitimate children as Helio... | Read more »
PUBG Mobile teams up with global phenome...
Since launching in 2019, SpyxFamily has exploded to damn near catastrophic popularity, so it was only a matter of time before a mobile game snapped up a collaboration. Enter PUBG Mobile. Until May 12th, players will be able to collect a host of... | Read more »
Embark into the frozen tundra of certain...
Chucklefish, developers of hit action-adventure sandbox game Starbound and owner of one of the cutest logos in gaming, has released their roguelike deck-builder Wildfrost. Created alongside developers Gaziter and Deadpan Games, Wildfrost will... | Read more »
MoreFun Studios has announced Season 4,...
Tension has escalated in the ever-volatile world of Arena Breakout, as your old pal Randall Fisher and bosses Fred and Perrero continue to lob insults and explosives at each other, bringing us to a new phase of warfare. Season 4, Into The Fog of... | Read more »
Top Mobile Game Discounts
Every day, we pick out a curated list of the best mobile discounts on the App Store and post them here. This list won't be comprehensive, but it every game on it is recommended. Feel free to check out the coverage we did on them in the links below... | Read more »
Marvel Future Fight celebrates nine year...
Announced alongside an advertising image I can only assume was aimed squarely at myself with the prominent Deadpool and Odin featured on it, Netmarble has revealed their celebrations for the 9th anniversary of Marvel Future Fight. The Countdown... | Read more »
HoYoFair 2024 prepares to showcase over...
To say Genshin Impact took the world by storm when it was released would be an understatement. However, I think the most surprising part of the launch was just how much further it went than gaming. There have been concerts, art shows, massive... | Read more »

Price Scanner via MacPrices.net

Apple Watch Ultra 2 now available at Apple fo...
Apple has, for the first time, begun offering Certified Refurbished Apple Watch Ultra 2 models in their online store for $679, or $120 off MSRP. Each Watch includes Apple’s standard one-year warranty... Read more
AT&T has the iPhone 14 on sale for only $...
AT&T has the 128GB Apple iPhone 14 available for only $5.99 per month for new and existing customers when you activate unlimited service and use AT&T’s 36 month installment plan. The fine... Read more
Amazon is offering a $100 discount on every M...
Amazon is offering a $100 instant discount on each configuration of Apple’s new 13″ M3 MacBook Air, in Midnight, this weekend. These are the lowest prices currently available for new 13″ M3 MacBook... Read more
You can save $300-$480 on a 14-inch M3 Pro/Ma...
Apple has 14″ M3 Pro and M3 Max MacBook Pros in stock today and available, Certified Refurbished, starting at $1699 and ranging up to $480 off MSRP. Each model features a new outer case, shipping is... Read more
24-inch M1 iMacs available at Apple starting...
Apple has clearance M1 iMacs available in their Certified Refurbished store starting at $1049 and ranging up to $300 off original MSRP. Each iMac is in like-new condition and comes with Apple’s... Read more
Walmart continues to offer $699 13-inch M1 Ma...
Walmart continues to offer new Apple 13″ M1 MacBook Airs (8GB RAM, 256GB SSD) online for $699, $300 off original MSRP, in Space Gray, Silver, and Gold colors. These are new MacBook for sale by... Read more
B&H has 13-inch M2 MacBook Airs with 16GB...
B&H Photo has 13″ MacBook Airs with M2 CPUs, 16GB of memory, and 256GB of storage in stock and on sale for $1099, $100 off Apple’s MSRP for this configuration. Free 1-2 day delivery is available... Read more
14-inch M3 MacBook Pro with 16GB of RAM avail...
Apple has the 14″ M3 MacBook Pro with 16GB of RAM and 1TB of storage, Certified Refurbished, available for $300 off MSRP. Each MacBook Pro features a new outer case, shipping is free, and an Apple 1-... Read more
Apple M2 Mac minis on sale for up to $150 off...
Amazon has Apple’s M2-powered Mac minis in stock and on sale for $100-$150 off MSRP, each including free delivery: – Mac mini M2/256GB SSD: $499, save $100 – Mac mini M2/512GB SSD: $699, save $100 –... Read more
Amazon is offering a $200 discount on 14-inch...
Amazon has 14-inch M3 MacBook Pros in stock and on sale for $200 off MSRP. Shipping is free. Note that Amazon’s stock tends to come and go: – 14″ M3 MacBook Pro (8GB RAM/512GB SSD): $1399.99, $200... Read more

Jobs Board

*Apple* Systems Administrator - JAMF - Syste...
Title: Apple Systems Administrator - JAMF ALTA is supporting a direct hire opportunity. This position is 100% Onsite for initial 3-6 months and then remote 1-2 Read more
Relationship Banker - *Apple* Valley Financ...
Relationship Banker - Apple Valley Financial Center APPLE VALLEY, Minnesota **Job Description:** At Bank of America, we are guided by a common purpose to help Read more
IN6728 Optometrist- *Apple* Valley, CA- Tar...
Date: Apr 9, 2024 Brand: Target Optical Location: Apple Valley, CA, US, 92308 **Requisition ID:** 824398 At Target Optical, we help people see and look great - and Read more
Medical Assistant - Orthopedics *Apple* Hil...
Medical Assistant - Orthopedics Apple Hill York Location: WellSpan Medical Group, York, PA Schedule: Full Time Sign-On Bonus Eligible Remote/Hybrid Regular Apply Now Read more
*Apple* Systems Administrator - JAMF - Activ...
…**Public Trust/Other Required:** None **Job Family:** Systems Administration **Skills:** Apple Platforms,Computer Servers,Jamf Pro **Experience:** 3 + years of Read more
All contents are Copyright 1984-2011 by Xplain Corporation. All rights reserved. Theme designed by Icreon.