An old machine that proved its mettle on the line can be a handy development server, on a pinch. Especially if you're starting up by pulling your boot straps, as I currently am. I have this Blue & White G3 that served me faithfully for the last, say, 10 years. Bitrot, alas, is not a hardware problem: software version numbers climb and software authors drop support for older operating systems and configurations, and we misers are left struggling and scavenging for information to make things compile and install. So, for my own reference, here's what I did this time. This applies to Mac OS X 10.4.11, AKA Tiger:
- Sybase 12
- Get the latest EBF for Mac OS, EBF17473. It works beautifully.
- XCode 2.5
- I had to root quite a bit around the newly redesigned Apple Developer site. The image name is xcode25_8m2558_developerdvd.dmg
- MySQL 5.1.49
- A challenge for GCC 4.0.1, it kernel-panicked the machine once. I followed these fine instructions. I set it up to start up automatically on boot, via the following launchd script:
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>KeepAlive</key> <true/> <key>Label</key> <string>com.mysql.mysqld</string> <key>Program</key> <string>/usr/local/mysql/bin/mysqld_safe</string> <key>RunAtLoad</key> <true/> <key>UserName</key> <string>mysql</string> <key>WorkingDirectory</key> <string>/usr/local/mysql</string> </dict> </plist>
Put it in /Library/LaunchDaemons/com.mysql.mysqld.plist.
- Apache httpd 2.2.16
- I followed these instructions. The layout I used is this:
<Layout DarwinLocal> prefix: /usr/local/apache2 exec_prefix: ${prefix} bindir: ${exec_prefix}/bin sbindir: ${exec_prefix}/sbin libdir: ${exec_prefix}/lib libexecdir: ${exec_prefix}/modules mandir: ${prefix}/man datadir: /Library/Documents sysconfdir: /etc/httpd installbuilddir: ${datadir}/build errordir: ${datadir}/error iconsdir: ${datadir}/icons htdocsdir: /Library/WebServer/Documents manualdir: ${datadir}/manual cgidir: /Library/WebServer/CGI-Executables includedir: ${prefix}/include+ localstatedir: /var runtimedir: ${localstatedir}/run logfiledir: ${localstatedir}/log/httpd proxycachedir: ${runtimedir}/proxy </Layout>
and the configuration is this (culled from here):
CFLAGS="-arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk" ./configure \ --enable-layout=DarwinLocal \ --enable-access \ --enable-actions --enable-alias --enable-asis --enable-auth \ --enable-auth_dbm --enable-auth_digest --enable-autoindex \ --enable-cache --enable-cgi --enable-dav --enable-dav_fs \ --enable-deflate --enable-dir --enable-disk_cache \ --enable-dumpio --enable-env --enable-expires --enable-fastcgi \ --enable-file_cache --enable-headers --enable-imap \ --enable-include --enable-info --enable-log_config \ --enable-log_forensic --enable-logio --enable-mem_cache --enable-mime \ --enable-mime_magic --enable-negotiation --enable-perl \ --enable-rewrite --enable-setenvif --enable-speling --enable-ssl \ --enable-status --enable-suexec --enable-unique_id --enable-userdir \ --enable-usertrack --enable-version --enable-vhost_alias --enable-so \ --enable-module=all --enable-shared=max
These instructions allow automatic launching of Apache at startup.
- zlib 1.2.5
- libpng 1.4.3
- Beware, as the DLL gets installed with the wrong name: it should be libpng14.14.dylib.
- jpegsrc v8b
- freetype 2.4.1
- gd-2.0.35
- I configured it with the usual caveats.
- libmcrypt 2.5.8
- mhash 0.9.9.9
- mcrypt-2.6.8
- php 5.3.3
- It took me quite a long while sort out the correct incantation to configure PHP. This is what worked for me:
export CFLAGS="-DSQLITE_ENABLE_LOCKING_STYLE=0 -DBIND_8_COMPAT" ./configure \ -prefix=/usr/local/php5 \ -with-config-file-path=/etc \ -with-zlib=/usr/local \ -with-xml \ -with-xsl \ -enable-ctype \ -enable-dom \ -enable-exif \ -enable-filter \ -enable-ftp \ -enable-gd-native-ttf \ -enable-libxml \ -enable-mbregex \ -enable-mbstring \ -enable-pcntl \ -enable-pdo \ -enable-posix \ -enable-shmop \ -enable-simplexml \ -enable-soap \ -enable-xml \ -enable-bcmath \ -with-bz2=/usr/bin \ -with-curl \ -with-freetype-dir=/usr/local \ -with-gd=/usr/local \ -with-iconv \ -with-jpeg-dir=/usr/local \ -with-ldap \ -with-mcrypt=/usr/local \ -with-mysql=/usr/local/mysql \ --with-mysqli=/usr/local/mysql/bin/mysql_config \ -with-openssl \ -with-pdo-mysql=/usr/local/mysql \ -with-png-dir=/usr/local \ -with-zlib=/usr/local \ -enable-dbx \ -enable-sockets \ -with-apxs2=/usr/local/apache2/sbin/apxs \ -with-kerberos=/usr \ -with-mysqlsock=/var/mysql/mysql.sock \ -without-pear
Don't forget to apply the patch described in this post. Be sure to make test!
Next, configure Apache to run phpMyAdmin, Drupal and Mantis (I won't have anything to do with either Python or Ruby, sorry). I expect this old Tiger to bend under the pressure but not break.
No comments:
Post a Comment