iMac G3 Web Server – Part 1
Recently an old iMac G3 of mine made it back home after a lengthy stint at the in-laws (introducing them to computers a few years back). My initial thoughts were to take her to the great recycling depot in the sky, but then I got to thinking. “What could a web designer/developer use a seriously underpowered G3 chip be useful for?”
And you all chant in unison… a web server!
So this is just a document of the stuff I went through to get from point a to point b. It’s not so much instructional, but if you wish to follow along, by all means, have at it.
Serve with Mac OS X… maybe not.
So I got to fiddling around with this old bubble of a machine and thought initially that I would just try to use the services provided in the Mac OS (the iMac was running 10.4 at the time). This proved to be so painfully slow that I decided to dig up an old copy of OS X 10.2 (it was called Jaguar back then, in case you forgot) and install it. While this was a tad faster, those services that were installed were sorely out of date.
Since it was clear that I was going to have to get into the command line to install MySQL and update and configure the PHP that was there, and since the the whole desktop environment was going to be redundant by the time this thing goes into service… why use the Mac OS at all?
When in Freeville, do as Linus does
That’s when I decided that Ubuntu Server was the way to go. There are a ton of worthy Linux distro’s out there but I decided to go with Ubuntu because their PowerPC ports are pretty much up to date with with the core development. I could have used Debian but trying to track down the latest stable PowerPC build was like trying to finding a hot date at a Star Trek convention.
I just so happened to have an Ubuntu Server 8.1 iso laying around, so just as a proof of concept, before tying up anymore of Ubuntu’s precious bandwidth, I tried the install out to be sure that all would work on the old PPC box. And it did.
Fast forward to the Jaunty Jackalope
The install was pretty straight forward, I just followed the steps as each prompt appeared. All in all it took about an hour on the old beast. One helpful hint: it seems the install will fail repeatedly if you don’t have the machine connected to the internet. I just ended up plugging in to the spare ethernet port of my Mac Pro, but I am assuming any connection would do.
I have a package for you
I wasn’t really sure what packages I was going to need in the end, so I installed most, if not all of them. But at the very least I knew I was going to need a LAMP stack *, ssh and possibly DNS (though unlikely that I would bother to set it up). If you plan to make your own server you might as well take the time to research the options since installing and configuring them at install will save you the hassle later.
Once the install was done I was prompted to reboot. So I did. If your a total nerd like me you’ll get excited to hear that familiar Mac “Bong!” yet moments later get nothing but a black screen, white text and a login prompt… I can almost hear echos of Joshua (WOPR) in his computerized voice asking me, “Would you like to play a game?”
With everything done right in the install I was prompted with**:
I entered my username, in my case “adam”, and hit return:
ubuntu login: adam
Entered my password, •••••••••••, and hit return:
Up pops a bunch of info like last login, software details, load and memory usage etc… and the all important command prompt:
The root of the solution
Here is where I am about to do a no-no… if I ever planned to run this machine in the DMZ (beyond the safety of my internal network and out side my router) I would NEVER do this. However, I want to have pure, unadulterated, God-like power over this machine and I do not want to sudo (“superuser do”) it every step of the way.
Those of you familiar with Ubuntu know that they disable root login by default. But this cripples what various apps can do in various directories over ssh — namely ExpanDrive, MacFusion, various FTP clients and from what I can tell some TextMate bundles (though I probably have them configured wrong) — and I don’t want to always have my head stuck in the terminal.
So, to enable root login I had to set a root password (since the install never prompted me for a root password). This is done with:
adam@ubuntu:~$ sudo passwd root
I then entered my own password for adam@ubuntu, •••••••••••:
[sudo] password for adam:
And the the new root password twice:
Enter new UNIX password:
Retype new UNIX password:
passwd: password updated successfully
Now I am able to switch to root:
adam@ubuntu:~$ sudo su root
And after entering the password I just created I am now presented with:
Now with that out of the way I can proceed with causing some real damage…
More to come
In following posts I will talk about my ssh setup, configuring apache and working with my in my new server environment.
- * LAMP stands for Linux-Apache-MySQL-PHP/Perl/Python and is a generic acronym for a stack of applications that provide the kind of web services need to run web applications and dynamic web content.
- ** I set my server name up to the default “ubuntu”. Yours may read different.