Linux, Apache, MySql and PHP. I was about to go ahead with this when I read about Apache being a resource hog. After much research I decided to go with Nginx (and Citadel as a mail server).
Firstly my choice of Nginx: though it leads to some compatibility problems the reduction in resource use was just too attractive to overlook. When “The Project” goes to production I want as little load on the server as possible and the system to be as simple as possible. The simpler a program is, the fewer the points of failure, the more reliable it will be. As this is going to be almost mission critical I want something that can take the pressure and not bog my server down. Nginx is renowned for dealing with heavy load effectively whilst generating little CPU and IO. Nginx was relatively easy to install with these instructions from Kjetil Jenson. A couple of things to be aware of when you are installing using this guide: if you have a fresh system then a couple of the dependencies for this process might be missing. I am using Ubuntu and in particular had to “get-apt install libltdl-dev” after getting the error “cannot find lltdl”. Also, make sure you have MySql server installed before you start – only the client seems to be installed by default.
I should also make it clear that I turned down Lighttpd after becoming concerned about the degree of compatibility with other systems, persistant talk of niggling errors and, most importantly of all, there were just too many reports of a memory leak that has been hard to pin down. As a programmer the ghost of a memory leak haunting my web server is enough to give me serious willies and I won’t touch it until I am reassured this is sorted.
Citadel mail server was more difficult. This mail server wil not be deployed in production as I will keep it on a separate server, but I do need something to help with the collaborative process in development. Although it looks a bit dated, especially with it’s old style, room based, bulletin board, it has a very functional groupware module which I find very useful. Citadel offers easy integration with Thunderbird and it’s calander add-on. It has a quirky interface and you may wish to be sure that your host name and hosts are set up correctly. Also, keep in mind that the FQDN in the server setting are what your initial email tail will be. The mail is user based, so you will need to add aliases for people in their user settings, rather than the conventional control-panel based idea of setting up new mailboxes and then adding aliases. It just doesn’t work like that. I am still playing with it to get to the bottom of how it deals with domains, so will probably check back here when I can say definitively how it does this. At present it seems quirky and I have not found the documentation particularly illuminating. It has internal HTTPS server which is great for accessing the web based interface and collaboration tools. This can be set to separate ports so that it does not interfere with Nginx. I haven’t looked at Postfix yet, but it would be my main choice of server if I had just required mail. I did look for other groupware software but the open-source offering out there at the moment seem pretty poor.
So, with hardly any wailing and gnashing of teeth, I have a working web server, mail/groupware server, PHP and MySql – perfect platform to get started on. Everything is open-source, thus keeping development costs to a minimum. For those wondering what this mysterious project is, I will write more on that later. I have to be careful as I don’t want divulge too much before it is ready to fly