I less-than three Mac OS X Leopard so far, but I ran into a number of issues when I tried to do my first Web development project. It had been so long since I first dug into the Tiger terminal and got everything rolling that I had to re-figure it all out on Leopard–with a few added quirks. Here are my steps; your milage my vary.
1. Install MySQL
MySQL isn’t installed by default, so I went to the MySQL web site to download MySQL 5.0 for OS X. I just use the binary package, and installed the prefpane as well (silly me).
2. Start MySQL
Unfortunately, the MySQL prefpane doesn’t exactly work in Leopard. I had to look up how to start MySQL from the terminal. It’s a simple:
ryan$ sudo /usr/local/mysql/bin/safe_mysqld
It looks like MySQL’s socket file exists in a different place than most applications expect. One workaround just symbolically links the previous location to the current one. I’m no expert, so that might be a bad idea.
3. Enable PHP
The initial configuration of Apache 2 does not enable PHP by default. Luckily,
Tyler knows how to enable PHP5 in Leopard: in the apache configuration file,
/private/etc/apache2/httpd.conf, uncomment the line
LoadModule php5_module libexec/apache2/libphp5.so
4. Change default MySQL socket
If you haven’t used Angry Fly’s workaround mentioned above, you have to
change PHP’s default MySQL socket to it’s actual value. Do this
by changing the line in
mysqli.default_socket = /tmp/mysql.sock
5. Enable .htaccess
Finally, you have to enable
.htaccess files again. The instructions for Tiger
work fine, except that Apache’s configuration file is no longer in
6. Modify the default Wordpress htaccess file
Everything was going swimmingly until I tried to enable friendly URLs in
WordPress 2.3.1. I’m still not sure why this is an issue, but I was getting
403 Forbidden errors after Wordpress created a
.htaccess file. This page
provided me the (somewhat spookey) answer.
And amazingly, I was rolling. Well, I will be rolling, as this information seeking exercise and the requisite blog post have now kept me up far past my goal turn-in time.