For the files you'll probably want to use some kind version control system like svn (or a distributed vcs like git) and have different branches for things like dev, test, and production. That way, you can hire someone and they can check out the dev branch on their machine and make their changes (checking it using a local webserver like using WAMP/XAMPP). As they make changes you want to go live, merge their changes into the other branches to test and, finally, to run live.
As for databases, you can make another smaller instance of mySQL on some server for each of the non-production branches and just migrate the changes through SQL scripts.
The downside is that it requires a bit more infrastructure. For a cheaper/hackier option you can just provide each developer with their WAMP/XAMPP instance and manually set it up to look like the production by copying a DB snapshot and code when they first set it up. While this is probably the 'cheaper' option as far as up-front cost and infrastructure, it will cost dearly when you're trying to manually keep multiple 'dev' sites up to date with no central repository and when you're trying to merge dev changes into the live site.