Installation · 15 min read · Oct 20, 2025

Comment installer FOSSBilling avec Nginx sur Rocky Linux 9

FOSSBilling est un logiciel de facturation gratuit et open-source conçu pour être facile à utiliser pour les clients et les vendeurs. FOSSBilling est un fork de BoxBilling. Il offre une excellente expérience pour les clients avec une interface intuitive et prend en charge plusieurs passerelles de paiement. FOSSBilling convient à de nombreuses entreprises, des petites aux moyennes, voire grandes entreprises. FOSSBilling peut vous aider à automatiser votre facturation, vos paiements entrants et la gestion et communication avec les clients.

Dans ce guide, j’installerai FOSSBilling sur un serveur Rocky Linux 9. Ce tutoriel comprend l’installation du serveur web Nginx, du serveur de base de données MariaDB, de PHP-FPM 8.2 et de l’outil Certbot pour générer des certificats SSL/TLS. À la fin, vous disposerez d’une solution de facturation et de gestion des clients qui pourra être utilisée pour votre activité quotidienne.

Prérequis

Pour terminer ce guide, vous aurez besoin des éléments suivants :

  • Un serveur avec Rocky Linux 9 installé - Cet exemple utilise un Rocky Linux avec le nom d’hôte ‘fossbilling-rocky‘.
  • Un utilisateur non-root avec des privilèges d’administrateur sudo/root.
  • SELinux en mode permissif.
  • Un nom de domaine pointant vers l’adresse IP de votre serveur - Cet exemple utilise un sous-domaine ‘fossbilling.howtoforge.local‘.

Si ces exigences sont prêtes, vous pouvez compléter l’installation de FOSSBilling.

Installation du serveur web Nginx

FOSSBilling peut être exécuté avec les serveurs web Nginx et Lighttpd. Ce guide utilisera Nginx comme serveur web. Vous installerez Nginx à partir du dépôt officiel AppStream de Rocky Linux à cette étape.

Pour commencer, assurez-vous que le dépôt EPEL est ajouté à votre système. Ou vous pouvez l’installer via la commande dnf ci-dessous.

sudo dnf install epel-release

Ensuite, installez le serveur web Nginx en utilisant la commande dnf ci-dessous. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.

sudo dnf install nginx

Sortie :

installer nginx

Une fois Nginx installé, exécutez la commande systemctl ci-dessous pour démarrer et activer le service Nginx. Cela démarrera et exécutera Nginx sur le port HTTP par défaut 80 et activera Nginx pour qu’il s’exécute automatiquement au démarrage du système.

sudo systemctl start nginx  
sudo systemctl enable nginx

Maintenant, vérifiez l’état du service Nginx en utilisant l’utilitaire de commande systemctl ci-dessous. Vous devriez recevoir une sortie indiquant que le service Nginx est en cours d’exécution et qu’il est activé.

sudo systemctl status nginx

Sortie :

vérifier le démarrage nginx

Le service Nginx est maintenant en cours d’exécution, vous devrez ouvrir à la fois le protocole HTTP et HTTPS sur firewalld. Pour ce faire, vous pouvez exécuter la commande firewall-cmd ci-dessous.

sudo firewall-cmd --add-service={http,https} --permanent

Une fois les protocoles HTTP et HTTPS ajoutés à firewalld, exécutez la commande ci-dessous pour recharger firewalld et appliquer les modifications. Ensuite, vérifiez la liste des services activés sur firewalld.

Vous devriez voir que les protocoles HTTP et HTTPS ont été ajoutés à firewalld.

sudo firewall-cmd --reload  
sudo firewall-cmd --list-all

Sortie :

configuration firewalld

Avec cela, vous avez installé le serveur web Nginx et configuré firewalld pour ouvrir les protocoles HTTP et HTTPS. À l’étape suivante, vous commencerez l’installation du serveur de base de données MariaDB.

Installation du serveur MariaDB

FOSSBilling utilise MySQL/MariaDB pour stocker les données des utilisateurs. Il nécessite au moins MySQL 8 ou le serveur MariaDB 10.x. À cette étape, vous installerez le serveur MariaDB à partir du dépôt officiel de Rocky Linux, qui est MariaDB 10.5 et est compatible avec la dernière version de FOSSBilling.

Installez le serveur de base de données MariaDB sur votre système Rocky Linux via la commande dnf ci-dessous. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

sudo install mariadb-server

Sortie :

installer mariadb

Une fois MariaDB installé, exécutez l’utilitaire de commande systemctl ci-dessous pour démarrer et activer le service MariaDB.

sudo systemctl start mariadb  
sudo systemctl enable mariadb

Ensuite, exécutez la commande systemctl ci-dessous pour vérifier le service MariaDB et vous assurer que le service est en cours d’exécution. La sortie ‘active (running)‘ confirme que le serveur MariaDB est en cours d’exécution. Et la sortie ‘loaded (../mariadb.service; enabled;)‘ confirme que le service MariaDB est activé et sera exécuté automatiquement au démarrage du système.

sudo systemctl status mariadb

Sortie :

vérifier le démarrage mariadb

Avec le serveur MariaDB en cours d’exécution, vous allez maintenant sécuriser MariaDB via la commande ‘mariadb-secure-installation’. Cela inclut la configuration d’un mot de passe root pour MariaDB, la désactivation de la connexion à distance pour l’utilisateur root de MariaDB, etc.

Exécutez la commande ‘mariadb-secure-installation‘ ci-dessous pour sécuriser le déploiement de MariaDB.

sudo mariadb-secure-installation

Vous serez interrogé sur certaines configurations de MariaDB ci-dessous :

  • Passer l’authentification locale à unix_socket ? Saisissez n pour non.
  • Configurer le mot de passe root de MariaDB ? Saisissez y, puis tapez le nouveau mot de passe root de MariaDB et répétez.
  • Supprimer l’utilisateur anonyme par défaut ? Saisissez y pour confirmer.
  • Désactiver la connexion à distance pour l’utilisateur root ? Saisissez y pour confirmer.
  • Supprimer la base de données de test par défaut ? Saisissez y pour confirmer.
  • Recharger les privilèges de table et appliquer les modifications ? Saisissez y pour confirmer.

Avec le serveur MariaDB installé et en cours d’exécution, vous allez maintenant créer une nouvelle base de données MariaDB et un utilisateur qui seront utilisés pour l’installation de FOSSBilling.

Création de la base de données et de l’utilisateur

À cette étape, vous allez créer une nouvelle base de données MariaDB et un utilisateur qui seront utilisés pour l’installation de FOSSBilling.

Exécutez la commande ‘mariadb‘ ci-dessous pour vous connecter à MariaDB via l’utilisateur root. Lorsque vous êtes invité à entrer un mot de passe, saisissez votre mot de passe root de MariaDB et appuyez sur ENTRÉE.

sudo mariadb -u root -p

Après vous être connecté à l’interface de commande de MariaDB, exécutez les requêtes suivantes pour créer une nouvelle base de données MariaDB et un utilisateur. Dans cet exemple, vous allez créer une nouvelle base de données fossbillingdb avec l’utilisateur ‘fossbilling‘. Assurez-vous également de changer le mot de passe par défaut dans la requête ci-dessous.

CREATE DATABASE fossbillingdb;  
CREATE USER fossbilling@localhost IDENTIFIED BY 'password';  
GRANT ALL ON fossbillingdb.* TO fossbilling@localhost WITH GRANT OPTION;  
FLUSH PRIVILEGES;

Sortie :

créer base de données utilisateur

Enfin, exécutez la requête ci-dessous pour vérifier l’utilisateur MariaDB fossbilling@localhost afin de vous assurer que l’utilisateur a des privilèges pour accéder à la base de données ‘fossbillingdb‘.

La sortie ‘GRANT ALL PRIVILEGES ON fossbillingdb. to fossbilling@localhost‘ confirme que l’utilisateur fossbilling@localhost a des privilèges pour accéder à la base de données ‘fossbillingdb*’.

Tapez quit pour vous déconnecter de l’interface de commande de MariaDB.

SHOW GRANTS FOR fossbilling@localhost;  
quit

Sortie :

vérifier utilisateur base de données

Maintenant que vous avez créé la base de données MariaDB et l’utilisateur pour FOSSBilling. À l’étape suivante, vous allez installer PHP et PHP-FPM sur votre serveur Rocky Linux.

Installation de PHP-FPM 8.2

La dernière version de FOSSBilling est prise en charge avec PHP 8.x. À cette étape, vous allez installer PHP et PHP-FPM 8.2 via le dépôt Remi. Donc d’abord, vous allez configurer le dépôt Remi, installer les paquets PHP et PHP-FPM, puis configurer PHP-FPM avec le serveur web Nginx.

Ajoutez le dépôt PHP Remi via la commande dnf ci-dessous. Cette commande installera le dépôt Remi sur votre système Rocky Linux. Le fichier RPM ‘remi-release-9.rpm‘ confirme qu’il peut être utilisé pour la distribution RHEL 9. De plus, saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-9.rpm

Sortie :

installer dépôt remi

Ensuite, exécutez la commande dnf ci-dessous pour réinitialiser le module de dépôt pour PHP. Ensuite, vérifiez la liste des modules de dépôt PHP qui sont disponibles sur votre système.

sudo dnf module reset php  
sudo dnf module list php

Lorsque vous êtes invité à configurer la clé GPG pour le dépôt Remi, saisissez y pour confirmer et appuyez sur ENTRÉE.

accepter clé gpg

Après l’exécution de la commande ‘dnf module list php’, vous verrez plusieurs versions de PHP fournies par le dépôt officiel AppStream de Rocky Linux et le dépôt Remi.

liste dépôts

Exécutez la commande ci-dessous pour activer le dépôt PHP pour ‘remi-8.2‘. Avec cela, chaque fois que vous installerez des paquets PHP, vous installerez des paquets PHP 8.2 à partir du dépôt Remi.

Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour l’activer.

sudo dnf module enable php:remi-8.2

Sortie :

activer dépôt remi php 8.2

Avec le dépôt PHP Remi configuré, vous pouvez installer des paquets PHP.

Exécutez la commande dnf ci-dessous pour installer les paquets PHP et PHP-FPM sur votre serveur Rocky Linux. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

sudo dnf install php php-fpm php-mysql php-curl php-cli php-zip php-common php-mbstring php-xml

Sortie :

installer php

Vous serez également invité à confirmer la clé GPG pour le dépôt Remi. Saisissez y pour confirmer et appuyez sur ENTRÉE.

accepter clé gpg

Après l’installation de PHP, ouvrez le fichier de configuration PHP ‘/etc/php.ini‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/php.ini

Changez la configuration PHP par défaut avec les lignes suivantes.

upload_max_filesize = 16M   
post_max_size = 32M   
memory_limit = 256M   
max_execution_time = 600   
max_input_vars = 3000   
max_input_time = 1000

Enregistrez et quittez le fichier ‘/etc/php.ini‘ lorsque vous avez terminé.

Pour exécuter PHP-FPM avec Nginx sur les distributions basées sur RHEL, vous devez vous assurer que PHP-FPM s’exécute avec l’utilisateur et le groupe par défaut ‘nginx‘.

Sur RHEL, le serveur web Nginx s’exécute par défaut sous l’utilisateur ‘nginx‘. Alors que sur les distributions basées sur Debian, les serveurs web Nginx et Apache2 s’exécutent sous le même utilisateur et groupe ‘www-data‘.

Ouvrez la configuration du pool PHP-FPM ‘/etc/php-fpm.d/www.conf‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/php-fpm.d/www.conf

Changez les paramètres par défaut ‘user‘ et ‘group‘ en ‘nginx‘.

user = nginx  
group = nginx

Enregistrez et fermez le fichier lorsque vous avez terminé.

Ensuite, exécutez l’utilitaire de commande systemctl ci-dessous pour démarrer et activer le service PHP-FPM. Cela démarrera le service PHP-FPM avec le fichier sock par défaut ‘/run/php-fpm/www.sock‘ et activera PHP-FPM pour démarrer automatiquement au démarrage du système.

La sortie ‘Created symlink …‘ confirme que le service PHP-FPM est activé.

sudo systemctl start php-fpm  
sudo systemctl enable php-fpm

Sortie :

démarrer activer php-fpm

Maintenant, exécutez la commande systemctl ci-dessous pour vérifier l’état du service PHP-FPM. Vous devriez obtenir une sortie indiquant que PHP-FPM est ‘active (running)‘, ce qui confirme que PHP-FPM est en cours d’exécution. Et la sortie ‘Loaded …/…/; enabled;‘ confirme que le service PHP-FPM est activé.

sudo systemctl status php-fpm

Sortie :

vérifier php-fpm

Enfin, exécutez la commande php ci-dessous pour vérifier la version de PHP installée sur votre système. Ensuite, vérifiez la liste des extensions activées sur votre système.

Vous recevrez une sortie PHP 8.2 et la liste des extensions PHP qui sont activées, et assurez-vous que ces extensions ‘curl’, ‘openssl’, ‘pdo_mysql’, et ‘zlib’ sont activées.

php --version  
php -m

Sortie :

vérifier version php et extensions

Avec cela, vous avez installé PHP et PHP-FPM 8.2 sur le système Rocky Linux. Vous avez également configuré PHP-FPM pour être exécuté avec le serveur web Nginx. À l’étape suivante, vous commencerez l’installation de FOSSBilling en téléchargeant le code source.

Téléchargement du code source de FOSSBilling

À cette étape, vous allez télécharger le code source de FOSSBilling et configurer le répertoire d’installation de FOSSBilling à ‘/var/www/fossbilling’.

Avant de commencer, exécutez la commande dnf ci-dessous pour installer le paquet unzip sur votre système.

sudo dnf install unzip -y

Maintenant, créez un nouveau répertoire ‘/var/www/fossbilling‘ et déplacez votre répertoire de travail à l’intérieur. Ensuite, vous pouvez télécharger la dernière version stable de FOSSBilling via la commande curl comme ci-dessous.

mkdir -p /var/www/fossbilling; cd /var/www/fossbilling  
curl https://fossbilling.org/downloads/stable -L --output FOSSBilling.zip

Sortie :

télécharger fossbilling

Lorsque le code source de FOSSBilling est téléchargé, vous verrez le fichier FOSSBilling.zip dans votre répertoire de travail. Exécutez la commande unzip ci-dessous pour extraire le fichier ‘FOSSBilling.zip‘. Ensuite, changez la propriété du répertoire d’installation de FOSSBilling ‘/var/www/fossbilling‘ à l’utilisateur et au groupe ‘nginx‘.

unzip FOSSBilling.zip  
sudo chown -R nginx:nginx /var/www/fossbilling

Avec le code source de FOSSBilling téléchargé et le répertoire d’installation configuré, vous allez maintenant configurer le bloc de serveur Nginx qui sera utilisé pour exécuter l’application web FOSSBilling.

Configuration du bloc de serveur Nginx

À cette étape, vous allez configurer un nouveau fichier de configuration de bloc de serveur Nginx qui sera utilisé pour exécuter l’application web FOSSBilling. Avant de commencer, assurez-vous que votre nom de domaine est pointé vers l’adresse IP du serveur.

Créez un nouveau fichier de configuration de bloc de serveur Nginx ‘/etc/nginx/conf.d/fossbilling.conf‘ en utilisant la commande de l’éditeur nano ci-dessous.

sudo nano /etc/nginx/conf.d/fossbilling.conf

Ajoutez les lignes suivantes au fichier. Assurez-vous de changer le nom de domaine d’installation cible ‘fossbilling.howtoforge.local‘.

server {  
    listen 80;  
    
    set $root_path '/var/www/fossbilling';  
    server_name fossbilling.howtoforge.local;  
    
    index index.html index.htm index.php;  
    root $root_path;  
    try_files $uri $uri/ @rewrite;  
    sendfile off;  
      
    include /etc/nginx/mime.types;  
    
    # Bloquer l'accès aux fichiers sensibles et retourner 404 pour le rendre indistinguable d'un fichier manquant  
    location ~* .(ini|sh|inc|bak|twig|sql)$ {  
        return 404;  
    }  
    
    # Bloquer l'accès aux fichiers cachés sauf pour .well-known  
    location ~ /(?!well-known/) {  
        return 404;  
    }  
    
    # Désactiver l'exécution PHP dans /uploads  
    location ~* /uploads/.*.php$ {  
        return 404;  
    }  
        
    # Refuser l'accès à /data  
    location ~* /data/ {  
        return 404;  
    }  
    
    location @rewrite {  
        rewrite ^/page/(.*)$ /index.php?_url=/custompages/$1;  
        rewrite ^/(.*)$ /index.php?_url=/$1;  
    }  
    
    location ~ .php {  
        fastcgi_split_path_info ^(.+.php)(/.+)$;  
        
        # fastcgi_pass doit être changé selon votre configuration de serveur :  
        # phpx.x est votre configuration de serveur  
        # exemples : /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock ou /run/php/phpx.x-fpm.sock sont toutes des options valides   
        # Ou même localhost:port (le port par défaut 9000 fonctionnera bien)   
        # Veuillez vérifier votre configuration de serveur  
     
        fastcgi_pass unix:/run/php-fpm/www.sock;  
     
        fastcgi_param PATH_INFO       $fastcgi_path_info;  
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;  
        fastcgi_intercept_errors on;  
     
        include fastcgi_params;  
    }  
    
    location ~* ^/(css|img|js|flv|swf|download)/(.+)$ {  
        root $root_path;  
        expires off;  
    }  
}

Enregistrez et quittez le fichier lorsque vous avez terminé.

Ensuite, exécutez la commande ci-dessous pour vérifier la configuration de Nginx. Puis redémarrez le service Nginx pour appliquer les modifications. Si le test de la configuration de Nginx est réussi, vous devriez obtenir une sortie telle que ‘test réussi - syntaxe ok‘.

sudo nginx -t  
sudo systemctl restart nginx

Sortie :

configuration serveur nginx

À ce stade, vous avez FOSSBilling exécuté avec le serveur web Nginx. Mais, il est toujours dans une connexion HTTP non sécurisée. À l’étape suivante, vous sécuriserez FOSSBilling avec des certificats SSL/TLS via Certbot et Letsencrypt.

Sécurisation de FOSSBilling avec SSL/TLS Letsencrypt

Avec la configuration du bloc de serveur Nginx créée, vous allez maintenant sécuriser l’installation de FOSSBilling avec des certificats SSL/TLS, et vous pouvez y parvenir en utilisant l’outil Certbot et des certificats SSL gratuits de Letsencrypt.

Avant de commencer, assurez-vous que votre nom de domaine est pointé vers l’adresse IP du serveur et assurez-vous que vous avez une adresse e-mail qui sera utilisée pour vous inscrire à Letsencrypt.

Maintenant, exécutez la commande dnf ci-dessous pour installer Certbot et le plugin Certbot Nginx. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

sudo dnf install certbot python3-certbot-nginx

Sortie :

installer certbot

Après l’installation de Certbot, exécutez la commande ci-dessous pour générer des certificats SSL/TLS pour votre nom de domaine. Assurez-vous également de changer le nom de domaine et l’adresse e-mail dans la commande suivante.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d fossbilling.howtoforge.local

Avec cette commande, de nouveaux certificats SSL/TLS seront générés pour votre nom de domaine. De plus, cela configurera automatiquement HTTPS sur votre bloc de serveur Nginx et mettra en place une redirection automatique de HTTP vers HTTPS. Vos certificats SSL/TLS sont générés dans le répertoire ‘/etc/elstencrypt/live/fossbilling.howtoforge.local/‘.

Démarrer l’installation de FOSSBilling

Ouvrez votre navigateur web et visitez le nom de domaine de votre installation FosssBilling (c’est-à-dire : https://fossbilling.howtoforge.local/).

L’installateur de FOSSBilling devrait maintenant vérifier et valider les détails de votre système. Assurez-vous que les exigences obtiennent le statut ‘Ok‘ avec une couleur verte. Cliquez sur Suivant pour continuer.

vérifications système

Maintenant, saisissez les détails de la base de données MariaDB et de l’utilisateur que vous avez créés et cliquez à nouveau sur Suivant.

paramètres de base de données

Ensuite, saisissez les nouveaux détails de l’administrateur pour FOSSBilling. Saisissez votre nom d’utilisateur, votre adresse e-mail, votre mot de passe et votre devise par défaut. Ensuite, cliquez sur Suivant pour continuer.

configuration admin

Lorsque l’installation de FOSSBilling est réussie, vous devriez obtenir le message ‘Félicitations ! FOSSBilling a été installé avec succès.’

Vous verrez également quelques instructions pour terminer votre installation de FOSSBilling.

finishing

Retournez à votre terminal Rocky Linux et exécutez les commandes suivantes pour terminer votre installation de FOSSBilling.

Supprimez le répertoire ‘install‘ de FOSSBilling.

sudo rm -rf /var/www/fossbilling/install

Changez la permission du fichier de configuration de FOSSBilling ‘config.php‘ à 0644. Cela supprimera la permission ‘d’écriture‘ pour les autres et les groupes.

sudo chmod 0644 /var/www/fossbilling/config.php

Créez un nouveau cron pour FOSSBilling via la commande ci-dessous.

crontab -u nginx -e

Sélectionnez l’éditeur de code que vous souhaitez utiliser. Ensuite, saisissez les lignes suivantes dans le fichier.

*/5 * * * * php /var/www/fossbilling/cron.php

Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.

finishing

Maintenant, retournez dans le navigateur web et cliquez sur Terminer.

Vous obtiendrez maintenant la page suivante.

installation terminée

Si vous cliquez sur le bouton ‘Zone client‘, vous serez redirigé vers la page d’accueil de FOSSBilling.

zone client

Si vous cliquez sur le bouton ‘Zone admin‘, vous serez redirigé vers la page de connexion admin.

Connectez-vous avec votre adresse e-mail et votre mot de passe, puis cliquez sur ‘Se connecter‘.

connexion admin

Si cela réussit, vous devriez voir le tableau de bord d’administration de FOSSBilling.

tableau de bord admin

Avec cela, vous avez maintenant terminé l’installation de FOSSBilling et sécurisé avec des certificats SSL/TLS via Certbot et Letsencrypt.

Conclusion

Dans ce guide, vous avez installé un logiciel de facturation open-source et de gestion des utilisateurs FOSSBilling sur un serveur Rocky Linux 9. Vous avez également configuré la pile LEMP (serveur web Nginx, base de données MariaDB et PHP-FPM) sur un système Rocky Linux. En outre, vous avez sécurisé l’installation de FOSSBilling avec des certificats SSL/TLS générés via Certbot et Letsencrypt.

À partir de là, vous pouvez maintenant utiliser FOSSBilling pour votre entreprise. Vous pouvez ajouter plus d’utilisateurs, configurer un serveur SMTP, et bien plus encore.

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.