C'est peut-être une question idiote, mais j'aimerais savoir comment vous gérez la mise à jour d'un site Web en ligne. Je vais mieux m'expliquer.
Supposons que ce site Web comporte des articles, des commentaires, des messages de forum, etc. ajoutés quotidiennement. J'aimerais mettre à jour le modèle, mais cela implique de déplacer des modules, de changer de titre, etc., etc.
Et le modèle doit être testé et personnalisé, ce qui nécessite des jours, pas des heures. En attendant, le site Web a changé. Je ne peux pas simplement le sauvegarder localement, faire les modifications et mettre à jour les fichiers via FTP et la base de données. Je voudrais perdre des données!
Jusqu'ici, j'ai toujours fait le travail "deux fois": je fais une sauvegarde, je fais les modifications et annote chaque pas que je fais, puis (quand je suis satisfait de la version locale) je reproduis l'opération sur le site Web en ligne ( en espérant passer le moins de temps possible).
Y a-t-il un moyen d'améliorer cette procédure et d'être plus productif?
Comme une version "travail en cours" du site Web, est-il préférable que cet accès ne soit accessible qu’à certains utilisateurs et qu’il reste synchronisé avec la version "stable"?
Ensuite, la version "work in progress" devrait être "stabilisée" par moments, comme lors d’une opération en "un clic".
Si je ne me trompe pas, les changements de votre environnement localhost/dev-environment vers le site actif devraient être assez simples.
Avant de faire quoi que ce soit, conservez une copie de sauvegarde de votre site.
Comme vous le savez sûrement, tous les paramètres (à l'exception de la configuration globale) sont stockés dans la base de données. Si vous avez apporté des modifications au format HTML, copiez simplement tous les répertoires (administrator
, modules
, components
, etc) sur le serveur actif.
Remarque: NE PAS copier l'un des les fichiers du répertoire racine (configuration.php
, .htaccess
, web.config.txt
, etc)
Une fois que vous avez modifié les positions de module, les paramètres de modèle, etc., exportez votre base de données à partir de phpMyAdmin, mais lors de l’exportation, assurez-vous que la fonction à utiliser lors du dumping est pas INSERT
, mais UPDATE
à la place.
Importez ensuite la base de données.
Je n'ai pas essayé moi-même. C'est une récente découverte de moi dans JED, cela s'appelle StageIt et ça a l'air prometteur. StageIt affirme que c'est la solution d'environnement de transfert idéale pour Joomla, ce qui élimine les problèmes de mises à jour de sites et de processus de développement.
http://extensions.joomla.org/extension/stageit
Ceci provient de la description de l'extension dans JED.
Voici comment cela fonctionne
StageIt simplifie la mise à jour de Joomla!
Étape 1: Créez un nouvel environnement de mise en scène parfaitement adapté à votre site existant et situé "au-dessus" de votre site.
Étape 2: Effectuez toutes les modifications souhaitées dans l'environnement de transfert, sans aucune modification affectant le site actif.
Étape 3: si vous souhaitez montrer à votre client une nouvelle fonctionnalité ou des travaux que vous avez effectués, afin qu'ils (ou leur équipe juridique) puissent signer le nouveau contenu, montrez-leur simplement l'environnement de transfert.
Étape 4: Lorsque les modifications vous conviennent, cliquez simplement sur un bouton "Synchroniser avec Live" pour synchroniser les sites de transfert et de diffusion en direct, et mettez toutes vos modifications en direct!
Qu'est-ce qui est inclus?
- Créez un environnement de transfert en quelques secondes
- Développer sur l'environnement de transfert sans risque pour votre site actif
- Apportez les modifications souhaitées - mettez à jour des extensions, supprimez du contenu, etc.
- StageIt prend en charge TOUTES les extensions tierces
- Synchronisez l'environnement de transfert avec le site actif à tout moment
- Bouton visuel vous permet de basculer instantanément entre les environnements
- Les sauvegardes automatiques vous permettent de restaurer votre site en direct sur n'importe quel point de synchronisation.
- Configurez pour travailler avec une gamme de serveurs - même GoDaddy! ...
Note 1: Je ne suis en aucun cas affilié à cette extension.
Note2: Il s’agit d’un téléchargement payant.
Pour une mise en scène de site Web avancée, vous pouvez vous pencher sur Akeeba UNiTE :
UNiTE est un outil de restauration d'archives de sauvegarde automatisé et sans assistance. C'est un logiciel écrit en PHP, conçu pour restaurer et personnaliser Joomla! et WordPress sites Web de fichiers Zip, JPA et JPS créés principalement à l'aide de la suite logicielle Akeeba Backup ou Akeeba Solo. Sa mission principale est de le faire sans avoir besoin de votre attention, dans une sorte de Pour ce faire, il s’appuie sur un script CRON s’exécutant à un intervalle prédéfini, permettant à UNITE de traiter les nouvelles définitions de site.
En règle générale, UNiTE est utilisé pour les tâches suivantes:
Provisioning du nouveau Joomla! et WordPress sites Web. Vous devez uniquement fournir un fichier XML décrivant comment le nouveau site sera configuré et une archive de sauvegarde. À la fin de l'UNiTE lancez, vous aurez un site Web Joomla! à configurer, prêt à être utilisé.
Sites de démonstration . Les sites de démonstration doivent être restaurés à partir d'une bonne sauvegarde connue à des intervalles prédéfinis. Akeeba UNiTE peut facilement être utilisé pour cette tâche.
Automatisation de transfert de transfert de phase ou de transfert de phase (.) Certaines configurations exigent que, avant que quoi que ce soit passe sur le site en direct, il serveur (où tous les développements actifs ont lieu) et un serveur de transfert (où les tests d’expérience utilisateur sont effectués) avant de frapper le site actif. UNiTE peut être utilisé pour sauvegarder automatiquement le site de développement et la restauration sur le site intermédiaire, ou même sauvegarder le site intermédiaire et le restaurer sur le site actif.
Il est à noter que ceci n'est pas une extension standard de Joomla, mais une application en ligne de commande et utilise des tâches CRON. Le documentation contient plus de détails.