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:
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.
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:
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.
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:
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:
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.
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:
Ü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:
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:
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:
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:
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:
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:
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:
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.
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:
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:
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.
Gib nun die Details der MariaDB-Datenbank und des Benutzers ein, die du erstellt hast, und klicke erneut auf Weiter.
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.
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.
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.
Gehe nun zurück zum Webbrowser und klicke auf Fertig stellen.
Du erhältst nun die folgende Seite.
Wenn du auf die Schaltfläche„Kundenbereich“ klickst, wirst du auf die Startseite von FossBilling weitergeleitet.
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„.
Wenn du erfolgreich warst, solltest du das FossBilling Administrations-Dashboard sehen.
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.