Installation de dolibarr sur debian 10


Vous avez installé une Debian 10 et toutes ses mises à jour

Il faut être admin pour lancer certaines commandes, utilisées sudo ou passer admin avant de lancer les commandes comportant un dièze (#)
sudo commande
su - pour passer admin provisoirement
su -l root -c "votre commande" l'alternative pour ne pas rester connecté en root

Installation des prérequis

Nous allons installer les paquet prérequis au fonctionnement de Dolibarr

apt install apache2 mariadb-server php php-gd php-curl php-intl php-zip php-mysql

Configuration de MariaDb

Nous allons sécuriser la base

mysql_secure_installation
  1. Il vous demande le mot de passe actuel, cliquez sur entrée
  2. Il souhaite savoir si vous souhaitez mettre un mot de passe au compte root
    entrez y puis appuyez sur entrée
    Entrez votre mot de passe à deux reprises
  3. Il indique que par défaut MariaDB contient un utilisateur anonyme permettant à tout le monde de se connecter et demande si vous souhaitez le supprimer
    entrez y puis appuyez sur la touche entrée
  4. Il demande si vous souhaitez désactiver l'accès à distance au compte root
    entrez y puis appuyez sur la touche entrée
  5. Il souhaite savoir si vous souhaitez supprimer l'environnement de test créer par défaut
    entrez y puis appuyez sur la touche entrée
  6. Souhaitez vous appliquer ces changements
    entrez y puis appuyez sur la touche entrée

Entrez dans la base

mysql -u root

La création de l'utilisateur et de la base servira lors du paramétrage de Dolibarr via l'interface web

CREATE DATABASE dolibarr DEFAULT CHARACTER SET utf8 DEFAULT COLLATE utf8_general_ci;
CREATE USER 'dolibarr'@'localhost' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr'@'localhost';
FLUSH PRIVILEGES;

Attention à bien respecter l'encodage de la base, sinon lors de la configuration, au moment du remplissage de la base vous pourrez tomber sur l'erreur suivante
Erreur SQL DB_ERROR_1071 Specified key was too long; max key length is 767 bytes

Mise en place de dolibarr et configuration d'apache2

Allez à cette adresse Dolibarr puis dans le dossier de la dernière version et copier le lien du fichier .tgz.
Voici le lien de la version actuelle lors de la rédaction de l'article : dolibarr-13.0.2.tgz
Entrez la commande suivante sur le serveur

curl -SL "https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/13.0.2/dolibarr-13.0.2.tgz/download" --output dolibarr-13.0.2.tgz

Voici l'explication des options CURL

  • S affichent les erreurs
  • L suit les redirections pour télécharger le fichier final

Nous allons créer le répertoire dolibarr dans /var/www

mkdir /var/www/dolibarr

Vous allez extraire dolibarr dedans, --strip-components=1 sert à supprimer le répertoire parent de l'archive qui regroupe tous les fichiers

tar xzf dolibarr-13.0.2.tgz -C /var/www/dolibarr --strip-components=1

Vous allez modifier le propriétaire du dossier dolibarr, on attribue le dossier à l'utilisateur et au groupe www-data qui sont utilisé pour le fonctionnement d'apache

chown -R www-data: /var/www/dolibarr/

Pour la création des Virtualhost sur apache vous avez deux possibilités

- Accès depuis l'extérieur
Entrez la ligne suivante dans le terminal pour créer un virtualhost dolibarr.conf

echo -e "<VirtualHost *:80>\nServerName dolibarr.mondomaine.net\nServerAdmin webmaster@localhost\nDocumentRoot /var/www/dolibarr/htdocs\nDirectoryIndex index.php\nErrorLog \${APACHE_LOG_DIR}/dolibarr-error.log\nCustomLog \${APACHE_LOG_DIR}/dolibarr-access.log combined\n</VirtualHost>\n">/etc/apache2/sites-available/dolibarr.conf

Modifier dans /etc/apache2/site-available/dolibarr.conf dolibarr.mondomaine.net par votre domaine puis webmaster@localhost par votre mail de contact.

Entrez la commande suivante pour activer la configuration du site dolibarr et réactualisé apache

a2ensite dolibarr && systemctl reload apache2

- Accès depuis le réseau interne

  • Entrez la ligne suivante dans le terminal pour modifier le virtualhost par défaut
sed -i 's+DocumentRoot /var/www/html+DocumentRoot /var/www/dolibarr/htdocs\n DirectoryIndex index.php+'  /etc/apache2/sites-available/000-default.conf

Entrez la commande pour prendre en compte les modifications

systemctl reload apache2

Réseau externe et SSL

Le ssl est un prérequis pour passer en HTTPS, le rewrite permet de faire la redirection des utilisateurs du HTTP vers le HTTPS (option --redirect de certbot plus bas)

a2enmod ssl rewrite

on installe certbot pour la génération du certificat Lets Encrypt, le module python sert pour la liaison apache certbot

apt install certbot python3-certbot-apache

Cette commande va générer le certificat et dupliqué le virtualhost dolibarr.conf (crée plus haut) en dolibarr-le-ssl.conf et le modifier pour qu'il devienne un virtualhost SSL pour l'accès en HTTPS. Il va ajouter une redirection dans le virtualhost HTTP (dolibarr.conf) pour renvoyer toutes les requêtes vers le HTTPS (dolibarr-le-ssl.conf)

certbot run --apache --agree-tos --redirect -m webmaster@localhost --no-eff-email -d dolibarr.mondomaine.net --rsa-key-size 4096

Si vous ne souhaitez pas indiquer de mail remplacer -m webmaster@localhost --no-eff-email par --register-unsafely-without-email
Attention le mail vous permet de recevoir les informations liées à une révocation de votre certificat et permettra surement d'être reconnu lorsque vous les contacterez en cas de souci

Explication des options :

  • run lance cerbot par défaut, car plusieurs options sont disponibles
  • --apache indique que la configuration se fera avec apache
  • --agree-tos indique que l'on accepte les conditions d'utilisation
  • --redirect indique que l'on veut faire une redirection du HTTP vers le HTTPS, le site ne sera accessible que depuis le HTTPS (utilisation du module rewrite d'apache vu plus haut)
  • -m webmaster@localhost --no-eff-email indique notre mail, mais refuse que l'on enregistre cet email au prêt de l'EFF (l'Electronic Frontier Foundation)
  • -d dolibarr.mondomaine.net on souhaite avoir un certificat pour le sous domaine dolibarr
  • --rsa-key-size 4096 indique la taille de la clé souhaitée

Afin de respecter les normes, il est possible d'ajouter l'enregistrement DNS suivant chez votre hébergeur. Cela permet d'indiquer que Lets encrypt est le seul autorisé à délivrer un certificat au sous-domaine dolibarr

Voici l'article CAA

Voici à quoi ressemble la ligne chez bookmyname
dolibarr 28800 CAA 0 issue "letsencrypt.org"

Le renouvellement des certificat est automatique, il se fait via un cron qui est dans /etc/cron.d/certbot qui s'execute tout les 12h