Non esiste una directory "migliore". E mentre le persone potrebbero obiettare che questa domanda è soggettiva, o che il posizionamento effettivo dei file non ha importanza, e su quest'ultimo hanno ragione, ci sono raccomandazioni standardizzate su dove mettere cosa nei sistemi simili a Unix.
Il Filesystem Hierarchy Standard lo definisce e ti offre quanto segue:
-  /var– un posto dove mettere i dati che cambiano durante il normale funzionamento, come i log, ecc./var/wwwè la directory predefinita in cui posizionare i contenuti Web per Apache, ma il suo utilizzo non è affatto standardizzato ed è solo il "solito" posto in cui lo metteresti perché le persone non cambiano le impostazioni predefinite molto spesso.
-  /srv– questa directory dovrebbe contenere i dati serviti dal sistema. Questo è di solito il posto che vuoi. L'FHS spiega:Lo scopo principale di specificare questo è in modo che gli utenti possano trovare la posizione dei file di dati per un particolare servizio e in modo che i servizi che richiedono un singolo albero per i dati di sola lettura, i dati scrivibili e gli script (come gli script cgi) possano essere ragionevolmente collocati. I dati che sono di interesse solo per un utente specifico dovrebbero andare nella home directory di quell'utente. (…) Un metodo per strutturare i dati in /srvè per protocollo, ad es.ftp,rsync,wwwecvsQuindi, crea semplicemente un /srv/wwwdirectory e usa questa. Puoi creare sottocartelle per ogni host virtuale che potresti voler servire con la tua macchina.
-  /homecontiene file che in realtà dovrebbero appartenere solo a un utente. Apache, ad esempio, consente userdirs, quindi puoi accedere ai file Web di un utente tramitehttp://example.com/~username, e vengono serviti dalpublic_htmldirectory nella home dell'utente.Se utilizzi un server condiviso tra più persone e desideri consentire a tutti di ospitare i propri script, è qui che dovrebbero andare. Ricordati di rendere le directory scrivibili solo dall'utente a cui appartengono. 
 In sostanza /srv/www e /var/www sono directory in cui dovresti creare sottodirectory per qualsiasi progetto web che potresti voler ospitare. È quindi possibile definire autorizzazioni diverse su queste directory per consentire a determinati utenti o gruppi di utenti di scrivervi. Se hai progetti per un utente alla volta, usa /home .
Bene, puoi mettere i file ovunque purché le cose possano accedervi correttamente, tuttavia i filesystem disordinati sono un mal di testa se qualcuno arriva più tardi.
 /srv è più logico se segui Filesystem Hierarchy Standard andrebbe qui.
 Se gestisci più domini puoi utilizzare /srv/domain1 /srv/domain2 etc etc quindi sottocartella lì dentro /ftp /www /tftp /logs /etc.etc.etc 
A me sembra una struttura molto solida su cui costruire e controllare facilmente
Ma come amministratore puoi fare quanto vuoi in modo pulito o disordinato.
Ok facile risposta veloce.
 Se i tuoi file web sul sistema saranno accessibili solo da UN utente sul sistema Linux. Usa la home directory dell'utente (~/ ).
 Se i tuoi file web sul sistema saranno accessibili da MULTIPLI utenti sul sistema Linux. Usa /srv/ .
Questo è esattamente ciò che afferma http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM.
Ecco la citazione:
/srv contiene dati specifici del sito serviti da questo sistema.
Lo scopo principale di specificare questo è in modo che gli utenti possano trovare la posizione dei file di dati per un particolare servizio e in modo che i servizi che richiedono un singolo albero per i dati di sola lettura, i dati scrivibili e gli script (come gli script cgi) possano essere posizionati ragionevolmente. I dati che sono di interesse solo per un utente specifico dovrebbero andare nella home directory di quell'utente.
Bonus:www? FTP? Organizzare per protocollo? Eh?
Come indicato qui in http://refspecs.linuxfoundation.org/FHS_2.3/fhs-2.3.html#SRVDATAFORSERVICESPROVIDEDBYSYSTEM
- Se il tuo sito Web è accessibile da UN SOLO utente sul sistema e SOLO tramite il browser (protocollo http), allora:~/http/your-website-directory/
- Se il tuo sito Web è accessibile solo da UN utente sul sistema e NON SOLO tramite il browser ma più protocolli (ad esempio http AND tcp AND ...) allora:~/your-website-directory/
- Se il tuo sito Web è accessibile da PIÙ utenti sul sistema e SOLO tramite il browser (protocollo http), allora:/srv/http/your-website-directory/
- Se il tuo sito Web è accessibile da PIÙ utenti sul sistema e NON SOLO tramite il browser ma più protocolli (ad esempio http AND ftp AND ...) allora:/srv/your-website-directory/
Eh perché non www? Questa è un'eredità del tempo di Apache. www non specifica quale protocollo viene utilizzato. Debian lo usa ancora oggi, mentre per esempio Arch Linux usa /srv/http.