Sind Sie auf einem Linux / BSD-Computer? In diesem Fall können Sie leicht symbolische Links verwenden, um dieses Ziel zu erreichen.
Erstellen Sie hier Version 1 der Site:
/var/www/www.example.org.v1
Erstellen Sie einen symbolischen Link, der auf dieses Verzeichnis verweist
cd /var/www
ln -s www.example.com.v1 www.example.com
Dies sollte Ihnen eine Verzeichnisliste ( ls -la
) geben, die ungefähr so aussieht:
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
Stellen Sie Ihren Webserver so ein, dass er /var/www/www.example.com
als Dokumentstamm verwendet wird. Sie müssen dies niemals ändern. Alle erneuten Verweise erfolgen auf Dateisystemebene.
Wenn Sie nun Version 2 der Site austauschen möchten, müssen Sie nur noch die neue Version einfügen in:
/var/www/www.example.org.v2
Aktualisieren Sie den symbolischen Link, um auf diese Version zu verweisen:
ln -sfh www.example.com.v2 www.example.com
So sieht Ihre Verzeichnisausgabe folgendermaßen aus:
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
Wie Sie sehen können, verweist der symbolische Link www.example.com jetzt auf Version 2 Ihrer Website. Dies ist eine atomare Operation und sollte keine Ausfallzeiten verursachen, wenn Dateien nicht verfügbar sind.
Natürlich ist immer noch eine erhebliche Komplexität erforderlich, um sicherzustellen, dass die Datenbankstrukturen aktualisiert werden, statische Ressourcen verfügbar sind (und mit der richtigen Version verknüpft sind) usw. Dies sorgt jedoch zumindest dafür, dass alle richtigen Ressourcen für die Datenbank verfügbar sind Neue Seiten sind sofort verfügbar.
Windows Vista und Server 2008 unterstützen auch symbolische Links mit dem mklink
Befehl, obwohl ich keine direkte Erfahrung mit ihnen habe.