So installierst du SolidInvoice unter Ubuntu 22.04

SolidInvoice ist eine kostenlose, einfache und elegante Fakturierungslösung auf PHP-Basis. Sie wurde für kleine Unternehmen entwickelt, um ihre täglichen Rechnungsvorgänge zu erledigen. SolidInvoice bietet eine RESTful API für die Integration und stellt verschiedene Benachrichtigungskanäle wie Textnachrichten, E-Mails oder HipChat zur Verfügung.

Diese Anleitung zeigt dir, wie du SolidInvoice auf einem Ubuntu 22.04 Server installierst. Du richtest SolidInvoice mit dem LAMP-Stack ein und sicherst die Installation mit Certbot und letsencrypt ab.

Voraussetzungen

Bevor du beginnst, stelle sicher, dass du Folgendes hast

  • Einen Ubuntu 22.04 Server.
  • Einen Nicht-Root-Benutzer mit sudo-Rechten.
  • Einen Domainnamen, der auf eine Server-IP-Adresse zeigt.

Installieren der Abhängigkeiten

SolidInvoice ist eine Open-Source-Rechnungsanwendung, die in PHP und MySQL geschrieben wurde. Um sie zu installieren, musst du den LAMP Stack auf deinem Ubuntu-System installieren. In diesem ersten Schritt installierst du LAMP Stack aus dem Standard-Repository von Ubuntu.

Aktualisiere deinen Ubuntu-Paketindex mit dem unten stehenden Befehl.

sudo apt update

Installiere nun die LAMP Stack-Abhängigkeiten (Linux, Apache, MySQL/MariaDB und PHP) mit dem folgenden Befehl. In diesem Beispiel verwendest du das Standard-PHP 8.x für die Installation von SolidInvoice.

sudo apt install apache2 mariadb-server mariadb-client php php-curl php-common php-mbstring php-json php-mysql php-opcache php-bcmath php-intl php-gd php-xml php-soap php-zip php-apcu

Gib Y ein, um die Installation zu bestätigen.

deps installieren

Nachdem die Installation abgeschlossen ist, überprüfe mit dem folgenden Befehl den Status der Apache- und MariaDB-Dienste, um sicherzustellen, dass beide Dienste laufen.

sudo systemctl status apache2
sudo systemctl status mysql

Wenn Apache oder MariaDB laufen, siehst du die Ausgabe active(running).

Apache prüfen

Überprüfe abschließend die PHP-Version mit dem folgenden Befehl. Du wirst sehen, dass PHP 8.x auf deinem Ubuntu-System installiert ist.

php -v

php prüfen

MariaDB-Server einrichten

Nachdem du den LAMP-Stack installiert hast, musst du deine MariaDB-Serverinstallation einrichten. Zuerst musst du den MariaDB-Server sichern und dann eine neue Datenbank und einen Benutzer erstellen, die SolidInvoice verwenden wird.

Um die Installation des MariaDB-Servers zu sichern, gibst du Folgendes ein:

sudo mariadb-secure-installation

Gib dabei Y ein, um die Änderungen an der MariaDB zu bestätigen, oder N, um sie abzulehnen. Nachfolgend sind die MariaDB-Serverkonfigurationen aufgeführt, zu denen du aufgefordert wirst:

  • Die Standard-MariaDB-Installation kommt ohne Passwort, drücke ENTER, wenn du zur Eingabe des Passworts aufgefordert wirst.
  • Gib nun Y ein, um das MariaDB Root-Passwort einzurichten. Gib dann das neue Passwort für MariaDB ein und wiederhole das Passwort.
  • Gib Y ein, um den anonymen Benutzer aus deiner MariaDB-Installation zu entfernen.
  • Gib erneut Y ein, wenn du aufgefordert wirst, die Fernanmeldung für den MariaDB-Root-Benutzer zu deaktivieren.
  • Gib Y ein, um den Standard-Datenbanktest aus deiner MariaDB zu entfernen.
  • Gib schließlich Y ein, um die Tabellenberechtigungen neu zu laden und die neuen Änderungen anzuwenden.

Nachdem du MariaDB gesichert hast, gibst du Folgendes ein, um dich als Standard-Root-Benutzer bei MariaDB anzumelden. Gib dein MariaDB Root-Passwort ein, wenn du dazu aufgefordert wirst.

sudo mariadb -u root -p

Sobald du eingeloggt bist, führe die folgenden Abfragen aus, um eine neue Datenbank solidinvoicedb, einen Benutzer solidinvoice und das Passwort p4ssword zu erstellen. Achte darauf, dass du die Details mit deinen Angaben änderst, denn diese Datenbankdetails werden von SolidInvoice verwendet.

CREATE DATABASE solidinvoicedb;
CREATE USER solidinvoice@localhost IDENTIFIED BY 'p4ssword';
GRANT ALL PRIVILEGES ON solidinvoicedb.* TO solidinvoice@localhost;
FLUSH PRIVILEGES;

Datenbank und Benutzer anlegen

Führe nun die folgende Abfrage aus, um die Berechtigungen des Benutzers solidinvoice zu überprüfen. Stelle sicher, dass der Benutzer solidinvoice auf die Datenbank solidinvoicedb zugreifen kann.

SHOW GRANTS FOR solidinvoice@localhost;

Zum Schluss gibst du quit ein, um den MariaDB-Server zu verlassen.

db prüfen

PHP einrichten

Wenn der MariaDB-Server gesichert und konfiguriert ist, kannst du deine PHP-Installation einrichten. In diesem Fall musst du die Standard-PHP-Konfigurationsdatei php.ini ändern.

Öffne die Standard-PHP-Konfiguration /etc/php/8.1/apache2/php.ini mit dem Editor nano.

sudo nano /etc/php/8.1/apache2/php.ini

Ändere die Standard-PHP-Konfigurationen wie folgt und passe memory_limit und date.timezone an deine Serverumgebung an.

date.timezone = Europe/Amsterdam
memory_limit=512M
upload_max_filesize=64M
post_max_size=120M
max_execution_time=120

Speichere die Datei und beende sie.

Starte nun den Apache-Dienst neu, um deine Änderungen an PHP mit dem folgenden Befehl zu übernehmen.

sudo systemctl restart apache2

Herunterladen von SolidInvoice

Nachdem du nun MariaDB und PHP konfiguriert hast, kannst du den Quellcode von SolidInvoice herunterladen und die Installation mit den richtigen Berechtigungen und Eigentümern einrichten.

Gehe in das Verzeichnis /var/www und lade den SolidInvoice-Quellcode mit wget herunter. Überprüfe die SolidInvoice Versionsseite, um die neueste Version zu erhalten.

cd /var/www/
wget https://github.com/SolidInvoice/SolidInvoice/releases/download/2.2.5/SolidInvoice-2.2.5.zip

Entpacke den SolidInvoice-Quellcode in das solidinvoice-Verzeichnis und ändere die Eigentumsrechte auf den Benutzer www-data. Das DocumentRoot- oder Web-root-Verzeichnis für die SolidInvoice-Installation lautet dann /var/www/solidinvoice.

unzip SolidInvoice-2.2.5.zip -d solidinvoice
sudo chown -R www-data:www-data /var/www/solidinvoice

Führe nun den folgenden Befehl aus, um sicherzustellen, dass der Benutzer www-data in einige SolidInvoice-Verzeichnisse und -Dateien schreiben kann.

sudo chmod u+rw /var/www/solidinvoice/app/cache
sudo chmod u+rw /var/www/solidinvoice/app/logs
sudo chmod u+rw /var/www/solidinvoice/var/cache
sudo chmod u+rw /var/www/solidinvoice/var/logs
sudo chmod u+rw /var/www/solidinvoice/web/upload
sudo chmod u+rw /var/www/solidinvoice/app/config/parameters.yml

Einrichten des virtuellen Apache-Hosts

Nachdem du das DocumentRoot-Verzeichnis für SolidInvoice konfiguriert hast, musst du einen neuen virtuellen Apache-Host erstellen, über den die Installation ausgeführt wird. Stellen Sie also sicher, dass Sie Ihren Domainnamen für SolidInvoice vorbereitet haben.

Führen Sie zunächst den folgenden Befehl aus, um das Rewrite-Modul in Apache zu aktivieren.

sudo a2enmod rewrite

Erstelle eine neue Apache-Konfiguration für den virtuellen Host /etc/apache2/sites-available/solidinvoice.conf, indem du den folgenden Befehl im nano-Editor ausführst.

sudo nano /etc/apache2/sites-available/solidinvoice.conf

Füge die folgende Konfiguration ein und stelle sicher, dass du die Option ServerName durch deine Zieldomain ersetzt.

<VirtualHost *:80>
 ServerName invoice.hwdomain.io
 ServerAlias www.invoice.hwdomain.io
DocumentRoot /var/www/solidinvoice/public
<Directory //var/www/solidinvoice/public>
# enable the .htaccess rewrites
AllowOverride All
Order allow,deny
Allow from All
</Directory>

ErrorLog /var/log/apache2/solidinvoice.error.log
CustomLog /var/log/apache2/solidinvoice.access.log combined
</VirtualHost>

Speichere die Datei und beende den Editor.

Gib nun den folgenden Befehl ein, um die virtuelle Hostdatei solidinvoice.conf zu aktivieren und überprüfe deine Apache-Syntax. Wenn du eine korrekte Syntax hast, siehst du die Ausgabe„Syntax OK„.

sudo a2ensite solidinvoice.conf
sudo apachectl configtest

Gib abschließend den folgenden Befehl ein, um den Apache neu zu starten und die neue virtuelle Hostdatei solidinvoice.conf anzuwenden. Sobald der Befehl ausgeführt wurde, sollte deine SolidInvoice laufen.

sudo systemctl restart apache2

Apache einrichten

Sichern von SolidInvoice mit HTTPS

In diesem Beispiel wirst du SolidInvoice mit SSl/TLS-Zertifikaten über Certbot und letsencrypt sichern. Du installierst also Certbot und generierst SSL/TLS-Zertifikate für deinen SolidInvoice-Domainnamen.

Installiere zunächst Certbot und das Certbot Apache Plugin mit dem folgenden Befehl. Gib Y ein, um die Installation zu bestätigen

sudo apt install certbot python3-certbot-apache

Sobald die Installation abgeschlossen ist, generiere SSL/TLS-Zertifikate mit dem folgenden Certbot-Befehl. Achte darauf, dass du die Informationen des Domainnamens und der E-Mail-Adresse mit deinen Angaben abänderst.

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

Nachdem der Vorgang abgeschlossen ist, sollten deine SSL/TLS-Zertifikate im Verzeichnis /etc/letsencrypt/live/domain.com verfügbar sein. Außerdem sollte deine SolidInvoice-Installation automatisch mit HTTPS gesichert sein.

Installation von SolidInvoice

Öffne deinen Webbrowser und rufe deinen Domainnamen auf, z. B. https://invoice.hwdomain.io/. Vergewissere dich, dass bei der Überprüfung der Systemanforderungen alles in Ordnung ist, und bestätige dann mit Weiter.

Anforderungen

Wähle den Datenbanktreiber für MySQL aus und gib die Details deiner MariaDB-Datenbank und den Benutzer für SolidInvoice ein. Klicke anschließend erneut auf Weiter.

db-Konfiguration

Jetzt siehst du, dass das Datenbankschema für SolidInvoice erstellt wurde. Klicke auf Weiter, um fortzufahren.

db migrationen

Bei den Systemeinstellungen wählst du das Standardgebietsschema Englisch aus und gibst die Details deines Admin-Benutzers, deine E-Mail-Adresse und dein Passwort ein. Klicke dann zur Bestätigung erneut auf Weiter.

Admin-Setup

Sobald die Installation abgeschlossen ist, siehst du die Meldung„Du hast SolidInvoice erfolgreich installiert!“ und weitere Anweisungen zum Erstellen eines Cron-Jobs.

Installation beendet

Gehe zurück zum Serverterminal und erstelle mit dem folgenden Befehl einen neuen Cron-Job für den Benutzer www-data.

sudo crontab -u www-data -e

Füge das crontab-Skript von der Seite ein, speichere und schließe die Datei.

* * * * * php /var/www/solidinvoice/bin/console cron:run -e prod -n

Gehe zurück zu deinem Webbrowser und klicke auf Jetzt anmelden.

Anmeldung

Jetzt wirst du aufgefordert, deinen Firmennamen und deine Standardwährung festzulegen. Klicke zur Bestätigung auf Erstellen.

orgz erstellen

Wenn alles gut läuft, solltest du das SolidInvoice-Dashboard wie folgt sehen.

Dashboard

Fazit

Herzlichen Glückwunsch! Du hast SolidInvoice auf dem Ubuntu 22.04 Server installiert. Du hast SolidInvoice mit dem LAMP-Stack (Apache, MySQL/MariaDB und PHP) auf Ubuntu ausgeführt und deine Installation mit HTTPS über Letsencrypt gesichert. Jetzt kannst du neue Komponenten wie den SMTP-Server zu SolidInvoice hinzufügen und verwenden.

Das könnte dich auch interessieren …