Installer Dolibarr sur Ubuntu ou Debian
Installer Dolibarr 24 sur Ubuntu 24.04 ou Debian 13 avec Apache, MariaDB et PHP, commandes testées. Plus ce que l'assistant ne fait pas : install.lock, limite d'envoi de 2 Mo, dossier des documents, clé du cron.
Cette page installe Dolibarr 24 sur un serveur Ubuntu 24.04 LTS ou Debian 13, avec les paquets de la distribution : Apache, MariaDB et PHP. Toutes les commandes ont été exécutées le 13 octobre 2026 sur une installation neuve de chacun des deux systèmes, avec l’archive officielle de Dolibarr 24.0.2.
L’assistant d’installation de Dolibarr va jusqu’au bout sans erreur, mais il laisse quatre réglages que la plupart des tutoriels ne mentionnent pas, et que nous avons constatés sur les deux systèmes :
- il ne crée pas
install.lock: les pages d’installation restent ouvertes à tout le monde ; - il propose un dossier des documents qu’il ne peut pas créer (
/var/www/dolibarr/documents) ; - Dolibarr limite les envois de fichiers à 2 Mo, même si PHP accepte davantage ;
- la clé des tâches planifiées reste vide quand on active le module : aucune tâche ne tourne.
Ce qu’il vous faut
Un serveur Ubuntu 24.04 LTS ou Debian 13, un compte qui peut utiliser sudo, et un accès au
port 80. Les paquets installent PHP 8.3 sur Ubuntu 24.04 et PHP 8.4 sur Debian 13 : Dolibarr 24
fonctionne avec les deux.
Dans les commandes, le dossier de Dolibarr est /var/www/dolibarr et celui des documents
/var/lib/dolibarr/documents, en dehors du dossier publié par Apache. C’est là que Dolibarr range
les factures, les pièces jointes et les sauvegardes : il ne doit pas être accessible depuis le web.
1. Installer Apache, MariaDB et PHP
sudo apt update
sudo apt install -y apache2 mariadb-server php libapache2-mod-php php-mysql php-gd php-curl php-intl php-zip php-xml php-mbstring curl cron
Ce sont toutes les extensions que demande l’assistant de Dolibarr : sur les deux systèmes, sa page de vérification est entièrement au vert avec cette liste.
2. Télécharger Dolibarr
cd /tmp
curl -fL -o dolibarr-24.0.2.tgz "https://sourceforge.net/projects/dolibarr/files/Dolibarr%20ERP-CRM/24.0.2/dolibarr-24.0.2.tgz/download"
sudo tar --no-same-owner -xzf /tmp/dolibarr-24.0.2.tgz -C /var/www
sudo mv /var/www/dolibarr-24.0.2 /var/www/dolibarr
sudo mkdir -p /var/lib/dolibarr/documents
sudo touch /var/www/dolibarr/htdocs/conf/conf.php
sudo chown www-data:www-data /var/www/dolibarr/htdocs/conf/conf.php
sudo chown -R www-data:www-data /var/lib/dolibarr/documents /var/www/dolibarr/htdocs/custom
Le lien est celui de l’archive officielle publiée sur SourceForge. Pour une version plus récente,
remplacez 24.0.2 aux trois endroits.
Seuls trois emplacements appartiennent à l’utilisateur d’Apache (www-data) : conf.php, que
l’assistant va remplir, le dossier des documents, et custom, où s’installent les modules
externes. Le reste du code n’a pas à être modifiable par le serveur web.
3. Créer la base de données
DBPASS=$(tr -dc 'A-Za-z0-9' </dev/urandom | head -c 24); echo "Mot de passe de la base : $DBPASS"
sudo mariadb -e "CREATE DATABASE dolibarr CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'dolibarr'@'localhost' IDENTIFIED BY '$DBPASS';
GRANT ALL PRIVILEGES ON dolibarr.* TO 'dolibarr'@'localhost';"
Notez le mot de passe affiché : l’assistant vous le demandera. Sur Ubuntu et Debian, sudo mariadb se connecte en administrateur de la base sans mot de passe : inutile de donner un compte
root à Dolibarr.
4. Configurer Apache et PHP
sudo tee /etc/apache2/sites-available/dolibarr.conf > /dev/null <<'CONF'
<VirtualHost *:80>
ServerName dolibarr.example.com
DocumentRoot /var/www/dolibarr/htdocs
<Directory /var/www/dolibarr/htdocs>
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/dolibarr_error.log
CustomLog ${APACHE_LOG_DIR}/dolibarr_access.log combined
</VirtualHost>
CONF
sudo a2ensite dolibarr
sudo a2dissite 000-default
PHPV=$(php -r 'echo PHP_MAJOR_VERSION.".".PHP_MINOR_VERSION;')
sudo tee /etc/php/$PHPV/apache2/conf.d/99-dolibarr.ini /etc/php/$PHPV/cli/conf.d/99-dolibarr.ini > /dev/null <<'INI'
upload_max_filesize = 20M
post_max_size = 22M
date.timezone = Europe/Paris
INI
sudo systemctl reload apache2
Remplacez dolibarr.example.com par le nom de votre serveur. Le site par défaut d’Apache est
désactivé : Dolibarr répond donc aussi à l’adresse IP du serveur.
Le fichier 99-dolibarr.ini est écrit deux fois : pour Apache et pour PHP en ligne de commande.
Sans la seconde copie, les tâches planifiées de l’étape 8 tournent à l’heure UTC, alors que
l’interface est à l’heure de Paris.
5. L’assistant d’installation
Ouvrez http://votre-serveur/install/ (la racine du site affiche seulement un message qui renvoie
vers cette adresse). Choisissez la langue, puis Démarrer sur la ligne « Première
installation ». Sur la page de configuration, changez trois choses :
- Répertoire devant contenir les documents générés : remplacez la valeur proposée,
/var/www/dolibarr/documents, par/var/lib/dolibarr/documents. Le dossier proposé n’existe pas, et Apache n’a pas le droit de le créer : l’assistant s’arrêterait sur « Le répertoire /var/www/dolibarr/documents n’existe pas ou n’est pas accessible ». - Identifiant et Mot de passe de la base :
dolibarret le mot de passe noté à l’étape 3. - Laissez décochées Créer la base de données et Créer le propriétaire : c’est déjà fait.
L’assistant crée ensuite les tables. Avant de continuer, une case est cochée par défaut : « Effectuez un ping +1 anonyme sur le serveur de la fondation Dolibarr ». Elle envoie une seule fois un signal à la fondation pour compter les installations ; décochez-la si vous ne le souhaitez pas. Dernière étape : l’identifiant et le mot de passe du premier administrateur.
6. Fermer l’installation
La dernière page de l’assistant le dit, mais ne le fait pas : il faut créer install.lock. Sans
lui, n’importe qui peut ouvrir /install/ et relancer l’installation sur votre base.
sudo touch /var/lib/dolibarr/documents/install.lock
sudo chmod 400 /var/www/dolibarr/htdocs/conf/conf.php
sudo find /var/www/dolibarr/htdocs -path /var/www/dolibarr/htdocs/custom -prune -o -exec chmod a-w {} +
Après ces trois commandes, /install/ répond que l’installation est verrouillée, conf.php n’est
plus lisible que par Apache, et Apache ne peut plus modifier aucun fichier du code, sauf dans
custom. Nous avons vérifié ces trois points, et qu’Apache peut toujours écrire dans custom.
Le fichier install.lock se place dans le dossier des documents, pas dans htdocs : les détails,
et la façon de faire une mise à jour avec lui, sont dans
install.lock : où le mettre.
7. Relever la limite d’envoi de 2 Mo
PHP accepte désormais 20 Mo, mais Dolibarr applique sa propre limite, fixée à 2 048 Ko à
l’installation. Dans notre test, un fichier de 5 Mo est refusé avec « La taille du fichier est trop
grande ou le fichier n’est pas fourni ». Ouvrez Accueil › Configuration › Sécurité, onglet
Fichiers, et mettez « Taille maximum des fichiers envoyés » à 20480 (la valeur est en Ko).
Le même fichier passe ensuite sans problème.
8. Les tâches planifiées
Relances par courriel, purge des fichiers temporaires, sauvegardes automatiques : ces tâches ont besoin du module Travaux planifiés et d’un passage régulier du cron du système.
- Ouvrez Accueil › Configuration › Modules / Applications et activez Travaux planifiés.
- Ouvrez sa configuration. Le champ Clé de sécurité pour l’URL de lancement des travaux programmés est vide : cliquez sur l’icône à côté du champ pour en générer une, puis sur Enregistrer. Copiez la clé affichée ; elle est chiffrée en base, inutile de la chercher dans MariaDB.
- Ajoutez la tâche au cron du système, en remplaçant
VOTRE_CLEpar la clé, etadminpar l’identifiant de l’utilisateur au nom duquel les tâches doivent tourner :
echo "*/5 * * * * www-data /usr/bin/php /var/www/dolibarr/scripts/cron/cron_run_jobs.php VOTRE_CLE admin > /dev/null 2>&1" | sudo tee /etc/cron.d/dolibarr
Pour vérifier sans attendre cinq minutes :
sudo -u www-data /usr/bin/php /var/www/dolibarr/scripts/cron/cron_run_jobs.php VOTRE_CLE admin
La réponse doit indiquer « TZ server = Europe/Paris », puis « Result of run_jobs OK » pour chaque tâche arrivée à échéance (juste après l’activation du module, il y en a trois). Si elle se termine par « securitykey provided … does not match securitykey in setup », la clé n’a pas été enregistrée ou a été mal copiée. Dans notre test, le cron du système a ensuite lancé seul une tâche arrivée à échéance, au passage suivant.
Avant d’ouvrir l’accès depuis Internet
Cette installation répond en HTTP. Avant de la rendre accessible depuis Internet, installez un
certificat (Certbot le fait pour Apache), puis mettez l’adresse en https:// dans la ligne
$dolibarr_main_url_root de conf.php. Cette étape demande un vrai nom de domaine : nous ne
l’avons pas testée ici.
Ensuite
- Sauvegarder : la base et le dossier des documents, comme expliqué dans Sauvegarder et restaurer Dolibarr.
- Mettre à jour : la méthode et les pièges, version par version, sont dans Mettre à jour Dolibarr sans casse.
- Préférez Docker ? La même installation, en conteneurs : Installer Dolibarr avec Docker Compose.
Si vous préférez qu’on s’en occupe, le forfait Installation et paramétrage part de cette configuration.