Soluzione 1:
Secondo l'FHS, /usr
sta per shareable, read-only data
- non dove vuoi mettere il sito web. Qui è dove dovresti inserire il tuo codice (ad esempio Fedora lo fa per Wordpress). Vedi anche la guida al packaging delle risorse web per Fedora.
/var
è "file di dati variabili. Ciò include directory e file di spool, dati amministrativi e di registrazione e file transitori e temporanei". -- meglio, ma ancora non del tutto corretto -- ma molti sistemi useranno /var/www
, quindi anche se sbagli a metterlo lì sei in buona compagnia.
/srv
sta per "dati specifici del sito forniti da questo sistema". -- che sembra una buona corrispondenza, ma è molto meno comune di /var/www
.
L'altro luogo comune in cui inserire i file del sito è sotto /home
-- creando un utente speciale chiamato website
o simili, quindi posizionando i file all'interno della homedir di quell'utente (ad es., /home/website
).
Soluzione 2:
Dai un'occhiata al Filesystem Hierarchy Standard (Wikipedia). Io stesso uso /srv/web/$domain/{htdocs,logs,cgi-bin,...}.
Soluzione 3:
I siti web dovrebbero vivere nelle home directory degli utenti. Sono dati utente, dovrebbero essere isolati da un utente per sito e il contenuto dinamico dovrebbe essere eseguito nuovamente come utente separato, con i file che il contenuto dinamico deve leggere e modificare con le autorizzazioni appropriate per farlo.
Aggiornamento:
Solo perché non è un server di hosting condiviso non significa che non dovresti adottare buone pratiche di sicurezza e separare i ruoli indipendenti nelle loro zone di sicurezza.
Soluzione 4:
La guida definitiva è il Filesystem Hierarchy Standard che dice che /srv
è il posto giusto.
Soluzione 5:
Dove vivono su disco ha poca importanza. È dove li vuoi.
Ho un collegamento simbolico da /www su tutte le mie macchine a dove vivono realmente, quindi non devo mai chiedermi da una macchina all'altra. Alcune macchine più vecchie hanno /u0 e /u1 per i dischi degli utenti e metto lì le cose web. Alcuni hanno /home montato direttamente, quindi vanno lì, ma /www punta sempre al posto giusto.
Inoltre non inserisco alcuna configurazione in /usr né in /var. Va in /local (che, avete indovinato, è un collegamento simbolico da qualche parte su /u0 o /u1 in genere). Questo semplifica il backup delle cose. Eseguo solo il backup dei dischi utente.
Ovviamente ho un sito di distribuzione principale per il mio sistema operativo preferito, NetBSD. Realizzo il sistema come lo voglio su questa macchina principale (davvero un'istanza xen) e rsync /usr in giro. Mi semplifica la vita.