A melhor maneira (minha opinião) é usar um usuário diferente para o apache (www-data, apache) e usar o seguinte método:
-
crie um local de FTP que tenha os subdiretórios do seu site. Chroot esta localização. Para rastreabilidade eu usaria usuários diferentes se houvesse mais de 1.
-
configure um cronjob (/ etc / crontab com o usuário do apache como o executante) com um script que varre o diretório em busca de novos conteúdos a cada poucos minutos. Se o novo conteúdo encontrado permitir que ele faça um backup dos arquivos no lado do apache (arquivo tar compactado com nome de usuário e timestamp no nome do arquivo) dos arquivos encontrados no lado do ftp.
-
deixe o cronjob copiar os arquivos. Você pode terminar com um email de confirmação de que isso foi feito por 'usuário' e incluir um
diff
das diferenças.
Caso algo dê errado, você pode
- acompanhe quem fez isso.
- o que essa pessoa fez.
- desfaça o que ele fez.
Não use o documentroot para desenvolvimento. 1 erro de digitação pode matar o site e, em seguida, alguém tem que encontrar este erro de digitação e corrigi-lo.