So installierst du FossBilling mit Nginx unter Debian 11

FOSSBilling ist eine kostenlose und quelloffene Abrechnungslösung, die für Kunden und Verkäufer einfach zu bedienen ist. FOSSBilling ist ein Fork von BoxBilling. Mit seiner intuitiven Benutzeroberfläche und der Unterstützung mehrerer Zahlungsgateways bietet es ein hervorragendes Erlebnis für Kunden. FOSSBilling ist für eine Vielzahl von Unternehmen geeignet, von kleinen über mittlere bis hin zu großen Unternehmen. FOSSBilling kann dir helfen, deine Rechnungsstellung, Zahlungseingänge, Kundenverwaltung und -kommunikation zu automatisieren.

In dieser Anleitung installierst du die Open-Source-Fakturierungslösung FossBilling auf dem Debian 11-Server. Du richtest FossBilling mit dem LEMP Stack (Linux, Nginx, MariaDB und PHP-FPM) ein und sicherst FossBilling mit SSL/TLS-Zertifikaten über Certbot und Letsencrypt.

Voraussetzungen

Für diese Anleitung brauchst du die folgenden Voraussetzungen:

  • Einen Debian 11-Server – In diesem Beispiel wird ein Debian-Server mit dem Hostnamen„fossbilling-server“ verwendet.
  • Einen Nicht-Root-Benutzer mit sudo/root-Administrator-Rechten.
  • Ein Domain-Name, der auf eine Server-IP-Adresse verweist – In diesem Beispiel wird eine Sub-Domain„fossbilling.hwdomain.io“ verwendet.

Wenn du diese Voraussetzungen erfüllt hast, kannst du FossBilling installieren.

Installation des Nginx Webservers

In diesem ersten Schritt installierst du den Nginx-Webserver auf deinem Debian-System. Anschließend überprüfst du den Nginx-Dienst, um sicherzustellen, dass er läuft und aktiviert ist.

Führe zunächst den folgenden apt-Befehl aus, um deinen Debian-Paketindex zu aktualisieren und aufzufrischen.

sudo apt update

Nachdem das Repository aktualisiert wurde, installierst du den Nginx-Webserver mit dem unten stehenden apt-Befehl. Wenn du dazu aufgefordert wirst, bestätige mit y und drücke ENTER, um fortzufahren.

sudo apt install nginx

Ausgabe:

nginx installieren

Sobald Nginx installiert ist, führst du den folgenden systemctl-Befehl aus, um den Status des Nginx-Dienstes zu überprüfen und sicherzustellen, dass er läuft.

sudo systemctl is-enabled nginx
sudo systemctl status nginx

Die folgende Ausgabe bestätigt, dass der Nginx-Dienst läuft und aktiviert ist, d.h. er wird beim Systemstart automatisch gestartet.

nginx verifizieren

UFW-Firewall installieren und konfigurieren

Unter Debian ist die Standard-Firewall iptables. Um es einfacher zu machen, kannst du UFW installieren, um deine Systemfirewall zu verwalten.

In diesem Schritt installierst du UFW und öffnest die SSH-, HTTP- und HTTPS-Dienste, um Benutzern/Clients den Zugang zu ermöglichen.

Installiere UFW, indem du den folgenden apt-Befehl ausführst. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.

sudo apt install ufw

Ausgabe:

ufw installieren

Sobald UFW installiert ist, führe den unten stehenden ufw-Befehl aus, um die Anwendungen OpenSSH und„WWW Full“ zu öffnen. Die OpenSSH-Anwendungen öffnen den standardmäßigen SSH-Port 22 und die „WWW Full“-Anwendungen öffnen sowohl HTTP- als auch HTTPS-Dienste auf den Ports 80 und 443.

sudo ufw allow OpenSSH
sudo ufw allow "WWW Full"

Wenn du erfolgreich bist, solltest du eine Ausgabe wie„Regeln aktualisiert“ erhalten.

Als Nächstes führst du den folgenden ufw-Befehl aus, um die UFW-Firewall zu starten und zu aktivieren. Wenn du dazu aufgefordert wirst, gib y zur Bestätigung ein und drücke ENTER, um fortzufahren.

sudo ufw enable

Die Ausgabe„Firewall ist aktiv und wird beim Systemstart aktiviert“ bestätigt, dass die UFW-Firewall läuft und beim Systemstart automatisch ausgeführt wird.

ufw-Einrichtung

Führe abschließend den folgenden Befehl aus, um den Status der UFW-Firewall zu überprüfen. Du solltest sehen, dass die UFW-Firewall„aktiv“ ist und die Anwendungen OpenSSH und„WWW Full“ hinzugefügt wurden.

sudo ufw status

Ausgabe:

ufw-Status

Wenn die UFW-Firewall installiert und konfiguriert ist, kannst du mit der Installation des MariaDB-Datenbankservers beginnen.

MariaDB Server installieren und konfigurieren

In diesem Schritt installierst du den MariaDB-Server, sicherst die MariaDB-Installation mit „mariadb-secure-installation“ und erstellst eine neue MariaDB-Datenbank und einen Benutzer, den FossBilling verwenden wird.

Installiere den MariaDB-Server mit dem folgenden apt-Befehl. Wenn du dazu aufgefordert wirst, gib y ein und drücke ENTER, um fortzufahren.

sudo apt install mariadb-server

Ausgabe:

mariadb installieren

Sobald MariaDB installiert ist, führe den folgenden systemctl-Befehl aus, um den MariaDB-Dienst zu überprüfen und sicherzustellen, dass der Dienst läuft.

sudo systemctl is-enabled mariadb
sudo systemctl status mariadb

Die folgende Ausgabe bestätigt, dass der MariaDB-Server läuft und aktiviert ist, d.h. er wird beim Systemstart automatisch gestartet.

mariadb prüfen

Wenn der MariaDB-Server läuft, musst du die MariaDB-Installation mit dem Befehl„mariadb-secure-installation“ sichern. Führe den unten stehenden Befehl „mariadb-secure-installation“ aus, um deinen MariaDB-Server zu sichern.

sudo mariadb-secure-installation

Im Folgenden wirst du nach einigen MariaDB-Konfigurationen gefragt:

  • Lokale Authentifizierung auf unix_socket umstellen? Gib n für no ein.
  • MariaDB Root-Passwort einrichten? Gib y ein, gib dann das neue MariaDB Root-Passwort ein und wiederhole den Vorgang.
  • Den anonymen Standardbenutzer entfernen? Gib zur Bestätigung y ein.
  • Fernanmeldung für den Root-Benutzer deaktivieren? Gib zur Bestätigung y ein.
  • Den Standard-Datenbanktest entfernen? Gib zur Bestätigung y ein.
  • Tabellenberechtigungen neu laden und Änderungen übernehmen? Gib zur Bestätigung y ein.

Nachdem du den MariaDB-Einsatz gesichert und das MariaDB-Root-Passwort konfiguriert hast, erstellst du als Nächstes eine neue Datenbank und einen neuen Benutzer, der für die Installation von FossBilling verwendet wird.

Führe dazu den unten stehenden Befehl„mariadb“ aus, um dich in der MariaDB-Shell anzumelden. Wenn du nach deinem Passwort gefragt wirst, gibst du dein MariaDB-Root-Passwort ein.

sudo mariadb -u root -p

Als Nächstes führst du die folgenden Abfragen aus, um eine neue Datenbank und einen neuen Benutzer für Fossbilling zu erstellen. In diesem Beispiel erstellst du eine neue Datenbank„fossbillingdb“ und den MariaDB-Benutzer„fossbilling„. Achte darauf, dass du das Passwort in den folgenden Abfragen änderst.

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

Ausgabe:

Datenbank und Benutzer anlegen

Überprüfe nun die Rechte des MariaDB-Benutzers„fossbilling“ und stelle sicher, dass der Benutzer Zugriffsrechte auf die Datenbank„fossbillingdb“ hat.

SHOW GRANTS FOR fossbilling@localhost;
quit

Tippe nun quit ein, um das Programm zu beenden.

Ausgabe:

mariadb-Benutzer verifizieren

Damit hast du den MariaDB-Server installiert, den MariaDB-Root-Benutzer konfiguriert und die Datenbank und den Benutzer für FossBilling erstellt. Im nächsten Schritt wirst du PHP-FPM auf dem Debian-Server installieren und konfigurieren.

Installieren und Konfigurieren von PHP-FPM 8.2

In diesem Schritt installierst und konfigurierst du PHP-FPM auf deinem Debian-Server. Die neueste Version von FossBilling wird von PHP 8.x unterstützt. Daher installierst du jetzt PHP 8.2 für die FossBiling-Installation.

Zuvor musst du ein PHP-Repository eines Drittanbieters zu deinem Debian-Server hinzufügen. Das liegt daran, dass PHP 8.0 noch nicht im Debian 11 Repository verfügbar ist.

Um zu beginnen, führe den folgenden Befehl aus, um die grundlegenden Abhängigkeiten auf deinem Debian-System zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.

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

Ausgabe:

Abhängigkeiten installieren

Führe nun den folgenden wget-Befehl aus, um den GPG-Schlüssel für das PHP-Repository herunterzuladen.

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

Als Nächstes führst du den unten stehenden Befehl aus, um das PHP-Repository zu deinem Debian-Server hinzuzufügen.

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

Aktualisiere dann den Paketindex mit dem unten stehenden apt-Befehl. Dadurch wird der Index der Paketlisten für das neue PHP-Repository heruntergeladen.

sudo apt update

Ausgabe:

Setup-Repo

Führe nun den folgenden apt-Befehl aus, um die PHP- und PHP-FPM-Pakete zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren. Vergewissere dich außerdem, dass die PHP-Version, die du installieren willst, PHP 8.1 oder 8.2 ist.

sudo apt install php php-fpm

Ausgabe:

php-fpm installieren

Dann kannst du die PHP-Erweiterungen, die FossBilling benötigt, mit dem folgenden apt-Befehl installieren. Gib y ein, um die Installation zu bestätigen und drücke ENTER, um fortzufahren.

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

Ausgabe:

php-Erweiterungen installieren

Wenn die PHP-Pakete installiert sind, öffne die Datei „/etc/php/8.2/fpm/php.ini“ mit dem unten stehenden nano-Editor-Befehl.

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

Ändere die Standard-PHP-Konfiguration mit den folgenden Zeilen.

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

Speichere und beende die Datei„/etc/php/8.2/fpm/php.ini“, wenn du fertig bist.

Als Nächstes führst du den folgenden systemctl-Befehl aus, um den PHP-FPM-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart php8.2-fpm

Überprüfe dann den PHP-FPM-Dienst, um sicherzustellen, dass der Dienst aktiviert ist und läuft. Die Ausgabe„active (running)“ bestätigt, dass der PHP-FPM-Dienst läuft, und die Ausgabe „loaded (…/php8.2.service; enabled;..)“ bestätigt, dass der Dienst aktiviert ist und beim Systemstart automatisch ausgeführt wird.

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

Ausgabe:

verifiziere php-fpm

Zum Schluss führst du den folgenden Befehl aus, um die PHP-Version und die Liste der aktivierten Erweiterungen auf deinem Debian-System zu überprüfen. In deinem Terminal solltest du eine Ausgabe wie„PHP 8.2“ sehen, die bestätigt, dass du PHP 8.2 installiert hast. Bei der Liste der PHP-Erweiterungen musst du sicherstellen, dass die Erweiterungen„pdo_mysql“, „curl“, „openssl“ und „zlib“ aktiviert sind.

php --version
php -m

Ausgabe:

php verifizieren

Du hast den LEMP-Stack mit dem Webserver Nginx, dem Datenbankserver MariaDB und PHP-FPM installiert. Jetzt bist du bereit, FossBilling herunterzuladen und zu installieren.

Herunterladen des FOSSBilling-Quellcodes

In diesem Schritt lädst du den FossBilling-Quellcode herunter und richtest das FossBilling-Installationsverzeichnis ein, das sich im Verzeichnis„/var/www/fossbilling“ befinden wird.

Führe zunächst den unten stehenden apt-Befehl aus, um das unzip-Paket zu installieren.

sudo apt install unzip -y

Als nächstes erstellst du ein neues Verzeichnis„/var/www/fossbilling“ und verschiebst dein Arbeitsverzeichnis dorthin. Dann lädst du die neueste stabile Version von FossBilling mit dem unten stehenden curl-Befehl herunter.

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

Nach dem Download von FossBilling solltest du eine neue Datei„FOSSBilling.zip“ in deinem aktuellen Arbeitsverzeichnis erhalten.

Fossbilling herunterladen

Führe den unten stehenden unzip-Befehl aus, um die Datei„FOSSBilling.zip“ zu entpacken. Anschließend änderst du die Eigentumsrechte am FossBilling-Installationsverzeichnis „/var/www/fossbilling“ auf den Benutzer und die Gruppe„www-data„.

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

Nachdem du den FossBilling-Quellcode heruntergeladen und das Installationsverzeichnis richtig konfiguriert hast. Als Nächstes erstellst du eine neue Nginx-Server-Blockkonfiguration, die für den Betrieb von FossBilling verwendet werden soll.

Nginx Server-Block einrichten

In diesem Schritt erstellst du eine neue Nginx-Server-Blockkonfiguration, die für die FOSSBilling-Anwendung verwendet wird. Bevor du beginnst, stelle sicher, dass du einen Domainnamen hast, der auf die IP-Adresse deines Debian-Servers zeigt. In diesem Beispiel wird die Domain „fossbiling.hwdomain.io“ verwendet.

Führe den folgenden Befehl im nano-Editor aus, um eine neue Nginx-Serverblockkonfiguration„/etc/nginx/sites-available/fossbilling“ zu erstellen.

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

Füge die folgende Serverblockkonfiguration in die Datei ein. Achte darauf, dass du den Domainnamen „fossbilling.hwdomain.io“ änderst und dass du den korrekten Pfad deiner PHP-FPM-Sock-Datei angibst.

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;
}
}

Speichere die Datei und beende den Editor, wenn du fertig bist.

Als Nächstes führst du den folgenden Befehl aus, um die Nginx-Serverblockdatei„/etc/nginx/sites-available/fossbilling“ zu aktivieren. Überprüfe dann die Nginx-Konfiguration, um sicherzustellen, dass du die richtigen Konfigurationsdateien hast.

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

Wenn dies erfolgreich war, solltest du eine Ausgabe wie „test successful – syntax ok“ erhalten.

Zum Schluss führst du den folgenden systemctl-Befehl aus, um den Nginx-Dienst neu zu starten und die Änderungen zu übernehmen.

sudo systemctl restart nginx

Ausgabe:

nginx Server-Block einrichten

Nachdem du den Nginx-Serverblock erstellt hast, kannst du nun auf die FossBilling-Installation zugreifen und sie starten. Zuvor solltest du dein FossBilling mit SSL/TLS-Zertifikaten absichern, die du mit Certbot und Letsencrypt erstellen kannst.

FossBilling mit SSL/TLS-Zertifikaten von Letsencrypt absichern

Zu diesem Zeitpunkt ist deine FossBilling-Installation zwar zugänglich, aber immer noch über das unsichere HTTP-Protokoll. Um FossBilling zu sichern, kannst du eine sichere HTTPS-Verbindung einrichten, indem du SSL/TLS-Zertifikate zu deinem Nginx-Serverblock hinzufügst. Dazu kannst du über Certbot und Letsencrypt kostenlose SSL/TLS-Zertifikate generieren.

Bevor du beginnst, stelle sicher, dass dein Domainname auf die IP-Adresse des Servers zeigt und dass du eine E-Mail-Adresse hast, mit der du dich bei Letsencrypt registrierst.

Führe nun den folgenden apt-Befehl aus, um Certbot und das Certbot Nginx Plugin zu installieren. Gib y ein, wenn du dazu aufgefordert wirst, und drücke ENTER, um fortzufahren.

sudo apt install certbot python3-certbot-nginx

Ausgabe:

certbot installieren

Nachdem Certbot installiert ist, führe den folgenden Befehl aus, um SSL/TLS-Zertifikate für deinen Domainnamen zu erzeugen. Achte auch darauf, den Domainnamen und die E-Mail-Adresse im folgenden Befehl zu ändern.

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

Mit diesem Befehl werden die neuen SSL/TLS-Zertifikate für deinen Domainnamen erstellt. Außerdem wird dadurch automatisch HTTPS auf deinem Nginx-Serverblock eingerichtet und eine automatische Umleitung von HTTP zu HTTPS eingerichtet. Deine SSL/TLS-Zertifikate werden im Verzeichnis„/etc/elstencrypt/live/fossbilling.hwdomain.io/“ erstellt.

Starten der FOSSBilling-Installation

Öffne deinen Webbrowser und rufe den Domainnamen deiner FossBilling-Installation auf (z.B.: https://fossbilling.hwdomain.io/).

Das FossBilling-Installationsprogramm sollte nun deine Systemdetails prüfen und verifizieren. Vergewissere dich, dass die Anforderungen den Status„Ok“ mit grüner Farbe erhalten. Klicke auf Weiter, um fortzufahren.

Fossbilling installieren

Gib nun die Details der MariaDB-Datenbank und des Benutzers ein, die du erstellt hast, und klicke erneut auf Weiter.

Datenabfragen einrichten

Als Nächstes gibst du die neuen Administratorendaten für FossBilling ein. Gib deinen Benutzernamen, deine E-Mail-Adresse, dein Passwort und die Standardwährung ein. Klicke dann auf Weiter, um fortzufahren.

Admin-Setup

Wenn die Installation von FossBilling erfolgreich war, solltest du die Meldung erhalten : „Glückwunsch! FOSSBilling wurde erfolgreich installiert.‘.

Außerdem siehst du einige Anweisungen, um die Installation von FossBilling abzuschließen.

Installationserfolg

Kehre zum Terminal deines Debian-Servers zurück und führe die folgenden Befehle aus, um die Installation von FossBilling abzuschließen.

Entferne das FossBilling-Verzeichnis„install„.

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

Ändere die Berechtigung der FOssBilling-Konfigurationsdatei„config.php“ auf 0644. Damit wird dieSchreibberechtigung für andere und Gruppen entfernt.

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

Erstelle einen neuen Cron für FossBilling mit dem unten stehenden Befehl.

crontab -u www-data -e

Wähle den Code-Editor, den du verwenden möchtest. Gib dann die folgenden Zeilen in die Datei ein.

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

Speichere die Datei und beende den Editor, wenn du fertig bist.

Endmontage

Gehe nun zurück zum Webbrowser und klicke auf Fertig stellen.

Du erhältst nun die folgende Seite.

Adminbereich

Wenn du auf die Schaltfläche„Kundenbereich“ klickst, wirst du auf die Startseite von FossBilling weitergeleitet.

Kundenbereich

Wenn du auf die Schaltfläche„Adminbereich“ klickst, wirst du zur Login-Seite für Administratoren weitergeleitet.

Melde dich mit deiner E-Mail-Adresse und deinem Passwort an und klicke dann auf„Anmelden„.

Login-Admin

Wenn du erfolgreich warst, solltest du das FossBilling Administrations-Dashboard sehen.

Dashboard

Damit hast du die Installation von FossBilling abgeschlossen und mit SSL/TLS-Zertifikaten über Certbot und Letsencrypt gesichert.

Fazit

In dieser Anleitung hast du die Open-Source-Abrechnungs- und Benutzerverwaltung FOSSBilling auf einem Debian 11-Server installiert. Außerdem hast du den LEMP-Stack (Nginx-Webserver, MariaDB-Datenbank und PHP-FPM) auf einem Debian-System konfiguriert. Außerdem hast du die FOSSBilling-Installation mit SSL/TLS-Zertifikaten abgesichert, die du mit Certbot und Letsencrypt erstellt hast.

Von hier aus kannst du FOSSBilling nun für dein Unternehmen nutzen. Du kannst weitere Benutzer hinzufügen, einen SMTP-Server einrichten und vieles mehr.

Das könnte dich auch interessieren …