TL;DR: if possible, create a develop environment which is as close as the live environment
I think developing servers are only good for people writing libraries or frameworks to get started. I might understand that people want to choose a small and easy to set up webserver to get going when starting developing a website.
But, in my opinion, as soon as you're getting serious, there's nothing better than developing on a system which as close as possible to your live environment (hardware is hard to mimic, so are websites running in the cloud) including same webserver and software configurations.
Of course this means that you either:
a) have any influence on software installed or b) know what is installed and how it is configured on the live system
I encountered several bugs which happen to be only on staging / live server, but which I did not encounter in my development environment. Why? Different OS. At this point, I'm trying to recreate my live-systems in virtual machines as close as possible. This is not perfect hardware-wise, and software still might behave differently, but it's damn close.
Another plus: I'm on a rolling release distribution and software packages are updating fast. This can be problematic when developing websites and applications. All my server-software is in the VM. I can choose when and what to update, problem solved. It also keeps my desktop clean, no stuff installed for developing purposes.
There's nothing worse than developing on a windows* machine and deploying on a unix-based os.
* nothing against windows developers. Point is: different OSs behave differently.