BoxBilling ist eine Community-gesteuerte Abrechnungssoftware, die in PHP geschrieben ist. Es ist eine kostenlose und Open-Source-Abrechnung, die sowohl für Kunden als auch für Verkäufer einfach zu bedienen ist. BoxBilling bietet eine großartige Erfahrung für Kunden mit einer intuitiven Benutzeroberfläche und unterstützt auch mehrere Zahlungsgateways.
In diesem Tutorial zeigen wir Ihnen, wie Sie BoxBilling mit Nginx, PHP-FPM und MariaDB auf Debian 11 Bullseye installieren.
Voraussetzungen
- Ein Debian 11 Server Bullseye.
- Ein Benutzer mit sudo-Root-Berechtigungen.
- Ein Domänenname oder eine Unterdomäne, die auf die Server-IP-Adresse verweist. Besonders in einer Produktionsumgebung.
Installieren und Konfigurieren von PHP
Zunächst installieren und konfigurieren Sie das PHP-FPM auf Ihrem Debian-System. Die neueste Version von BoxBilling erforderte PHP-FPM 7.4 oder höher, was die Standard-PHP-Version im Debian-Repository ist.
Bevor Sie beginnen, aktualisieren Sie den Debian-Paketindex mit dem 'apt ' Befehl unten.
sudo-apt-Update
Nachdem das Repository aktualisiert wurde, führen Sie den folgenden Befehl aus, um PHP-FPM mit allen zusätzlichen Erweiterungen für BoxBilling zu installieren.
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 -ySobald die gesamte PHP-Installation abgeschlossen ist, bearbeiten Sie die Datei „php.ini“ mit dem Nano-Editor.
sudo nano /etc/php/7.4/fpm/php.ini
sudo nano /etc/php/7.4/cli/php.iniÄndern Sie die Option von 'memory_limit ', 'max_execution_time ' und 'date.timezone ' mit Ihrer bevorzugten Umgebung. In diesem Beispiel verwenden wir den Server mit 2 GB RAM-Speicher, also weisen wir 'memory_limit zu ' für PHP auf '512 MB '. Für die 'data.timezone ' Option, ändern Sie es mit Ihrer Zeitzone.
memory_limit =512M
max_execution_time =360
date.timezone =Europa/ParisSpeichern Sie die Datei und beenden Sie sie.
Starten Sie nun den PHP-FPM-Dienst neu und wenden Sie die neue Konfiguration an, indem Sie die Datei „systemctl“ ausführen ' Befehl unten.
sudo systemctl restart php7.4-fpmÜberprüfen Sie abschließend den PHP-FPM-Dienst mit dem folgenden Befehl.
sudo systemctl status php7.4-fpmSie sehen die Ausgabe, wenn der PHP-FPM-Dienst aktiv ausgeführt wird.
Installieren von Nginx und MariaDB
In diesem Schritt installieren Sie den Nginx-Webserver und die MariaDB-Datenbank. Die BoxBilling-Anwendung erfordert mindestens MySQL v8, unterstützt aber auch eine andere MySQL-Implementierung wie MariaDB.
Installieren Sie Nginx und MariaDB auf dem Debian 11-Server mit dem 'apt ' Befehl unten.
sudo apt install nginx-full mariadb-server -yFühren Sie nach Abschluss der Installation von Nginx und MariaDB den folgenden Befehl aus, um den Nginx-Dienst und den MariaDB-Dienst zu überprüfen.
sudo systemctl status nginx
sudo systemctl status mariadbJetzt sollten Sie die Ausgabe erhalten, da die Nginx- und MariaDB-Dienste aktiv sind und ausgeführt werden.
MariaDB-Datenbank einrichten
Nach der MariaDB-Installation wird empfohlen, das Root-Passwort für MariaDB einzurichten. Sie verwenden den Befehl „mysql_secure_installation“, um das MariaDB-Root-Passwort einzurichten und MariaDB mit grundlegender Sicherheit bereitzustellen.
Führen Sie den Befehl 'mysql_secure_installation aus ' auf Ihrem Terminalserver.
mysql_secure_installationJetzt werden Sie aufgefordert, das Root-Passwort für MariaDB einzugeben. Drücken Sie ENTER um fortzufahren, da die Standard-MariaDB-Installation ohne Root-Passwort kommt.
Aktuelles Passwort für root eingeben (Eingabe für keins):
OK, Passwort erfolgreich verwendet, weiter geht's...Geben Sie nun 'Y ein ', um die Standardauthentifizierung für Root-Benutzer auf 'unix_socket_authentication umzustellen ' Methode. Dadurch wird sichergestellt, dass der Root-Benutzer immer vom lokalen Rechner aus mit MariaDB verbunden ist.
Das Festlegen des Root-Passworts oder die Verwendung von unix_socket stellt sicher, dass sich niemand
ohne die entsprechende Autorisierung beim MariaDB-Root-Benutzer anmelden kann.
Sie haben Ihr Root-Konto bereits geschützt, sodass Sie dies sicher tun können antworten Sie mit 'n'.
Wechseln Sie zur unix_socket-Authentifizierung [J/n] J
Aktiviert erfolgreich!
Berechtigungstabellen werden neu geladen..
... Erfolgreich!Geben Sie 'Y ein ', um das Root-Passwort für MariaDB zu ändern, und geben Sie dann das neue Passwort ein für MariaDB und wiederholen.
Sie haben Ihr Root-Konto bereits geschützt, sodass Sie sicher mit „n“ antworten können.
Das Root-Passwort ändern? [Y/n] Y
Neues Passwort:
Neues Passwort erneut eingeben:
Passwort erfolgreich aktualisiert!
Berechtigungstabellen werden neu geladen..
... Erfolgreich!Geben Sie 'Y ein ', um den standardmäßigen anonymen Benutzer auf MariaDB zu entfernen.
Standardmäßig hat eine MariaDB-Installation einen anonymen Benutzer, sodass sich jeder
bei MariaDB anmelden kann, ohne dass ein Benutzerkonto für ihn erstellt werden muss
. Dies ist nur zum Testen gedacht und um die Installation
etwas reibungsloser zu gestalten. Sie sollten sie entfernen, bevor Sie in eine
Produktionsumgebung wechseln.
Anonyme Benutzer entfernen? [Y/n] Y
... Erfolgreich!Geben Sie 'Y ein ', um die Remote-Anmeldung für den Benutzer root zu deaktivieren.
Normalerweise sollte root nur erlaubt sein, sich von 'localhost' aus zu verbinden. Dies
stellt sicher, dass niemand das Root-Passwort aus dem Netzwerk erraten kann.
Root-Anmeldung aus der Ferne verbieten? [Y/n] Y
... Erfolgreich!Geben Sie 'Y ein ', um die Standarddatenbank 'test zu entfernen ' und alle Privilegien obendrauf.
Standardmäßig enthält MariaDB eine Datenbank namens „test“, auf die jeder
zugreifen kann. Dies ist ebenfalls nur für Testzwecke gedacht und sollte entfernt werden,
bevor Sie in eine Produktionsumgebung wechseln.
Testdatenbank und Zugriff darauf entfernen? [Y/n] Y
- Testdatenbank wird gelöscht...
... Erfolg!
- Berechtigungen für Testdatenbank werden entfernt...
... Erfolg!Laden Sie zuletzt die Tabellenberechtigungen auf MariaDB neu, um neue Änderungen zu übernehmen.
Durch das Neuladen der Berechtigungstabellen wird sichergestellt, dass alle bisher vorgenommenen Änderungen
sofort wirksam werden.
Berechtigungstabellen jetzt neu laden? [Y/n] Y
... Erfolgreich!
Aufräumen...Und Sie haben das MariaDB-Root-Passwort konfiguriert und Ihr MariaDB-Server ist jetzt gesichert.
Alles erledigt! Wenn Sie alle oben genannten Schritte ausgeführt haben, sollte Ihre MariaDB
Installation jetzt sicher sein.
Danke, dass Sie MariaDB verwenden!Einrichten einer neuen Datenbank und eines neuen Benutzers für BoxBilling
In diesem Schritt erstellen Sie eine neue Datenbank und einen neuen Benutzer für die Installation von BoxBilling. Alle Daten im Zusammenhang mit BoxBilling werden in der MariaDB-Datenbank gespeichert.
Melden Sie sich jetzt mit dem folgenden Befehl bei der MariaDB-Shell an.
mysql -u root -pFühren Sie die folgenden Abfragen aus, um eine neue Datenbank und den Benutzer „boxbilling“ zu erstellen ' mit dem Passwort 'dbpassBoxBilling ', gewähren Sie dann alle Berechtigungen für die Datenbank 'boxbilling ' an den Benutzer '[email protected] '. Laden Sie danach alle Tabellenrechte neu, um neue Änderungen auf MariaDB anzuwenden.
DATENBANK ERSTELLEN boxbilling;
BENUTZER ERSTELLEN [email-geschützt] IDENTIFIZIERT DURCH 'dbpassBoxBilling';
ALLE AUF boxbilling GEWÄHREN.* AN [email-geschützt] MIT GEWÄHRUNGSOPTION;
BERECHTIGUNGEN FLUSHEN;Geben Sie nun 'exit ein ', um sich von der MariaDB-Shell abzumelden. Und Sie haben die neue MariaDB-Datenbank und den Benutzer für die BoxBilling-Installation erstellt.
Herunterladen des BoxBilling-Quellcodes
BoxBilling kann auf viele Arten installiert werden. Sie können die neueste Version von BoxBilling aus dem Quellcode installieren und alle PHP-Abhängigkeiten mit „Composer“ installieren oder die stabile Version von BoxBilling herunterladen und in das Web-Root-Verzeichnis verschieben.
In diesem Schritt installieren wir die neueste stabile Version von BoxBilling. Zum Zeitpunkt der Erstellung dieses Artikels ist die neueste stabile Version von BoxBillingv4.22 .
Erstellen Sie ein neues Web-Root-Verzeichnis „/var/www/boxbilling ' und verschieben Sie Ihr Arbeitsverzeichnis dorthin.
mkdir -p /var/www/boxbilling/
cd /var/www/boxbillingLaden Sie die neueste stabile Version des BoxBilling-Quellcodes mit dem Befehl wget herunter und extrahieren Sie die Datei „BoxBilling.zip ' mit dem Unzip-Befehl.
wget https://github.com/boxbilling/boxbilling/releases/download/4.22.1.3/BoxBilling.zip
Boxbilling.zip entpackenErstellen Sie nun ein neues Verzeichnis 'Cache ' und 'hochladen ' auf der '/var/www/boxbilling/ '.
mkdir -p /var/www/boxbilling/bb-data/{cache,uploads}Ändern Sie als Nächstes den Eigentümer von '/var/www/boxbilling' Verzeichnis zu ihrem Benutzer und ihrer Gruppe 'www-data ' mit dem folgenden Befehl.
sudo chown -R www-data:www-data /var/www/boxbillingBenutzer 'www-data zulassen ' um in das Verzeichnis 'cache zu schreiben ' und 'hochladen '.
sudo chmod u+rw /var/www/boxbilling/bb-data/{cache,uploads}Und jetzt können Sie den Nginx-Webserver für die BoxBilling-Software einrichten.
Konfigurieren von Nginx für BoxBilling
In diesem Schritt fügen Sie neue Nginx-Serverblöcke für BoxBilling hinzu. Stellen Sie vor dem Erstellen der Serverblockkonfiguration sicher, dass der Domänenname auf den Server zeigt. Stellen Sie außerdem sicher, dass Sie die SSL-Zertifikate für Ihre Domain generiert haben, Sie können die kostenlosen SSL-Zertifikate von Letsencrypt verwenden.
Verschieben Sie Ihr Arbeitsverzeichnis nach '/etc/nginx/sites-available ' und erstellen Sie eine neue Serverblockkonfiguration 'boxbilling.conf ' mit dem Nano-Editor.
cd /var/www/sites-available/
nano boxbilling.confKopieren Sie die folgende Konfiguration und fügen Sie sie ein. Und stellen Sie sicher, dass Sie den Domänennamen und den Pfad der SSL-Zertifikate ändern.
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; # Benötigt nginx>=1.1.0
ssl_session_timeout 10m;
ssl_session_cache shared:SSL:10m;
ssl_session_tickets off; # Benötigt nginx>=1.5.9
# ssl_stapling on; # Benötigt nginx>=1.3.7
# ssl_stapling_verify on; # Benötigt nginx => 1.3.7
resolver 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;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7 .4-fpm.sock;
include fastcgi_params;
fastcgi_intercept_errors on;
}
# PHP-Ausführung in bb-uploads und bb-data deaktivieren
Standort ^~ /bb-uploads/ { }
Standort ^~ /bb-data/ {
alle ablehnen;
}
Standort ~* ^/(css |img|js|flv|swf|download)/(.+)$ {
root $root_path;
läuft ab;
proxy_no_cache 1;
proxy_cache_bypass 1;
}
location ~ /\.ht {
alle ablehnen;
}
}Speichern Sie die Datei und beenden Sie sie.
Führen Sie als Nächstes den folgenden Befehl aus, um die Serverblockkonfiguration „boxbilling.conf“ zu aktivieren ' und überprüfen Sie die Nginx-Konfiguration.
ln -s /etc/nginx/sites-available/boxbilling.conf /etc/nginx/sites-enabled/
sudo nginx -tWenn Ihre Nginx-Konfiguration korrekt ist, sehen Sie eine Ausgabemeldung wie „Syntax OK“. '.
Zuletzt starten Sie den Nginx-Dienst neu, um die neue Konfiguration zu übernehmen.
sudo systemctl restart nginx
Installieren und Konfigurieren von BoxBilling
An diesem Punkt haben Sie den BoxBilling- und Nginx-Webserver konfiguriert. Jetzt beginnen Sie mit der Installation und Konfiguration von BoxBilling über den Webbrowser.
Öffnen Sie Ihren Webbrowser und geben Sie den BoxBilling-Domainnamen in die Adressleiste ein.
https://boxbilling.example.io/
Stellen Sie sicher, dass alle Anforderungen grün sind, was bedeutet, dass Ihr System für die Installation von BoxBilling erfüllt ist.
Aktivieren Sie das Lizenzkästchen Ich stimme zu und klicken Sie auf 'WEITER ' Schaltfläche.
Geben Sie die Datenbank und den Benutzer für BoxBilling ein und klicken Sie auf 'WEITER ' Taste erneut.
Geben Sie nun den neuen Admin-Benutzer, die E-Mail-Adresse und das Passwort für BoxBilling ein und klicken Sie auf „WEITER '.
Und Sie haben BoxBilling erfolgreich installiert, aber Sie benötigen zusätzliche Setups, die Sie auf den BoxBilling-Server anwenden müssen.
Klicken Sie auf 'FERTIGSTELLEN ' und Sie haben die Installation von BoxBilling abgeschlossen.
Sie können zur Startseite von BoxBilling wechseln und sehen eine ähnliche Seite wie unten.
BoxBilling-Nachinstallation
Nachdem die Boxbilling-Installation abgeschlossen ist, müssen Sie das „install“-Verzeichnis entfernen und die Berechtigung der Datei „bb-config.php“ ändern, um einen neuen Cronjob für die BoxBilling-Anwendung zu erstellen.
Entfernen Sie BoxBilling 'installieren ' Verzeichnis mit dem folgenden Befehl.
rm -rf /var/www/boxbilling/installÄndern Sie die Berechtigung der 'bb-config.php ' bis 644 . Das bedeutet, dass nur der Benutzer 'www-data' in diese Datei schreiben darf.
sudo chmod 644 /var/www/boxbilling/bb-config.phpErstellen Sie nun einen neuen Cronjob für den Benutzer ‚www-data‘. Die BoxBilling-Anwendung läuft hauptsächlich unter dem Nginx-Webserver mit dem Benutzer „www-data '.
export EDITOR=nano
sudo crontab -u www-data -eKopieren Sie das folgende Skript und fügen Sie es ein.
*/5 * * * * php /var/www/boxbilling/bb-cron.phpCron speichern und beenden.
Jetzt ist Ihr BoxBilling bereit für Ihre Kunden und Kunden.
Anmeldung auf der BoxBilling-Admin-Seite
Die Verwaltungsseite von BoxBilling befindet sich unter dem URL-Pfad „/bb-admin '. Geben Sie die folgende URL in die Adressleiste Ihres Webbrowsers ein.
https://boxbilling.example.io/bb-admin/
Geben Sie auf der Administrator-Anmeldeseite von BoxBilling Ihren Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche „MICH ANMELDEN '.
Jetzt sehen Sie das unten stehende Boxbilling-Admin-Dashboard.
Schlussfolgerung
Glückwunsch! Sie haben jetzt das BoxBilling mit PHP-FPM, Nginx und MariaDB auf dem neuesten Debian 11 Bullseye installiert. Sie können es jetzt als Ihre kostenlose zentrale Einkaufsverwaltung mit Ihren Kunden und Kunden verwenden.