Nous allons installer ensemble Dolibarr sur un VPS OVHCloud dédié à cette utilisation. (Vous pouvez démarrer sur la gamme starter et augmenter la puissance par la suite).
Ce tutoriel se concentre volontairement sur les actions minimum pour obtenir rapidement un Dolibarr en ligne. Certains aspects plus poussés seront abordés dans d’autres tutoriels.
1. Réserver une URL pour Dolibarr
D’abord, vous avez besoin d’un nom de domaine sinon l’activation de l’accès sécurisé par SSL sera impossible car le fournisseur de certificats gratuits letsencrypt n’aime pas quand il y a trop de certificats avec le même nom de domaine (En effet ovh.net est utilisé dans le nom de tous les VPS).
Mon URL sera : https://dolibarr-vps.libreok.ovh
Connaître l'adresse IP de son VPS
Il faut se rendre dans le manager OVH et lire l’IPv4 :
Configurer son nom de domaine dans la zone DNS
Mon nom de domaine est libreok.ovh, je me rends dans sa configuration pour ajouter une entrée de type A :
2. Connexion au compte root
Pour administrer le VPS, vous devez vous connecter au compte root par SSH.
(Beaucoup de tutoriels sur internet présentent les commandes à taper préfixées de la commande sudo afin de préciser que la commande se lance sous le compte root. Je ne vais préfixer aucune commande de sudo car je me connecte en permanence avec le compte root. Si vous suivez le tutoriel dans l’ordre, il n’y aura aucun soucis.)
Pour vous connecter au compte root des VPS OVH, vous devez passer par le compte intermédiaire créé par OVH : debian (pour le cas des distributions Debian).
Si vous travaillez sous Windows, je vous invite à utiliser Putty pour vous connecter par le protocole SSH au VPS. Vous pouvez sans doute utiliser aussi le Powershell.
Si vous êtes déjà sous Linux ou Mac, c’est nettement plus simple, vous lancez juste un terminal :
ssh -4 debian@vps-xxxxxxxx.vps.ovh.net
Puis passez root :
sudo su -
3. Mettez à jour le système
Avant de continuer, on va mettre à jour le système fraîchement installé et le redémarrer :
3.1 Mise à jour des index des paquets logiciels
apt update
3.2 Mise à jour des paquets
apt upgrade
3.3 Redémarrage
On redémarre le VPS et on attend une minute avant de se reconnecter en root :
reboot
4. Installation du service de base de données MariaDB (anciennement MySQL)
Dolibarr aura besoin d’enregistrer une partie de ses données en base de données. Voici comment préparer le service de base de données.
4.1 Connectez-vous de nouveau serveur en tant que root.
ssh debian@vps-xxxxxxxx.vps.ovh.net
sudo su -
4.2 Installez les paquets de base de données
apt install mariadb-server
Note importante : dans beaucoup de tutoriels sur internet, vous trouverez des exemples qui proposent de lancer la commande mysql_secure_installation. Cette commande ne sert, a priori, à rien sur Debian. Le service installé par défaut est déjà sécurisé. Il n’y a pas de bases de données « test », il n’y a pas de compte anonyme. Le compte root du système est autorisé à se connecter en root de façon sécurisée sur MariaDB par socket et sans mot de passe, c’est très bien comme ça.
4.3 Créez un utilisateur pour Dolibarr dans MariaDB
4.3.1 Connexion à l’utilisation root de MariaDB
Note important : l’utilisateur root de MariaDB n’a rien à voir avec l’utilisateur root du système.
mysql -u root mysql
4.3.2 Création de la base de données dolibarr
Sous le prompt de MariaDB, tapez ces commandes suivantes :
CREATE DATABASE dolibarr CHARACTER SET utf8 COLLATE utf8_unicode_ci;
4.3.3 Création de l’utilisateur dolibarr
Inventez un mot de passe pour l’utilisateur dolibarr et notez-le pour plus tard (vous pouvez le conserver sur un gestionnaire de mot de passe).
Attention ! Remplacez mot_de_passe dans ce qui suite par un mot de passe !
CREATE USER 'dolibarr'@'localhost' IDENTIFIED BY 'mot_de_passe';
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr'@'localhost';
FLUSH PRIVILEGES;
4.3.4 Quittez le prompt MariaDB
\q
5. Installez PHP
apt install php-fpm php-curl php-intl php-mbstring php-gd php-zip php-xml php-mysql php-soap
6. Installez le service web NGINX
apt install nginx-extras
7. Créez un compte utilisateur système pour dolibarr
Nous allons organiser les répertoires de façon à être un peu tout-terrain comme si on pourrait avoir d’autres applications et en séparant l’exécution de dolibarr sous son propre utilisateur.
7.1 Création des répertoires d’accueil
Attention : remplacez « dolibarr-vps.libreok.ovh » par votre URL à vous (sans le https://)
DOLIBARRURL=dolibarr-vps.libreok.ovh
mkdir -p /var/www/users/dol /var/www/users/dol/home /var/www/users/dol/${DOLIBARRURL} /var/www/users/dol/${DOLIBARRURL}/app /var/www/users/dol/${DOLIBARRURL}/data /var/www/users/dol/${DOLIBARRURL}/log /var/www/users/dol/${DOLIBARRURL}/tmp
7.2 Création de l’utilisateur
useradd dol --home /var/www/users/dol/home --gid users --shell /bin/bash
7.3 Attributions des droits et des accès aux répertoires
chmod 0751 /var/www/users
chmod 0701 /var/www/users/dol /var/www/users/dol/${DOLIBARRURL} /var/www/users/dol/${DOLIBARRURL}/app
chmod 0700 /var/www/users/dol/home /var/www/users/dol/${DOLIBARRURL}/data /var/www/users/dol/${DOLIBARRURL}/log /var/www/users/dol/${DOLIBARRURL}/tmp
chown dol /var/www/users/dol/home /var/www/users/dol/${DOLIBARRURL}/app /var/www/users/dol/${DOLIBARRURL}/data /var/www/users/dol/${DOLIBARRURL}/log /var/www/users/dol/${DOLIBARRURL}/tmp
8. Téléchargement et décompression de Dolibarr
On passe sous l’utilisateur dolibarr pour télécharger et décompresser pour on revient root :
Attention : remplacez « dolibarr-vps.libreok.ovh » par votre URL à vous (sans le https://)
9. Création d’un lien symbolique vers le bon répertoire de l’application
Ce lien sera utilisé par le service web pour trouver le répertoire de l’application. Dans un contexte d’installation d’autres applications, ce système serait adaptable pour d’autres applications qui auraient une structure différente.
su - dol
DOLIBARRURL=dolibarr-vps.libreok.ovh
VERSION=14.0.1
SYSUSER=`whoami`
wget https://netcologne.dl.sourceforge.net/project/dolibarr/Dolibarr%20ERP-CRM/${VERSION}/dolibarr-${VERSION}.tgz
tar xvzf dolibarr-${VERSION}.tgz -C /var/www/users/${SYSUSER}/${DOLIBARRURL}/app
mv /var/www/users/${SYSUSER}/${DOLIBARRURL}/app/dolibarr-${VERSION} /var/www/users/${SYSUSER}/${DOLIBARRURL}/app/dolibarr
exit
Attention : nous sommes de nouveau root (suite à la commande « exit » de la commande précédente)
10. Configuration du pool PHP pour dolibarr
ln -s /var/www/users/dol/${DOLIBARRURL}/app/dolibarr/htdocs /var/www/users/dol/${DOLIBARRURL}/web
Éditez un nouveau fichier :
nano /etc/php/7.4/fpm/pool.d/dolibarr.conf
Puis mettez ce contenu (nous allons remplacer le mot clé DOLIBARRURL juste après) :
[dolibarr]
user = dol
group = users
listen = /var/run/php7-fpm-dol.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 5
pm.max_requests = 1000
catch_workers_output = yes
security.limit_extensions = .php
env[TEMP] = /var/www/users/dol/DOLIBARRURL/tmp/
env[TMP] = /var/www/users/dol/DOLIBARRURL/tmp/
env[TMPDIR] = /var/www/users/dol/DOLIBARRURL/tmp/
php_value[include_path] = .
php_admin_value[error_log] = /var/www/users/dol/DOLIBARRURL/log/php-fpm.error.log
php_admin_value[max_input_time] = 180
php_admin_value[memory_limit] = 256M
php_admin_value[open_basedir] = /var/www/users/dol/DOLIBARRURL/web/:/var/www/users/dol/DOLIBARRURL/app/:/var/www/users/dol/DOLIBARRURL/data/:/var/www/users/dol/DOLIBARRURL/log/:/var/www/users/dol/DOLIBARRURL/tmp/
php_admin_value[session.save_path] = /var/www/users/dol/DOLIBARRURL/tmp/
php_admin_value[upload_tmp_dir] = /var/www/users/dol/DOLIBARRURL/tmp/
php_admin_flag[allow_url_fopen] = off
Sauvegardez le fichier : ctrl-X puis Y et touche entrée
Maintenant on remplace le mot clé :
sed -i "s/DOLIBARRURL/${DOLIBARRURL}/g" /etc/php/7.4/fpm/pool.d/dolibarr.conf
Relancez php-fpm :
systemctl restart php7.4-fpm
11. Création du certificat SSL
On installe maintenant l’outil certbot qui permet de demander un certificat SSL à letsencrypt :
apt -y install certbot
L’outil va couper le serveur nginx le temps de demander le certificat :
Attention : remplacez « votreemail@votrecomain.com » par votre adresse courriel :
certbot certonly --standalone --agree-tos --no-eff-email -m votreemail@votredomain.com -d ${DOLIBARRURL} --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"
12. Configurez NGINX
On efface le fichier de configuration par défaut :
rm /etc/nginx/sites-enabled/default
On crée un répertoire pour écrire de petits bouts de configuration à inclure par la suite :
mkdir /etc/nginx/includes
On édite un nouveau fichier de configuration pour de futurs accès letsencrypt si on veut remplacer le renouvellement de la méthode standalone à la méthode webroot :
mkdir -p /var/acme/.well-known/acme-challenge/
nano /etc/nginx/includes/acme.conf
location ^~ /.well-known/acme-challenge/ {
root /var/acme;
autoindex off;
index index.html;
try_files $uri $uri/ =404;
auth_basic off;
}
On édite un nouveau fichier de configuration pour l’accès en HTTP (sans SSL) :
nano /etc/nginx/sites-available/${DOLIBARRURL}.conf
On met ceci dans l’éditeur (nous allons remplacer le mot clé DOLIBARRURL juste après) :
server {
listen *:80;
server_name DOLIBARRURL;
index index.html index.php;
access_log /var/log/nginx/DOLIBARRURL.access.log combined;
error_log /var/log/nginx/DOLIBARRURL.error.log;
location / {
index index.html index.php;
rewrite ^ https://$server_name$request_uri? permanent;
}
include includes/acme.conf;
}
On édite un nouveau fichier de configuration pour l’accès en HTTPS (pour le SSL) (nous allons remplacer le mot clé DOLIBARRURL juste après) :
nano /etc/nginx/sites-available/${DOLIBARRURL}_ssl.conf
server {
listen *:443 ssl http2;
listen [::]:443 ssl http2 ;
server_name DOLIBARRURL;
ssl_certificate /etc/letsencrypt/live/DOLIBARRURL/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/DOLIBARRURL/privkey.pem;
ssl_session_cache shared:SSL:20m;
ssl_session_timeout 1d;
ssl_session_tickets off;
ssl_buffer_size 4k;
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA;
ssl_prefer_server_ciphers off;
ssl_stapling on;
ssl_stapling_verify on;
index index.html index.php;
access_log /var/log/nginx/ssl-DOLIBARRURL_ssl.access.log combined;
error_log /var/log/nginx/ssl-DOLIBARRURL_ssl.error.log;
root /var/www/users/dol/DOLIBARRURL/web/;
location ~ (.+\.php)(.*)$ {
include /etc/nginx/fastcgi.conf;
fastcgi_pass unix:/var/run/php7-fpm-dol.sock;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_hide_header X-Frame-Options;
fastcgi_intercept_errors on;
}
}
Maintenant on remplace le mot clé :
sed -i "s/DOLIBARRURL/${DOLIBARRURL}/g" /etc/nginx/sites-available/*
On active les configurations :
cd /etc/nginx/sites-enabled
ln -s ../sites-available/${DOLIBARRURL}.conf
ln -s ../sites-available/${DOLIBARRURL}_ssl.conf
systemctl restart nginx
13. Accès à Dolibarr
Utilisez votre navigateur en remplaçant l’URL par celle de votre dolibarr : https://dolibarr-vps.libreok.ovh/
13.1 Écran 1
13.2 Écran 2
13.3 Écran 3
13.4 Écran 4
13.5 Écran 5
13.6 Écran 6
13.7 Écran 7
13.8 Création du fichier install.lock
Depuis votre connexion SSH en tant que root sur le serveur :
Attention : remplacez « dolibarr-vps.libreok.ovh » par votre URL à vous (sans le https://)
su - dol
DOLIBARRURL=dolibarr-vps.libreok.ovh
touch /var/www/users/dol/${DOLIBARRURL}/web/documents/install.lock
exit
13.9 Écran 8
14. Vous pensez avoir fini l'installation ?
Ce mémo ne parle pas des sauvegardes !
Ni de la sécurité pour protéger le serveur…
Pour la suite, inscrivez-vous dans le formulaire en page d’accueil.