Para os arquivos, você provavelmente vai querer usar algum tipo de sistema de controle de versão como o svn (ou um vcs distribuído como o git) e ter ramificações diferentes para coisas como dev, test e production. Dessa forma, você pode contratar alguém e eles podem verificar o ramo de desenvolvimento em sua máquina e fazer as alterações (verificando-o usando um servidor local como o WAMP / XAMPP). Conforme eles fazem alterações que você deseja ativar, mescle as alterações nas outras ramificações para testar e, por fim, para executar ao vivo.
Quanto aos bancos de dados, você pode criar outra instância menor do mySQL em algum servidor para cada um dos ramos de não produção e apenas migrar as mudanças através de scripts SQL.
A desvantagem é que requer um pouco mais de infraestrutura. Para uma opção mais barata / hackier, você pode apenas fornecer a cada desenvolvedor sua instância do WAMP / XAMPP e configurá-la manualmente para se parecer com a produção, copiando um instantâneo e um código do DB ao configurá-lo pela primeira vez. Embora essa seja provavelmente a opção "mais barata" no que diz respeito a custo e infraestrutura iniciais, ela custará caro quando você estiver tentando manter manualmente vários sites 'dev' atualizados sem nenhum repositório central e quando estiver tentando mesclar dev alterações no site ao vivo.