GNU/Linux >> Tutoriels Linux >  >> Debian

Comment installer BoxBilling sur Debian 11

BoxBilling est un logiciel de facturation communautaire écrit en PHP. Il s'agit d'une facturation gratuite et open source conçue pour être facile à utiliser pour les clients et les vendeurs. BoxBilling offre une excellente expérience aux clients avec une interface intuitive et prend également en charge plusieurs passerelles de paiement.

Dans ce tutoriel, nous allons vous montrer comment installer BoxBilling avec Nginx, PHP-FPM et MariaDB sur Debian 11 Bullseye.

Prérequis

  • Un serveur Debian 11 Bullseye.
  • Un utilisateur avec des privilèges sudo root.
  • Un nom de domaine ou un sous-domaine pointant vers l'adresse IP du serveur. Surtout dans un environnement de production.

Installation et configuration de PHP

Tout d'abord, vous installerez et configurerez PHP-FPM sur votre système Debian. la dernière version de BoxBilling nécessitait PHP-FPM 7.4 ou supérieur, qui est la version PHP par défaut sur le référentiel Debian.

Avant de commencer, actualisez l'index du paquet Debian à l'aide de 'apt ' ci-dessous.

mise à jour sudo apt

Une fois le référentiel actualisé, exécutez la commande suivante pour installer PHP-FPM avec toutes les extensions supplémentaires pour BoxBilling.

sudo apt install php-fpm php-cli php-common php-zip php-mysql php-gd php-intl php-curl php-imap php-mbstring php-xml php-json libpcre3 openssl git unzip -y 

Une fois que toute l'installation de PHP est terminée, éditez le fichier 'php.ini' à l'aide de l'éditeur nano.

sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.ini

Changez l'option de 'memory_limit ', 'max_execution_time ' et 'date.timezone ' avec votre environnement préféré. Dans cet exemple, nous utilisons le serveur avec 2 Go de mémoire RAM, nous allons donc allouer 'memory_limit ' pour PHP à '512 Mo '. Pour le 'data.timezone ', changez-le avec votre fuseau horaire.

memory_limit =512M
max_execution_time =360
date.timezone =Europe/Paris

Enregistrez le fichier et quittez.

Maintenant, redémarrez le service PHP-FPM et appliquez la nouvelle configuration en exécutant le 'systemctl ' ci-dessous.

sudo systemctl redémarrer php7.4-fpm

Enfin, vérifiez le service PHP-FPM à l'aide de la commande ci-dessous.

état sudo systemctl php7.4-fpm

Vous verrez la sortie lorsque le service PHP-FPM est en cours d'exécution.

Installer Nginx et MariaDB

Dans cette étape, vous allez installer le serveur Web Nginx et la base de données MariaDB. L'application BoxBilling nécessite au moins MySQL v8, mais prend également en charge une autre implémentation MySQL telle que MariaDB.

Installez Nginx et MariaDB sur le serveur Debian 11 en utilisant le 'apt ' ci-dessous.

sudo apt install nginx-full mariadb-server -y

Une fois l'installation de Nginx et MariaDB terminée, exécutez la commande suivante pour vérifier le service Nginx et le service MariaDB.

état sudo systemctl nginx
état sudo systemctl mariadb

Vous devriez maintenant obtenir la sortie car les services Nginx et MariaDB sont actifs et en cours d'exécution.

Configuration de la base de données MariaDB

Après l'installation de MariaDB, il est recommandé de configurer le mot de passe root pour MariaDB. Vous utiliserez la commande 'mysql_secure_installation' pour configurer le mot de passe root de MariaDB et déployer MariaDB avec une sécurité de base.

Exécutez la commande 'mysql_secure_installation ' sur votre serveur terminal.

mysql_secure_installation

Il vous sera maintenant demandé de saisir le mot de passe root pour MariaDB. Appuyez sur ENTRÉE pour continuer car l'installation par défaut de MariaDB est livrée sans mot de passe root.

Entrez le mot de passe actuel pour root (entrez pour aucun) :
OK, mot de passe utilisé avec succès, continuez...

Tapez maintenant 'Y ' pour basculer l'authentification par défaut de l'utilisateur root vers 'unix_socket_authentication ' méthode. Cela garantira que l'utilisateur root est toujours connecté à MariaDB à partir de la machine locale.

La définition du mot de passe root ou l'utilisation de unix_socket garantit que personne
ne peut se connecter à l'utilisateur root de MariaDB sans l'autorisation appropriée.

Votre compte root est déjà protégé, vous pouvez donc en toute sécurité répondez 'n'.

Passez à l'authentification unix_socket [O/n] O
Activé avec succès !
Rechargement des tables de privilèges..
 ... Réussi !

Tapez 'O ' pour changer le mot de passe root pour MariaDB, puis saisissez le nouveau mot de passe pour MariaDB et répétez.

Votre compte root est déjà protégé, vous pouvez donc répondre "n" en toute sécurité.

Modifier le mot de passe root ? [O/n] O
Nouveau mot de passe :
Entrez à nouveau le nouveau mot de passe :
Mot de passe mis à jour avec succès !
Rechargement des tables de privilèges..
 ... Réussi !

Tapez 'O ' pour supprimer l'utilisateur anonyme par défaut sur MariaDB.

Par défaut, une installation MariaDB a un utilisateur anonyme, permettant à n'importe qui
de se connecter à MariaDB sans avoir à créer un compte utilisateur
pour lui. Ceci est uniquement destiné aux tests et à rendre l'installation
un peu plus fluide. Vous devez les supprimer avant de passer à
un environnement de production.

Supprimer les utilisateurs anonymes ? [O/n] O
 ... Succès !

Tapez 'O ' pour désactiver la connexion à distance pour l'utilisateur root.

Normalement, root ne devrait être autorisé à se connecter qu'à partir de 'localhost'. Cela
assure que personne ne peut deviner le mot de passe root à partir du réseau.

Interdire la connexion root à distance ? [O/n] O
 ... Succès !

Tapez 'O ' pour supprimer la base de données par défaut 'test ' et tous les privilèges en plus.

Par défaut, MariaDB est livré avec une base de données nommée "test" à laquelle tout le monde peut
accéder. Ceci est également destiné uniquement aux tests et doit être supprimé
avant de passer à un environnement de production.

Supprimer la base de données de test et y accéder ? [O/n] O
 - Suppression de la base de données de test...
 ... Succès !
 - Suppression des privilèges sur la base de données de test...
 ... Succès !

Enfin, rechargez les privilèges de table sur MariaDB pour appliquer les nouvelles modifications.

Le rechargement des tables de privilèges garantira que toutes les modifications apportées jusqu'à présent
entreront en vigueur immédiatement.

Recharger les tables de privilèges maintenant ? [O/n] O
 ... Succès !

Nettoyage...

Et vous avez configuré le mot de passe root MariaDB et votre serveur MariaDB est maintenant sécurisé.

Tout est fait ! Si vous avez terminé toutes les étapes ci-dessus, votre installation de MariaDB
devrait maintenant être sécurisée.

Merci d'utiliser MariaDB !

Configuration d'une nouvelle base de données et d'un nouvel utilisateur pour BoxBilling

Dans cette étape, vous allez créer une nouvelle base de données et un nouvel utilisateur pour l'installation de BoxBilling. Toutes les données relatives à BoxBilling seront stockées dans la base de données MariaDB.

Maintenant, connectez-vous au shell MariaDB à l'aide de la commande suivante.

mysql -u root -p

Exécutez les requêtes suivantes pour créer une nouvelle base de données et l'utilisateur 'boxbilling ' avec le mot de passe 'dbpassBoxBilling ', puis accordez tous les privilèges sur la base de données 'boxbilling ' à l'utilisateur '[email protected] '. Après cela, rechargez tous les privilèges de table pour appliquer les nouvelles modifications sur MariaDB.

CREATE DATABASE boxbilling ;
CREATE USER [email protected] IDENTIFIED BY 'dbpassBoxBilling' ;
ACCORD ALL ON boxbilling.* TO [email protected] WITH GRANT OPTION ;
FLUSH PRIVILEGES ;

Tapez maintenant 'quitter ' pour vous déconnecter du shell MariaDB. Et vous avez créé la nouvelle base de données MariaDB et l'utilisateur pour l'installation de BoxBilling.

Téléchargement du code source BoxBilling

BoxBilling peut être installé de plusieurs façons. Vous pouvez installer la dernière version de BoxBilling à partir du code source et installer toutes les dépendances PHP à l'aide de "Composer", ou télécharger la version stable de BoxBilling et la déplacer vers le répertoire racine Web.

Dans cette étape, nous allons installer la dernière version stable de BoxBilling. Au moment d'écrire ces lignes, la dernière version stable de BoxBilling est v4.22 .

Créez un nouveau répertoire racine Web '/var/www/boxbilling ' et déplacez-y votre répertoire de travail.

mkdir -p /var/www/boxbilling/
cd /var/www/boxbilling

Téléchargez la dernière version stable du code source de BoxBilling à l'aide de la commande wget et extrayez le fichier 'BoxBilling.zip ' à l'aide de la commande de décompression.

wget https://github.com/boxbilling/boxbilling/releases/download/4.22.1.3/BoxBilling.zip
décompressez Boxbilling.zip

Maintenant, créez un nouveau répertoire 'cache ' et 'télécharger ' sur le '/var/www/boxbilling/ '.

mkdir -p /var/www/boxbilling/bb-data/{cache,uploads}

Ensuite, changez le propriétaire de '/var/www/boxbilling' répertoire vers l'utilisateur et le groupe 'www-data ' en utilisant la commande ci-dessous.

sudo chown -R www-data:www-data /var/www/boxbilling

Autoriser l'utilisateur 'www-data ' pour écrire dans le répertoire 'cache ' et 'télécharger '.

sudo chmod u+rw /var/www/boxbilling/bb-data/{cache,uploads}

Et maintenant, vous êtes prêt à configurer le serveur Web Nginx pour le logiciel BoxBilling.

Configuration de Nginx pour BoxBilling

Dans cette étape, vous allez ajouter de nouveaux blocs de serveur Nginx pour BoxBilling. Avant de créer une configuration de bloc de serveur, assurez-vous que le nom de domaine pointe vers le serveur. Assurez-vous également que les certificats SSL sont générés pour votre domaine, vous pouvez utiliser les certificats SSL gratuits de Letsencrypt.

Déplacez votre répertoire de travail vers '/etc/nginx/sites-available ' et créez une nouvelle configuration de blocs serveur 'boxbilling.conf ' à l'aide de l'éditeur nano.

cd /var/www/sites-available/
nano boxbilling.conf

Copiez et collez la configuration suivante. Et assurez-vous de changer le nom de domaine et le chemin des certificats SSL.

server {
    listen 80 ;
    server_name billing.example.io ;
    return 302 https://$server_name$request_uri ;
}

server {
  listen 443 ssl http2 ;

     set $root_path '/var/www/boxbilling' ;

     server_name  billing.example.io ;

     index index.html index.htm index.php ;
     root $root_path ;
     try_files $uri $uri/ @rewrite ;
     sendfile off ;

  ssl_certificate /etc/letsencrypt/live/billing.example.io/fullchain.pem;
  ssl_certificate_key /etc/letsencrypt/live/billing.example.io/privkey.pem;

ssl_protocols TLSv1.2 ;
  ssl_prefer_server_ciphers on ;
  ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA -AES256-GCM-SHA384 : ECDHE-RSA-AES256-SHA384 ;
  ssl_ecdh_curve secp384r1 ; # Nécessite nginx>=1.1.0
  ssl_session_timeout  10 m ;
  ssl_session_cache partagé : SSL :10 m ;
  ssl_session_tickets désactivé ; # Nécessite nginx>=1.5.9
  # ssl_stapling activé ; # Nécessite nginx>=1.3.7
  # ssl_stapling_verify activé ; # Nécessite nginx => 1.3.7
  résolveur 8.8.8.8 8.8.4.4 valid=300s ;
  resolver_timeout 5s ;
  add_header X-Frame-Options DENY ;
  add_header X-Content -Type-Options nosniff ;
  add_header X-XSS-Protection "1 ; mode=block" ;

    access_log /var/log/nginx/example.com.access.log ;
    error_log /var/log/nginx/example.com.error.log;

     location @rewrite {
         rewrite ^/(.*)$ /index.php?_url=/ $1 ;
     }

    emplacement ~ \.php$ {
         include snippets/fastcgi-php.conf;
         fastcgi_pass unix:/var/run/php/php7 .4-fpm.sock ;
         inclure fastcgi_params ;
         fastcgi_intercept_errors on ;
    }

     # Désactiver l'exécution PHP dans bb-uploads et bb-data
location ^~ /bb-uploads/ { }
     location ^~ /bb-data/ {
       deny all ;
     }

     location ~* ^/(css |img|js|flv|swf|download)/(.+)$ {
         root $root_path ;
         expire ;
         proxy_no_cache 1 ;
         proxy_cache_bypass 1 ;
     }

     emplacement ~ /\.ht {
         refuser tout ;
     }
 }

Enregistrez le fichier et quittez.

Ensuite, exécutez la commande suivante pour activer la configuration du bloc serveur 'boxbilling.conf ' et vérifiez la configuration de Nginx.

ln -s /etc/nginx/sites-available/boxbilling.conf /etc/nginx/sites-enabled/
sudo nginx -t

Si votre configuration Nginx est correcte, vous verrez le message de sortie tel que 'Syntaxe OK '.

Enfin, redémarrez le service Nginx pour appliquer la nouvelle configuration.

sudo systemctl redémarrer nginx

Installer et configurer BoxBilling

À ce stade, vous avez configuré le serveur Web BoxBilling et Nginx. Vous allez maintenant commencer à installer et à configurer BoxBilling à partir du navigateur Web.

Ouvrez votre navigateur Web et saisissez le nom de domaine BoxBilling dans la barre d'adresse.

https://boxbilling.example.io/

Assurez-vous que toutes les exigences ont la couleur verte, ce qui signifie que votre système est rempli pour l'installation de BoxBilling.

Cochez la case Licence 'J'accepte' et cliquez sur 'SUIVANT ' bouton.

Entrez la base de données et l'utilisateur pour BoxBilling et cliquez sur 'SUIVANT ' à nouveau.

Maintenant, saisissez le nouvel utilisateur administrateur, l'adresse e-mail et le mot de passe pour BoxBilling et cliquez sur 'SUIVANT '.

Et vous avez installé BoxBilling avec succès, mais vous aurez besoin d'une configuration supplémentaire que vous devez appliquer au serveur BoxBilling.

Cliquez sur 'TERMINER ' et vous avez terminé l'installation de BoxBilling.

Vous pouvez accéder à la page d'accueil de BoxBilling et vous verrez une page similaire à celle ci-dessous.

Post-installation de BoxBilling

Une fois l'installation de Boxbilling terminée, vous devrez supprimer le répertoire 'install' et modifier l'autorisation du fichier 'bb-config.php', puis créer un nouveau cronjob pour l'application BoxBilling.

Supprimer l'installation de BoxBilling ' à l'aide de la commande suivante.

rm -rf /var/www/boxbilling/install

Changer la permission du 'bb-config.php ' à 644 . Cela signifie que seul l'utilisateur 'www-data' est autorisé à écrire dans ce fichier.

sudo chmod 644 /var/www/boxbilling/bb-config.php

Créez maintenant un nouveau cronjob pour l'utilisateur 'www-data'. L'application BoxBilling fonctionne principalement sous le serveur Web Nginx avec l'utilisateur 'www-data '.

export EDITOR=nano
sudo crontab -u www-data -e

Copiez et collez le script suivant.

*/5 * * * * php /var/www/boxbilling/bb-cron.php

Enregistrez le cron et quittez.

Maintenant votre BoxBilling est prêt pour vos clients et clients.

Se connecter à la page d'administration de BoxBilling

La page d'administration de BoxBilling se trouve au chemin URL '/bb-admin '. Saisissez l'URL suivante dans la barre d'adresse de votre navigateur Web.

https://boxbilling.example.io/bb-admin/

Sur la page de connexion de l'administrateur de BoxBilling, saisissez votre utilisateur et votre mot de passe, cliquez sur le bouton 'LOG ME IN '.

Vous verrez maintenant le tableau de bord d'administration de Boxbilling comme ci-dessous.

Conclusion

Félicitations ! Vous avez maintenant installé BoxBilling avec PHP-FPM, Nginx et MariaDB sur la dernière Debian 11 bullseye. Vous pouvez maintenant l'utiliser comme votre centrale de gestion d'achat gratuite avec vos clients et clients.


Debian
  1. Comment installer MariaDB sur Debian 9

  2. Comment installer MariaDB sur Debian 10

  3. Comment installer MariaDB 10.x sur Debian 11

  4. Comment installer TYPO3 sur Debian 9

  5. Comment installer MariaDB sur Debian 11

Comment installer Joomla sur Debian 9

Comment installer Textpattern sur Debian 9

Comment installer Joomla sur Debian 10

Comment installer WordPress sur Debian 10

Comment installer CodeIgniter sur Debian 10

Comment installer SuiteCRM sur Debian 11