Duplicate a Dolibarr instance into another one
The testers among you will certainly want to test the latest updates at some point in order to check the status of certain bugs or commit to a new version.
In order to use your data with peace of mind, here is a procedure to follow to avoid losses ...
Warning! This documentation is based on examples taken from a Dolibarr installation with the following configuration
- Linux Debian Etch
- MySQL 4.1
- Apache2
If you use another type of machine, please make the usual modifications.
Copy
As your data is of great value, it would be a shame to lose it. In order to test an update, why not copy your data elsewhere?
Directory
Since, most likely, your entire Dolibarr installation resides in a single directory, copying will be easy.
cp -ra /var/www/dolibarr /var/www/dolibarrtest
This command will copy your Dolibarr directory (supposed to be in /var/www/dolibarr here) in a second dolibarrtest directory on which you will run your tests. The -ra means recursive and retains files permission. This last option will allow you not to worry about file rights issues after copying.
Database
- Backup your database:
mysqldump -u utilisateur -p --result-file=dolibarr.date.sql database
- Edit the resulting file and modify the line USE database; at the start of the file to replace it with a new database name, that of the test database, for example USER test_database; in this case.
- Create the new database if you haven't already. If the database exists, drop it and recreate it, in order to get in the end only the data actually extracted from your current database.
mysqladmin -u user -p drop test_database
mysqladmin -u user -p create test_database
Your permissions may not allow you to drop/create a database. In this case, see your MySQL documentation regarding permissions.
- Importez les données de votre base de départ dans votre nouvelle base
mysql -u user -p test_database < dolibarr.date.sql
Apache Virtual Hosts
If you are using virtual hosts in Apache, you will need to create a new one for your test installation. For example, if you had something like this in a file named /etc/apache2/sites-available/dolibarr:
<VirtualHost *:80>
ServerName dolibarr.mydomain.net
ServerAdmin webmaster@mydomain.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>
... it will now be necessary to make a copy in, for example, /etc/apache2/sites-available/dolibarrtest:
<VirtualHost *:80>
ServerName dolibarrtest.mydomain.net
ServerAdmin webmaster@mydomain.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>
Be careful, this is not enough to make this host available, it will also be necessary:
- set up the specified subdomain, including redirection rules on the machine that serves as DNS for your domain
- create a symbolic link from /etc/apache2/sites-enabled/dolibarrtest vers /etc/apache2/sites-available/dolibarrtest
ln -s /etc/apache2/sites-enabled/dolibarrtest /etc/apache2/sites-available/dolibarrtest
- reload the Apache2 config
/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 à votr 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, récupérez la dernière version de Dolibarr et copiez-là aussi sec par-dessus l'autre, qui est dans /var/www/dolibarrtest (si on vous le demande, choisissez "écraser"). Ensuite, pointez votre navigateur sur le portail de test, et ajoutez "install/" dans l'URL. Le processus d'installation/mise-à-jour de Dolibarr devrait vous proposer une mise-à-jour. Acceptez et suivez les étapes.
Votre portail de test est maintenant mis-à-jour à la dernière version. Bravo!