Written February 2, 2008. Tagged OS X, PHP, Nginx.
I recently got myself a Mac Mini to use as HTPC and server for all things serveable.
I'm trying out the nginx web server, but I had some trouble getting PHP working on OS X Leopard. I finally did, with lots of help from Christoffer.
I roughly followed these instructions, but with these differences:
I installed php with MacPorts like so:
sudo port install php5 +fastcgi +mysql5
Obviously remove the +mysql5
bit if you don't want MySQL; if you want MySQL to autostart, install it separately first with
sudo port install mysql5 +server
and follow the instructions.
It's possible that you need to get the fcgi port before installing PHP:
sudo port install fcgi
I'm not sure it's necessary – we didn't realize we should be using the php-cgi
binary and not the php
one until after I installed fcgi, so I didn't check if it supported fcgi even before then.
You can confirm php-cgi
works with fcgi like so:
$ php-cgi -m | grep fcgi
cgi-fcgi
The script from those instructions needed some modifications. I put mine in /opt/local/etc/nginx/php_fastcgi.sh
, by the way.
Obviously, the path to the PHP binary should be changed:
PHPFCGI="/opt/local/bin/php-cgi"
Also, the su
line must be changed, since the BSD su
that comes with OS X doesn't take all those flags. Instead, you can do either of these two:
EX="/usr/bin/su -m $USERID \"$PHPFCGI -q -b $FCGIADDR:$FCGIPORT\""
EX="/usr/bin/sudo -u $USERID $PHPFCGI -q -b \"$FCGIADDR:$FCGIPORT\""
The full shell script I use is available here. I should mention I'm not actually running under a "www-data" user; OS X doesn't come with one by default, unlike some Linux distributions.
Hope this helps someone.
I only just got it running, so I'm not sure yet it works well, but it is running.