Cet article décrit l’installation et la maintenance de Dolibarr sur un serveur dédié tournant sous Rocky Linux 8. Dolibarr est un ERP/CRM (Enterprise Resource Planing & Customer Relationship Management) libre qui permet aux entreprises, aux associations ou aux micro-entrepreneurs de gérer une activité professionnelle ou associative : contacts, factures, commandes, stocks, agenda, etc.
La procédure d’installation présentée ici comporte quelques améliorations par rapport à la documentation officielle, notamment en termes de sécurité.
Prérequis
- un serveur dédié sous Rocky Linux 8
- un domaine valide, par exemple
gestion.slackbox.fr
- un serveur LAMP fonctionnel
En dehors des paquets de base de PHP, Dolibarr a besoin de quelques modules supplémentaires :
# dnf install -y php-gd php-intl php-pecl-zip # systemctl reload httpd php-fpm
Curieusement, les versions de Dolibarr supérieures à 16.0.0 introduisent une dépendance à php-imap
, un module PHP obsolète. Sans trop rentrer dans les détails, le module en question dépend d’un composant logiciel qui n’est plus maintenu depuis 2007. En attendant de percer ce mystère, j’opte pour la branche 14.x de Dolibarr qui constitue une version LTS officieuse.
Configuration de SELinux
L’utilisation de SELinux en mode renforcé (Enforcing
) améliore de façon significative la sécurité de notre installation Dolibarr, mais elle nécessite de procéder à quelques petits ajustements.
Étant donné que nous installons Dolibarr en-dessous de /var/www
, tous les fichiers nouvellement créés seront correctement étiquetés httpd_sys_content_t
. Rien à signaler de ce côté-là.
Dolibarr doit pouvoir envoyer des mails via Postfix, ce qu’il faut explicitement autoriser :
# setsebool -P httpd_can_sendmail on
Apache possède les droits d’écriture sur le répertoire documents
ainsi que sur le fichier htdocs/conf/conf.php
. Ces droits d’écriture seront définis par le biais des permissions Unix classiques, mais il faut également le spécifier du côté de SELinux :
# setsebool -P httpd_unified on
Notons au passage que la documentation officielle attribue à la louche les droits d’écriture d’Apache et ne fait aucune mention de l’autorisation d’envoi de mails.
Pour afficher la liste complète des booléens SELinux personnalisés, on pourra utiliser la commande semanage boolean -lC
.
Téléchargement
Créer un répertoire de téléchargement en un endroit approprié et utiliser le lien de téléchargement direct pour récupérer l’archive :
# mkdir -pv ~/webapps/dolibarr mkdir: created directory '/root/webapps/dolibarr' # cd ~/webapps/dolibarr/ # wget https://www.dolibarr.org/files/stable/standard/dolibarr-14.0.5.tgz
Le projet Dolibarr utilise le site de SourceForge par défaut, qui est une véritable plaie pour la navigation. Curieusement, le lien de téléchargement direct n’est mentionné nulle part dans la documentation. Allez comprendre.
Installation
Créer la base de données :
# mysql -u root -p Enter password: ********** Welcome to the MariaDB monitor. MariaDB [(none)]> create database `slackbox-dolibarr` -> character set utf8 -> collate utf8_unicode_ci; Query OK, 1 row affected (0.001 sec) MariaDB [(none)]> grant all on `slackbox-dolibarr`.* -> to slackboxuser@localhost -> identified by '**********'; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> flush privileges; Query OK, 0 rows affected (0.001 sec) MariaDB [(none)]> quit; Bye
Le jeu de caractères (character set
) c’est l’ensemble des caractères autorisés dans les données des tables. Quant aux critères de classement (collate
), c’est la politique de tri entre les caractères.
Décompresser l’archive téléchargée à la racine des hôtes virtuels :
# cd /var/www/ # tar xzf ~/webapps/dolibarr/dolibarr-14.0.5.tgz
Renommer en fonction de l’hébergement :
# mv -v dolibarr-14.0.5/ slackbox-dolibarr renamed 'dolibarr-14.0.5/' -> 'slackbox-dolibarr'
La documentation officielle préconise l’attribution de l’ensemble des fichiers à l’utilisateur et au groupe système auquel appartient le processus httpd
, ce qui n’est pas optimal en termes de sécurité. Nous allons donc attribuer ces fichiers à l’utilisateur nobody
et au groupe correspondant, en limitant les droits d’écriture d’Apache aux fichiers et aux répertoires pour lesquels cela est strictement nécessaire :
# chown -R nobody:nobody slackbox-dolibarr/ # find slackbox-dolibarr/ -type d -exec chmod 0755 {} \; # find slackbox-dolibarr/ -type f -exec chmod 0644 {} \;
Créer un fichier de configuration vide :
# cd slackbox-dolibarr/ # touch htdocs/conf/conf.php
Dolibarr doit pouvoir écrire dans ce fichier :
# chown nobody:apache htdocs/conf/conf.php # chmod 0660 htdocs/conf/conf.php
Créer le répertoire qui servira aux documents générés ou stockés par Dolibarr. Pour des raisons de sécurité évidentes, il se situe à l’extérieur de l’arborescence du site :
# mkdir documents
Dolibarr doit pouvoir accéder à ce répertoire en écriture :
# chown nobody:apache documents/ # chmod 0770 documents/
Pointer le navigateur sur l’URL de l’installateur, en l’occurrence https://gestion.slackbox.fr/install
. Je ne fournis pas ici d’instructions détaillées, je relève juste sommairement les étapes de l’installation :
- Sélectionner la langue (Français).
- Vérifier si tous les prérequis techniques sont remplis.
- Vérifier les chemins d’accès vers le site et les documents.
- Cocher Forcer les connexions sécurisées (HTTPS).
- Définir le nom de la base de données.
- Saisir l’identifiant et le mot de passe de l’utilisateur MySQL.
- Définir un identifiant et un mot de passe pour l’utilisateur Dolibarr.
Une fois l’installation terminée, on peut la verrouiller comme ceci :
# cd /var/www/slackbox-dolibarr/documents/ # touch install.lock # chmod 0400 install.lock
À ce stade, Apache n’a plus besoin d’écrire dans le fichier htdocs/conf/conf.php
:
# cd .. # chown nobody:nobody htdocs/conf/conf.php # chmod 0644 htdocs/conf/conf.php
Accédez à l’interface d’administration et procédez à la configuration de base :
- Saisissez au minimum le nom de la société et le pays où elle est implantée.
- Activez les modules dont vous avez besoin.
La mise à jour de Dolibarr fera l’objet de notre prochain article.
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.
 
2 commentaires
pascal · 31 décembre 2023 à 18 h 40 min
Bonjour, il ya une petite coquille : mkdir -pv ~/webapps/wordpress au lieu de mkdir -pv ~/webapps/dolibarr
kikinovak · 31 décembre 2023 à 21 h 53 min
Corrigé, merci !