Dupliquer une instance de production en instance de test
Les testeurs parmi vous voudront certainement, à un moment ou l'autre, tester les dernières mises-à-jour disponibles afin de vérifier l'état de certains bugs ou valider une nouvelle version.
Duplication d'une instance Dolibarr
Afin d'utiliser vos données en toute quiétude, voici une procédure à suivre pour créer une nouvelle instance de test Dolibarr depuis une instance déjà existante. Cette nouvelle instance vous permettra de mener les tests (migration puis utilisation de l'application) en toute quiétude.
Attention! Cette documentation a pour base des exemples pris d'une installation Dolibarr avec la configuration suivante
- Linux Debian Etch
- MySQL 4.1
- Apache2
Dans le cas où vous utiliseriez un autre type de machine, merci de procéder aux modifications d'usage.
Répertoire
Étant donné que, fort probablement, toute votre installation de Dolibarr réside dans un unique répertoire, une copie sera facile.
cp -ra /var/www/dolibarr /var/www/dolibarrtest
Cette commande copiera votre répertoire Dolibarr (supposé être dans /var/www/dolibarr ici) dans un second répertoire dolibarrtest sur lequel vous mènerez vos tests. Le -ra veut dire récursif et conserve les droits sur les fichiers. Cette dernière option vous permettra de ne pas vous soucier des questions de droits sur les fichiers après copie.
Base de données
- Faites une sauvegarde de votre base de données:
mysqldump -u utilisateur -p --result-file=dolibarr.date.sql base_de_donnees
- Éditez le fichier résultant et modifiez la ligne USE base_de_donnees; en début de fichier pour la remplacer par un nouveau nom de base de données, celui de la base de données de tests, par exemple USER base_de_donnees_test; dans ce cas-ci.
- Créez la nouvelle base de données si ce n'est pas déjà fait. Si la base de données existe, droppez-la et recréez-la, afin de n'obtenir au final que les données réellement extraites de votre base de données courante.
mysqladmin -u utilisateur -p drop base_de_donnees_test
mysqladmin -u utilisateur -p create base_de_donnees_test
Il se peut que vos permissions ne vous autorisent pas à dropper/créer une base de données. Dans ce cas, reportez-vous à votre documentation de MySQL concernant les permissions.
- Importez les données de votre base de départ dans votre nouvelle base
mysql -u utilisateur -p base_de_donnees_test < dolibarr.date.sql
Hôtes virtuels d'Apache
Si vous utilisez des hôtes virtuels dans Apache, il faudra en créer un nouveau pour votre installation de test. Par exemple, si vous aviez quelque chose comme ceci dans un fichier nommé /etc/apache2/sites-available/dolibarr:
<VirtualHost *:80>
ServerName dolibarr.mondomaine.net
ServerAdmin webmaster@mondomaine.net
DocumentRoot /var/www/dolibarr/htdocs
DirectoryIndex index.php
ErrorLog /var/log/apache2/dolibarr-error.log
CustomLog /var/log/apache2/dolibarr-access.log combined
</VirtualHost>
... il faudra à présent en faire une copie dans, par exemple, /etc/apache2/sites-available/dolibarrtest:
<VirtualHost *:80>
ServerName dolibarrtest.mondomaine.net
ServerAdmin webmaster@mondomaine.net
DocumentRoot /var/www/dolibarrtest/htdocs
DirectoryIndex index.php
ErrorLog /var/log/apache2/dolibarrtest-error.log
CustomLog /var/log/apache2/dolibarrtest-access.log combined
</VirtualHost>
Attention, ceci ne suffit pas à rendre cet hôte disponible, il faudra également:
- mettre en place le sous-domaine spécifié, avec notamment des règles de redirection sur la machine qui sert de DNS à votre domaine
- faire un lien symbolique depuis /etc/apache2/sites-enabled/dolibarrtest vers /etc/apache2/sites-available/dolibarrtest
ln -s /etc/apache2/sites-enabled/dolibarrtest /etc/apache2/sites-available/dolibarrtest
- recharger la config d'Apache2
/etc/init.d/apache2 reload
Fichier de configuration
Enfin, le fichier de configuration /var/www/dolibarrtest/htdocs/conf/conf.php doit absolument être modifié. Tant qu'il n'est pas modifié, votre installation dolibarrtest se connectera en effet toujours à votre vraie base de données, pas celle de test! Éditez le fichier de configuration et modifiez le nom de la base de données à laquelle se connecter. Dans la lignée des exemples ci-dessus, renommez base_de_donnees en base_de_donnees_test. Renommez également les répertoires auxquels votre configuration fait référence. Les /var/www/dolibarr deviennent /var/www/dolibarrtest.
Vérifications
Si vous avez bien réalisé les étapes préparatoires, vous devriez à présent pouvoir charger votre nouveau portail dans votre navigateur et vérifier qu'il s'agit bien d'un portail distinct. Comment faire?
Modification DB
- Modifiez une petite information (par exemple modifiez vos détails persos) sur votre portail de test
- Déloggez-vous
- Loggez-vous sur votre portail de production
- Vérifiez si l'information a changé. Si elle a changé, reparcourez les étapes ci-dessus pour voir ce que vous avez manqué. Aucune modification n'aurait dû être apportée!
- Si aucune modification n'a été apportée, c'est bien! Retournez sur votre portail de test et vérifiez que la modification que vous y aviez apportée y est toujours... bien.
Modification documents
- Ajoutez un document à l'une de vos fiches sur votre portail de test
- Déloggez-vous
- Loggez-vous sur votre portail de production.
- Vérifiez si le nouveau document s'y trouve. S'il s'y trouve, reparcourez les étapes ci-dessus pour voir ce que vous avez manqué. Aucune modification n'aurait dû être apportée!
- Si aucune modification n'a été apportée, c'est bien! Retournez sur votre portail de test et vérifiez que la modification que vous y aviez apportée y est toujours... bien.
Mise-à-jour
Vous avez tout copié, et votre configuration vous met à l'abri de modifications indésirées dans votre répertoire de production ? Vous avez vérifié que vous pouviez accéder à votre portail de test depuis votre navigateur ? Bien! Maintenant, vous pouvez faire une montée de version de Dolibarr sans risque dans votre instance de test. Pour cela, suivre la procédure de mise a jour décrite sur la page Installation - Mise à jour
Votre portail de test sera alors prêt avec une nouvelle version de Dolibarr. Bravo!