Recherche de site Web

Comment installer FossBilling avec Nginx sur Debian 11


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

Dans ce guide, vous allez installer une solution de facturation open source FossBilling sur le serveur Debian 11. Vous configurerez FossBilling avec LEMP Stack (Linux, Nginx, MariaDB et PHP-FPM) et sécuriserez FossBilling avec des certificats SSL/TLS via Certbot et Letsencrypt.

Conditions préalables

Pour compléter ce guide, vous aurez besoin des exigences suivantes :

  • Un serveur Debian 11 : cet exemple utilise un serveur Debian avec le nom d'hôte « fossbilling-server ».
  • Un utilisateur non root avec les privilèges d'administrateur sudo/root.
  • Un nom de domaine pointait vers une adresse IP de serveur – Cet exemple utilise un sous-domaine « fossbilling.hwdomain.io ».

Une fois ces exigences en place, vous êtes prêt à installer FossBilling.

Installation du serveur Web Nginx

Dans cette première étape, vous installerez le serveur Web Nginx sur votre système Debian. Ensuite, vous vérifierez le service Nginx pour vous assurer qu’il est en cours d’exécution et activé.

Pour commencer, exécutez la commande apt ci-dessous pour mettre à jour et actualiser l'index de votre package Debian.

sudo apt update

Une fois le référentiel mis à jour, installez le serveur Web Nginx via la commande apt ci-dessous. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.

sudo apt install nginx

Sortir :

Une fois Nginx installé, exécutez l'utilitaire de commande systemctl ci-dessous pour vérifier l'état du service Nginx et vous assurer qu'il est en cours d'exécution.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

La sortie suivante confirme que le service Nginx est en cours d'exécution et activé, ce qui signifie qu'il démarrera automatiquement au démarrage du système.

Installation et configuration du pare-feu UFW

Sur Debian, le pare-feu par défaut est iptables. Pour faciliter les choses, vous pouvez installer UFW pour gérer le pare-feu de votre système.

Au cours de cette étape, vous allez installer UFW et ouvrir les services SSH, HTTP et HTTPS pour autoriser l'accès aux utilisateurs/clients.

Installez UFW en exécutant la commande apt ci-dessous. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

sudo apt install ufw

Sortir :

Une fois UFW installé, exécutez la commande ufw ci-dessous pour ouvrir les applications OpenSSH et 'WWW Full'. Les applications OpenSSH ouvriront le port SSH 22 par défaut et les applications « WWW Full » ouvriront les services HTTP et HTTPS sur les ports 80 et 443.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

En cas de succès, vous devriez obtenir un résultat tel que « Règles mises à jour ».

Ensuite, exécutez la commande ufw ci-dessous pour démarrer et activer le pare-feu UFW. Lorsque vous y êtes invité, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer.

sudo ufw enable

La sortie « Le pare-feu est actif et activé au démarrage du système » confirme que le pare-feu UFW est en cours d'exécution et sera exécuté automatiquement au démarrage.

Enfin, exécutez la commande ci-dessous pour vérifier l'état du pare-feu UFW. Vous devriez voir que le pare-feu UFW est « actif » avec les applications OpenSSH et « WWW Full » ajoutées par-dessus.

sudo ufw status

Sortir :

Une fois le pare-feu UFW installé et configuré, vous commencerez à installer le serveur de base de données MariaDB.

Installation et configuration du serveur MariaDB

Dans cette étape, vous installerez le serveur MariaDB, sécuriserez le déploiement de MariaDB via « mariadb-secure-installation », puis vous créerez une nouvelle base de données MariaDB et un nouvel utilisateur que FossBilling utilisera.

Installez le serveur MariaDB à l'aide de la commande apt suivante. Lorsque vous y êtes invité, saisissez y et appuyez sur ENTRÉE pour continuer.

sudo apt install mariadb-server

Sortir :

Une fois MariaDB installée, exécutez l'utilitaire de commande systemctl ci-dessous pour vérifier le service MariaDB et vous assurer que le service est en cours d'exécution.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

La sortie suivante confirme que le serveur MariaDB est en cours d'exécution et qu'il est activé, ce qui signifie qu'il démarrera automatiquement au démarrage du système.

Une fois le serveur MariaDB en cours d'exécution, vous allez ensuite sécuriser le déploiement de MariaDB via la commande 'mariadb-secure-installation'. Exécutez la commande « mariadb-secure-installation » ci-dessous pour commencer à sécuriser votre serveur MariaDB.

sudo mariadb-secure-installation

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

  • Basculer l'authentification locale vers unix_socket ? Saisissez n pour non.
  • Configurer le mot de passe root MariaDB ? Saisissez y, puis tapez le nouveau mot de passe root 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 le test de base de données par défaut ? Saisissez y pour confirmer.
  • Actualiser les privilèges de la table et appliquer les modifications ? Saisissez y pour confirmer.

Maintenant que vous avez sécurisé le déploiement de MariaDB et configuré le mot de passe root de MariaDB, vous allez ensuite créer une nouvelle base de données et un nouvel utilisateur qui seront utilisés pour l'installation de FossBilling.

Pour commencer, exécutez la commande 'mariadb' ci-dessous pour vous connecter au shell MariaDB. Lorsque vous êtes invité à saisir le mot de passe, saisissez votre mot de passe root MariaDB.

sudo mariadb -u root -p

Ensuite, exécutez les requêtes ci-dessous pour créer une nouvelle base de données et un nouvel utilisateur pour Fossbilling. Dans cet exemple, vous allez créer une nouvelle base de données « fossbillingdb » et l'utilisateur MariaDB « fossbilling ». Assurez-vous également de modifier le mot de passe dans les requêtes ci-dessous.

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

Sortir :

Vérifiez maintenant les privilèges de l'utilisateur MariaDB 'fossbilling' et assurez-vous que l'utilisateur dispose des privilèges pour accéder à la base de données 'fossbillingdb'.

SHOW GRANTS FOR fossbilling@localhost;
quit

Tapez maintenant quit pour quitter.

Sortir :

Avec cela, vous avez maintenant installé le serveur MariaDB, configuré l'utilisateur root MariaDB et créé la base de données et l'utilisateur pour FossBilling. À l'étape suivante, vous installerez et configurerez PHP-FPM sur le serveur Debian.

Installation et configuration de PHP-FPM 8.2

Dans cette étape, vous allez installer et configurer PHP-FPM sur votre serveur Debian. La dernière version de FossBilling est prise en charge avec PHP 8.x. Vous allez donc maintenant installer PHP 8.2 pour l'installation de FossBiling.

Avant cela, vous devez ajouter un référentiel PHP tiers à votre serveur Debian. C'est parce que PHP 8.0 n'est toujours pas disponible sur le dépôt Debian 11.

Pour commencer, exécutez la commande ci-dessous pour installer les dépendances de base sur votre système Debian. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

sudo apt install ca-certificates gnupg2 apt-transport-https software-properties-common

Sortir :

Exécutez maintenant la commande wget ci-dessous pour télécharger la clé GPG pour le référentiel PHP.

wget -q -O /usr/share/keyrings/sury-php.gpg https://packages.sury.org/php/apt.gpg

Ensuite, exécutez la commande ci-dessous pour ajouter le référentiel PHP à votre serveur Debian.

echo "deb [signed-by=/usr/share/keyrings/sury-php.gpg] https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/sury-php.list

Ensuite, actualisez et mettez à jour l'index du package à l'aide de la commande apt ci-dessous. Cela téléchargera l'index des listes de packages pour le nouveau référentiel PHP.

sudo apt mise à jour

Sortir :

Exécutez maintenant la commande apt ci-dessous pour installer les packages PHP et PHP-FPM. Saisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer. Assurez-vous également que la version de PHP que vous allez installer est PHP 8.1 ou 8.2.

sudo apt install php php-fpm

Sortir :

Ensuite, vous pouvez installer les extensions PHP requises par FossBilling via la commande apt ci-dessous. Saisissez y pour confirmer l’installation et appuyez sur ENTRÉE pour continuer.

sudo apt install libcurl4-openssl-dev php-mysql php-curl php-cli php-zip php-common php-mbstring php-xml

Sortir :

Lorsque les packages PHP sont installés, ouvrez le fichier '/etc/php/8.2/fpm/php.ini' à l'aide de la commande de l'éditeur nano ci-dessous.

sudo nano /etc/php/8.2/fpm/php.ini

Modifiez 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/8.2/fpm/php.ini' lorsque vous avez terminé.

Ensuite, exécutez l'utilitaire de commande systemctl ci-dessous pour redémarrer le service PHP-FPM et appliquer les modifications.

sudo systemctl restart php8.2-fpm

Vérifiez ensuite le service PHP-FPM pour vous assurer qu'il est activé et en cours d'exécution. La sortie 'active (running)' confirme que le service PHP-FPM est en cours d'exécution et la sortie 'loaded (.../php8.2.service ; activé;..)' confirme que le service est activé et sera exécuté automatiquement au démarrage du système.

sudo systemctl is-enabled php8.2-fpm
sudo systemctl status php8.2-fpm

Sortir :

Enfin, exécutez la commande ci-dessous pour vérifier la version PHP et la liste des extensions activées sur votre système Debian. Dans votre terminal, vous devriez voir une sortie telle que « PHP 8.2 » qui confirme que vous avez installé PHP 8.2. Et pour la liste des extensions PHP, assurez-vous que les extensions 'pdo_mysql', 'curl', 'openssl' et 'zlib' sont activées.

php --version
php -m

Sortir :

Vous avez installé la pile LEMP avec le serveur Web Nginx, le serveur de base de données MariaDB et PHP-FPM. Vous êtes maintenant prêt à télécharger et installer FossBilling.

Téléchargement du code source de facturation FOSS

Au cours de cette étape, vous allez télécharger le code source de Fossbilling et configurer le répertoire d'installation de FossBilling, qui sera situé dans le répertoire « /var/www/fossbilling ».

Tout d’abord, exécutez la commande apt ci-dessous pour installer le package de décompression.

sudo apt install unzip -y

Ensuite, créez un nouveau répertoire '/var/www/fossbilling' et déplacez-y votre répertoire de travail. Ensuite, téléchargez la dernière version stable de FossBilling via la commande curl ci-dessous.

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

Après avoir téléchargé FossBilling, vous devriez obtenir un nouveau fichier « FOSSBilling.zip » dans votre répertoire de travail actuel.

Exécutez la commande de décompression ci-dessous pour extraire le fichier « FOSSBilling.zip ». Ensuite, remplacez la propriété du répertoire d'installation de FossBilling '/var/www/fossbilling' par l'utilisateur et le groupe 'www-data'.

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

Avec le code source FossBilling téléchargé et le répertoire d'installation correctement configuré. Vous allez ensuite créer une nouvelle configuration de bloc de serveur Nginx qui sera utilisée pour exécuter FossBilling.

Configuration du bloc serveur Nginx

Au cours de cette étape, vous allez créer une nouvelle configuration de bloc de serveur Nginx qui sera utilisée pour exécuter l'application FOSSBilling. Avant de commencer, assurez-vous que votre nom de domaine pointe vers l'adresse IP de votre serveur Debian. Cet exemple utilise le domaine « fossbiling.hwdomain.io ».

Exécutez la commande de l'éditeur nano ci-dessous pour créer une nouvelle configuration de bloc de serveur Nginx '/etc/nginx/sites-available/fossbilling'.

sudo nano /etc/nginx/sites-available/fossbilling

Ajoutez la configuration de bloc de serveur suivante au fichier. Assurez-vous de changer le nom de domaine « fossbilling.hwdomain.io » et assurez-vous d'avoir le chemin correct de votre fichier sock PHP-FPM.

server {
    listen 80;
    set $root_path '/var/www/fossbilling';
    server_name fossbilling.hwdomain.io;
    index index.html index.htm index.php;
    root $root_path;
    try_files $uri $uri/ @rewrite;
    sendfile off;
     
    include /etc/nginx/mime.types;
    # Block access to sensitive files and return 404 to make it indistinguishable from a missing file
    location ~* .(ini|sh|inc|bak|twig|sql)$ {
        return 404;
    }
    # Block access to hidden files except for .well-known
    location ~ /\.(?!well-known\/) {
        return 404;
    }
    # Disable PHP execution in /uploads
    location ~* /uploads/.*\.php$ {
        return 404;
    }
        
    # Deny access to /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 need to be changed according to your server setup:
        # phpx.x is your server setup
        # examples: /var/run/phpx.x-fpm.sock, /var/run/php/phpx.x-fpm.sock or /run/php/phpx.x-fpm.sock are all valid options 
        # Or even localhost:port (Default 9000 will work fine) 
        # Please check your server setup
        fastcgi_pass unix:/run/php/php-fpm.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 le fichier et quittez l'éditeur lorsque vous avez terminé.

Ensuite, exécutez la commande ci-dessous pour activer le fichier de blocage du serveur Nginx '/etc/nginx/sites-available/fossbilling'. Ensuite, vérifiez la configuration de Nginx pour vous assurer que vous disposez des fichiers de configuration appropriés.

sudo ln -s /etc/nginx/sites-available/fossbilling /etc/nginx/sites-enabled/
sudo nginx -t

En cas de succès, vous devriez obtenir un résultat tel que 'test réussi - syntaxe ok'.

Enfin, exécutez l'utilitaire de commande systemctl ci-dessous pour redémarrer le service Nginx et appliquer les modifications.

sudo systemctl restart nginx

Sortir :

Une fois le bloc serveur Nginx créé, vous êtes maintenant prêt à accéder et à démarrer l'installation de FossBilling. Mais avant cela, il est toujours recommandé de sécuriser votre FossBilling avec des certificats SSL/TLS pouvant être générés via Certbot et Letsencrypt.

Sécuriser FossBilling avec les certificats SSL/TLS de Letsencrypt

À ce stade, votre installation FossBilling est accessible, mais toujours sur le protocole HTTP non sécurisé. Pour sécuriser FossBilling, vous pouvez implémenter une connexion HTTPS sécurisée en ajoutant des certificats SSL/TLS à votre bloc de serveur Nginx. Pour y parvenir, vous pouvez générer des certificats SSL/TLS gratuits via Certbot et Letsencrypt.

Avant de commencer, assurez-vous que votre nom de domaine pointe vers l'adresse IP du serveur et assurez-vous que vous disposez d'une adresse e-mail qui sera utilisée pour vous inscrire sur Letsencrypt.

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

sudo apt install certbot python3-certbot-nginx

Sortir :

Une fois Certbot installé, exécutez la commande ci-dessous pour générer des certificats SSL/TLS pour votre nom de domaine. Assurez-vous également de modifier le nom de domaine et l'adresse e-mail dans la commande suivante.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email  -d fossbilling.hwdomain.io

Avec cette commande, les nouveaux certificats SSL/TLS seront générés pour votre nom de domaine. En outre, cela configurera automatiquement HTTPS sur votre bloc de serveur Nginx et configurera la redirection automatique de HTTP vers HTTPS. Vos certificats SSL/TLS sont générés dans le répertoire '/etc/elstencrypt/live/fossbilling.hwdomain.io/'.

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.hwdomain.io/).

Le programme d'installation de FossBilling devrait maintenant vérifier et vérifier les détails de votre système. Assurez-vous que les exigences obtiennent le statut « Ok » avec la couleur verte. Cliquer sur Suivant pour continuer.

Saisissez maintenant les détails de la base de données MariaDB et de l'utilisateur que vous avez créés et cliquez à nouveau sur Suivant.

Ensuite, saisissez les détails du nouvel administrateur pour FossBilling. Saisissez votre nom d'utilisateur, votre adresse e-mail, votre mot de passe et la devise par défaut. Cliquez ensuite sur Suivant pour continuer.

Une fois l'installation de FossBilling réussie, vous devriez recevoir le message 'Félicitations ! FOSSBilling a été installé avec succès.'.

Vous verrez également quelques instructions pour terminer votre installation FossBilling.

Retournez au terminal de votre serveur Debian 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

Modifiez l'autorisation du fichier de configuration FOssBilling 'config.php' en 0644. Cela supprimera l'autorisation « écrire » 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 www-data -e

Sélectionnez l'éditeur de code que vous souhaitez utiliser. Saisissez ensuite les lignes suivantes dans le fichier.

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

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

Revenons maintenant au navigateur Web et cliquez sur Terminer.

Vous obtiendrez maintenant la page suivante.

Si vous cliquez sur le bouton « Espace client », vous serez redirigé vers la page d'accueil de FossBilling.

Si vous cliquez sur le bouton « Zone d'administration », vous serez redirigé vers la page de connexion de l'administrateur.

Connectez-vous avec votre adresse e-mail et votre mot de passe, puis cliquez sur « Connexion ».

En cas de succès, vous devriez voir le tableau de bord d'administration FossBilling.

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 FOSSBilling open source de facturation et de gestion des utilisateurs sur un serveur Debian 11. Vous avez également configuré la pile LEMP (serveur web Nginx, base de données MariaDB et PHP-FPM) sur un système Debian. En plus de cela, 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 désormais utiliser FOSSBilling pour votre entreprise. Vous pouvez ajouter plus d'utilisateurs, configurer un serveur SMTP et bien d'autres encore.

Articles connexes: