With the latest discovery of some remote vulnerabilities in mysql and PHP, I had to upgrade my production server.
And to be clear, I don’t like updates.
Esp. not on mission critical apps. Updates tend to break things, you see:)

But running php 4.3.6 and mysql 4.0.20 was getting,unwise.

Upgrading PHP is easy, with the (imho) great installer of entropy.ch.
<br /> installer -verboseR -pkg ~/php-4.3.10.pkg -target /<br />
Don’t forget afterwards to restore your httpd.conf and to edit /usr/local/php/httpd.conf.php to add:
<br /> AddType application/x-httpd-php .php<br /> AddType application/x-httpd-php .html<br /> AddType application/x-httpd-php-source .phps<br />

MySQL is somewhat more tricky.
The version supplied by Apple is well,historic.
I like to compile MySQL from source (esp. because that takes 8,5 minute on my Xserve :) and install it to /usr/local/mysql-(version).
After that I create a symlink from /usr/local/mysql-(version) to /usr/local/mysql.
Take some care replacing the apple supplied mysql-binaries with symlinks to the up2date /usr/local/mysql/bin/ counterparts.
After this, upgrading mysql from source is painless.

The most recent upgrade:
<br /> # cd /usr/local/src<br /> # gnutar -xzvf mysql-4.1.10a.tar.gz<br /> # cd mysql-4.1.10a<br /> # ./configure --with-openssl \<br /> --prefix=/usr/local/mysql-4.1.10_a \<br /> --localstatedir=/usr/local/mysql-4.1.10_a/data\<br /> --mandir=/usr/local/share/man/\<br /> --with-mysqld-user=mysql<br /> # make<br /> # make install<br /> # cd /usr/local/<br /> # mysqladmin -u root -p shutdown<br /> # cp -R mysql/data mysql-4.1.10_a/data<br /> # chown -r mysql:wheel mysql-4.1.10_a/data<br /> # ln -s /usr/local/mysql-4.1.10_a /usr/local/mysql<br /> # mysqld_safe &#038;<br />

That’s all. If something goes wrong, just restore the symlink to the “old” mysql-(version) and you’re safe.
Be aware of the new password hashing mysql uses from 4.1.1 of. I used the –old-password switch untill I’ve upgraded all my clients.