Ubuntu: nginx+php-cgi on a socket
Moving our PHP application into the cloud, means for us that we are leaving FreeBSD for Linux. Not the best move (IMHO), but I shall elaborate on this in a future blog post.
Once we decided on Ubuntu as the Linux of our choice, I started by moving our development server to an instance on Slicehost. Point taken, Slicehost is not the cloud (as in Amazon EC2, Rackspace, Flexiscale or GoGrid) yet, but Linux on Slicehost and Linux on Amazon EC2 will be alike (or so I hope :-)) and a getting a small slice versus getting a small EC2 instance is an economical decision in the end.
The following is the start script for my
php-cgi processes, which I ported from FreeBSD (I previously blogged about it here).
The advantages of this script are:
php-cgiruns on a unix domain socket — no need for tcp/ip on localhost.
- No need for the infamous
spawn-fcgiscript, which never worked for me anyway, and on Ubuntu requires you to install
lighttpd(if you don't happen to be on Karmic Koala).
- You can setup different websites with different instances of
php-cgi. This is great for virtual hosting, especially on a development server where the different workspaces may have different PHP settings and you want to run versions in parallel without sharing settings and therefore maybe affecting each other.
- Icing on the cake: we could even add a custom
php.inito the start call for each instance (
-coption) to customize it even further.