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.

Versions concernées
Dolibarr 24.0.2 (archive officielle) · Ubuntu 24.04 LTS (PHP 8.3, MariaDB 10.11, Apache 2.4.58) · Debian 13 (PHP 8.4, MariaDB 11.8, Apache 2.4.68)
Ce qui a été vérifié
Installations neuves le 13/10/2026 sur Ubuntu 24.04.5 et Debian 13, dans des conteneurs Docker : commandes de cette page exécutées telles quelles (sudo retiré, le conteneur tournant en root), assistant web suivi jusqu'à la connexion, install.lock et droits en lecture seule contrôlés, envoi d'un fichier de 5 Mo avant et après avoir relevé la limite de Dolibarr, module Travaux planifiés activé, tâche lancée à la main puis par le cron du système.

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 : dolibarr et 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.

  1. Ouvrez Accueil › Configuration › Modules / Applications et activez Travaux planifiés.
  2. 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.
  3. Ajoutez la tâche au cron du système, en remplaçant VOTRE_CLE par la clé, et admin par 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

Si vous préférez qu’on s’en occupe, le forfait Installation et paramétrage part de cette configuration.

À lire aussi

DolibarrinstallationUbuntuDebianApacheMariaDBPHPinstall.lockcron