So, every once in a while I find myself in need of trying out newer, maybe, not-yet-released features in PHP. For example, recently, I wanted to test RoundCube PHP6 — this is how I did it.
On a side note, the same setup would also work for testing code with previous versions of PHP.
Toolbox
I used nginx and the PHP source with a little bit of ./configure
and make
— for kicks!
My O.S. of choice is FreeBSD and therefor the installation steps covered are tailored to it. With a small amount of Linux/Unix-fu, anyone should make it work on another distribution regardless.
Install nginx
First off, install nginx. On FreeBSD, this should be all:
cd /usr/ports/www/nginx-devel && make install distclean
On other systems, this maybe a:
apt-get install nginx
emerg nginx
rpm -shoot-myself nginx
The next step includes the infamous spawn-fcgi
which many people use to control the php-cgi processes. A lot of tutorials on the net suggest to install lighttpd because it’s a part of it, but on FreeBSD, you may skip that and do the following instead:
cd /usr/ports/www/spawn-cgi && make install distclean
Pretty cool, huh?
So once this is done, the usual tasks need to be completed — in no particular order:
- edit the nginx config and enable fastcgi in nginx (
/usr/local/etc/nginx/nginx.conf
) - enable nginx itself in
/etc/rc.conf
(nginx_enable="YES"
) - get another nifty start script (see Shell Script) to wrap
spawn-cgi
… and done!