I’m in a completely different environment but I can share what we do:
local testing: testing (unit tests) and staging servers (acceptance tests) as virtual machines (good thing: you can reset them after use), we use VMware, but there’s others.
source control: we use git ( + gerrit). I really recommend it, but the learning curve when developing in a team is steep (rebasing, patching, reviews …). I guess github will do the job, but as far as I remember they make you pay for closed source projects.
I use XAMPP without any problems - unless you have Skype or something else on port 80. You then need to change the configuration files so that XAMPP uses a different port.
You might want to check out vagrant – it lets you spin up virtual environments to develop / test in while letting you still use your local development tools to handle things. So you can build on whatever flavor of linux you use on production and not lose your gui tools in the process.