web-dev-qa-db-fra.com

Migration avec un temps d'arrêt minimal

J'ai actuellement un site Web Joomla (3.x) actif sur un environnement d'hébergement partagé. J'aimerais remplacer ce site par un nouveau site Web Joomla (3.x) intégré à mon environnement localhost (XAMPP).

Quelle est la meilleure façon d’aborder ceci afin d’assurer temps d’immobilisation minimal?

Le processus que je suis normalement est

  • sauvegarder mon site Joomla local avec Akeeba
  • téléchargez le fichier de sauvegarde (.jpa) et Akeeba Kickstart dans le répertoire racine en direct
  • Zip contenu du répertoire racine (à l'exclusion du jpa et kickstart)
  • procéder à l'installation d'Akeeba

Si l’installation d’Akeeba se déroule sans heurts (ce qu’elle fait normalement), le temps d’arrêt n’est que de quelques minutes. Cependant, je me demande simplement s'il existe une meilleure approche, au cas où quelque chose ne se passerait pas comme prévu. Par exemple, créer une page temporaire index, ou avoir un domaine temporaire, etc.

Merci

4
jonboy

Si vous avez suffisamment de droits sur le serveur, je le fais sans aucun temps d'arrêt et sans Akeeba. J'utilise un script comme

  1. Effectuez une sauvegarde de la base de données mysql joomla, stockez le fichier dans un répertoire illisible par le serveur Apache (inaccessible via l'utilisateur www-data [ubuntu, etc.] ou http [Arch Linux, ..]):

    mysqldump -h hostname -u user --password=password databasename > filename

  2. RSYNC toute l'installation

    rsync -avz <server>:/<joomla_directory> <joomla_directory_localhost>

    exclure certains fichiers comme le fichier configuration.php si nécessaire ...

  3. READ-IN le fichier de base de données mysql -h hostname -u user --password=password databasename < filename

Sécurité:

Utilisez un fichier de mot de passe au lieu de --password=password _ si les serveurs sont utilisés par plusieurs utilisateurs, car tout le monde peut lire le mot de passe à partir de la ligne de processus lors du vidage de la base de données.

Je fais ces étapes non seulement pour synchroniser un serveur de test sur localhost, mais également pour mettre en miroir le serveur entier vers un autre emplacement une fois par jour.

Peut-être qu'il y a une meilleure solution?

4
Tom Kuschel

Il y a plusieurs approches. Utiliser la suggestion de @Tom Kuschel avec rsync si vous disposez de tels privilèges en est un. Mais il y en a d'autres aussi.

Si les seules modifications concernent le niveau de base de données, vous pouvez simplement créer la nouvelle base de données, importer vos données, puis connecter Joomla à cette base de données.

La connexion de Joomla à une autre base de données (et à des bases de données distantes) peut également fonctionner lorsque vous transférez le site d'un serveur à un autre en même temps que les modifications DNS, en supposant que vous puissiez autoriser des connexions distantes à la base de données.

Si vous devez également mettre à jour la base de code, il est toujours préférable de déployer et de tester la nouvelle version sur le serveur. D'habitude, je commence par configurer la nouvelle version sur un sous-dossier, afin de m'assurer qu'il fonctionne comme prévu (cela implique que le client le révise/le teste), puis je passe à une version ultérieure.

Pour changer, je mets généralement les anciens fichiers de site Web dans un dossier, puis je déplace le contenu du sous-dossier de ma version test vers la racine du document. Lorsque je confirme que tout est en place, je modifie les chemins de répertoire log/tmp si nécessaire sur le fichier configuration.php et j'ai terminé. Ce n'est généralement que quelques secondes tâche.

Il est également possible de changer la racine du document du compte d'hébergement pour qu'elle pointe vers ce nouveau répertoire. De cette façon, le commutateur sera instantané. Consultez la documentation de votre panneau de contrôle ou demandez l'assistance de votre fournisseur d'hébergement pour cela.

Quelques réflexions supplémentaires sur les temps d'arrêt pour la maintenance et les mises à jour: Après des années et de nombreuses migrations/déplacements de sites, j'ai conclu qu'un temps d'indisponibilité minimal est dans de nombreux cas acceptable, préférable et dans certains cas nécessaire.

L'approche la plus professionnelle consiste à avoir planifié et informé toutes les personnes impliquées/utilisant le site à ce sujet et à avoir préparé une page temporaire à afficher lors de la migration. Je suggère d’avoir d’abord essayé la migration pour avoir une idée du temps que cela prendra avec d’autres choses qui pourraient vous arriver.

Tous ces éléments sont plus importants si le site Web sur lequel vous travaillez a un contenu mis à jour par l'utilisateur. De telles migrations sont complètement différentes d'un site Web plutôt statique. Vous devez vous assurer que votre nouvelle version contiendra le contenu le plus récent. Donc, dans de tels cas, vous avez besoin d’un très bon plan qui a déjà été testé. Et bien sûr, vous ne pouvez pas éviter les temps d'arrêt.

3
FFrewin

Lorsque nous effectuons une mise à niveau du site comme celle-ci, nous utilisons un dossier temporaire et Akeeba. Créez simplement un nouveau dossier pour le site mis à jour et installez-le à l'aide d'Akeeba. Assurez-vous que vous utilisez une nouvelle base de données afin que le nouveau site entier soit entièrement fonctionnel dans le dossier. Une fois que tout est satisfait, déplacez l’ensemble de l’installation actuelle de Joomla dans un dossier, puis déplacez la nouvelle installation de Joomla à la racine. En utilisant le gestionnaire de fichiers cPanel, il faut moins d'une minute pour déplacer les fichiers. De plus, en cas de problème, il est très facile de changer de version.

3
Brent Friar