These things all have to be dealt with and should not be thrown over the wall and "let the sysadmin deal with it." That's where the value of the OS and infrastructure is a set of code and config files which are kept in source control next to our code and versioned with it is so valuable. Run "vagrant up" and a fresh consistant build every time. Then develop in php, python, perl, ruby or brainfuck if you want.
It's unlikely that your server is the same os as your desktop. So you waste time setting up versions of libraries and services for e.g. windows that don't always work quite the same as in production. Plus you can also take advantage of snapshots to mess around with your local vm, confident that you can always roll back to a known version. You can do simplified load testing without actually crashing your whole machine.
It also means your devs can use whatever OS they want - the hard work of setting up a dev environment is already done.
Now this doesn't even take into account things like memcached that require a lot more customization.
I wish I had thought of this when we ran into issues with Windows people and Ruby. Too much of their time was spent fussing with stuff and crying about it. :)
-“I’m getting an error”
“Which error?”
-“Unnamed method in [...]”
Then, a mountain of pain and torture later.
"But now it works, ok?”
-“Ok.”
---
Ever had to fix someone else’s system via Skype or phone? I personally believe writing a rails clone in brainfuck is more fun.