Sei su una macchina Linux / BSD? In tal caso, puoi facilmente utilizzare i collegamenti simbolici per raggiungere questo obiettivo.
Crea la versione 1 del sito qui:
/var/www/www.example.org.v1
Creare un collegamento simbolico che punta a questa directory
cd /var/www
ln -s www.example.com.v1 www.example.com
Questo dovrebbe darti un elenco di directory ( ls -la
) che assomiglia a questo:
lrwxr-xr-x 1 userid users 18 Aug 3 03:35 www.example.com -> www.example.com.v1
drwxr-xr-x 2 userid users 512 Aug 3 03:35 www.example.com.v1
Imposta il tuo server web da usare /var/www/www.example.com
come root del documento. Non dovrai mai cambiare questo; tutto il reindirizzamento verrà effettuato a livello di filesystem.
Ora, quando si desidera scambiare la versione 2 del sito, è sufficiente inserire la nuova versione in:
/var/www/www.example.org.v2
E aggiorna il link simbolico per puntare a questa versione:
ln -sfh www.example.com.v2 www.example.com
In questo modo l'output della directory apparirà così:
lrwxr-xr-x 1 userid users 18 Aug 3 03:43 www.example.com -> www.example.com.v2
drwxr-xr-x 2 userid users 512 Aug 3 03:42 www.example.com.v1
drwxr-xr-x 2 userid users 512 Aug 3 03:41 www.example.com.v2
Come puoi vedere, il link simbolico www.example.com ora punta alla versione 2 del tuo sito. Questa è un'operazione atomica e non dovrebbe causare tempi di inattività relativi ai file non disponibili.
Naturalmente, è ancora necessaria una notevole complessità per garantire che le strutture del database siano aggiornate, che siano disponibili tutte le risorse statiche (e collegate alla versione corretta), ecc., Ma almeno questo si occupa di assicurarsi che tutte le risorse giuste per il il nuovo sito è immediatamente disponibile.
Windows Vista e Server 2008 supportano anche collegamenti simbolici utilizzando il mklink
comando, anche se non ho alcuna esperienza diretta con essi.