Êtes-vous sur une machine Linux / BSD? Si c'est le cas, vous pouvez facilement utiliser des liens symboliques pour atteindre cet objectif.
Créez la version 1 du site ici:
/var/www/www.example.org.v1
Créez un lien symbolique pointant vers ce répertoire
cd /var/www
ln -s www.example.com.v1 www.example.com
Cela devrait vous donner une liste de répertoires ( ls -la
) qui ressemble à ceci:
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
Configurez votre serveur Web pour l'utiliser /var/www/www.example.com
comme racine de document. Vous n'aurez jamais à changer cela; tout re-pointage se fera au niveau du système de fichiers.
Maintenant, lorsque vous souhaitez échanger la version 2 du site, il vous suffit de placer la nouvelle version dans:
/var/www/www.example.org.v2
Et mettez à jour le lien symbolique pour pointer vers cette version:
ln -sfh www.example.com.v2 www.example.com
Ce qui laissera la sortie de votre répertoire ressembler à ceci:
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
Comme vous pouvez le voir, le lien symbolique www.example.com pointe désormais vers la version 2 de votre site. Il s'agit d'une opération atomique qui ne devrait entraîner aucun temps d'arrêt lié à l'indisponibilité des fichiers.
Bien sûr, il reste une complexité considérable pour garantir que les structures de base de données sont mises à jour, que toutes les ressources statiques sont disponibles (et liées à la bonne version), etc., mais au moins cela permet de s'assurer que toutes les bonnes ressources pour le le nouveau site est disponible instantanément.
Windows Vista et Server 2008 prennent également en charge les liens symboliques à l'aide de la mklink
commande, bien que je n'ai aucune expérience directe avec eux.