So installierst du InvoicePlane mit Apache und kostenlosem Let’s Encrypt SSL-Zertifikat unter Debian 11
InvoicePlane ist eine kostenlose, quelloffene und selbst gehostete Anwendung zur Verwaltung deiner Angebote, Rechnungen, Kunden und Zahlungen. Sie wird von vielen Unternehmen und Freiberuflern genutzt, um ihre Zahlungen und Rechnungen zu verwalten. Sie bietet benutzerdefinierte Vorlagen, Themen und andere Tools, mit denen du die Funktionalität von InvoicePlane erweitern kannst. Sie unterstützt außerdem mehrere Sprachen und mehrere Zahlungsanbieter wie Paypal, Stripe oder sogar Bitcoin über Coinbase.
In diesem Tutorial zeigen wir dir, wie du InvoicePlane mit Apache auf Debian 11 installierst.
Voraussetzungen
- Ein Server, auf dem Debian 11 läuft.
- Ein gültiger Domainname, der auf die IP deines Servers zeigt.
- Ein Root-Passwort ist auf dem Server eingerichtet.
Installiere Apache, PHP und MariaDB
Zuerst musst du den Apache Webserver, den MariaDB Datenbankserver, PHP und andere benötigte PHP-Erweiterungen auf deinem Server installieren. Du kannst alle Pakete mit folgendem Befehl installieren:
apt-get install apache2 mariadb-server php libapache2-mod-php php-common php-mbstring php-xmlrpc php-soap php-gd php-xml php-intl php-mysql wget unzip php-cli php-zip php-curl -y
Sobald alle Pakete installiert sind, bearbeite die PHP-Konfigurationsdatei und ändere die Standardeinstellungen:
nano /etc/php/7.4/apache2/php.ini
Ändere die folgenden Zeilen:
memory_limit = 256M upload_max_filesize = 128M max_execution_time = 360 date.timezone = UTC
Speichere und schließe die Datei und starte den Apache-Dienst neu, um die Änderungen zu übernehmen:
systemctl restart apache2
Erstelle eine Datenbank für InvoicePlane
Als Nächstes musst du die MariaDB-Installation sichern und eine Datenbank sowie einen Benutzer für InvoicePlane erstellen.
Sichere zunächst die MariaDB-Installation mit dem folgenden Befehl:
mysql_secure_installation
Beantworte alle Fragen wie unten gezeigt:
Set root password? [Y/n] Y Remove anonymous users? [Y/n] y Disallow root login remotely? [Y/n] y Remove test database and access to it? [Y/n] y Reload privilege tables now? [Y/n] y
Als Nächstes verbindest du dich mit folgendem Befehl mit der MariaDB-Shell:
mysql -u root -p
Sobald du verbunden bist, erstelle eine Datenbank und einen Benutzer für InvoicePlane mit dem folgenden Befehl:
MariaDB [(none)]> CREATE DATABASE invplanedb; MariaDB [(none)]> CREATE USER 'invplane'@'localhost' IDENTIFIED BY 'password';
Erteile der InvoicePlane mit folgendem Befehl alle Berechtigungen:
MariaDB [(none)]> GRANT ALL PRIVILEGES ON invplanedb.* TO 'invplane'@'localhost';
Als Nächstes führst du den Befehl FLUSH PRIVILEGES aus, damit die Privilegien-Tabelle von MariaDB neu geladen wird:
MariaDB [(none)]> FLUSH PRIVILEGES;
Verlasse schließlich die MariaDB-Shell:
MariaDB [(none)]> EXIT
InvoicePlane installieren
Lade zunächst die neueste Version von InvoicePlane mit dem folgenden Befehl herunter:
wget -c -O v1.5.11.zip https://invoiceplane.com/download/v1.5.11
Sobald der Download abgeschlossen ist, erstellst du ein Verzeichnis für InvoicePlane und entpackst die heruntergeladene Datei in das Verzeichnis InvoicePlane:
mkdir /var/www/html/invoiceplane unzip v1.5.11.zip -d /var/www/html/invoiceplane
Als Nächstes navigierst du zum InvoicePlane-Verzeichnis und benennst die Konfigurationsdatei und die .htaccess-Datei um:
cd /var/www/html/invoiceplane cp ipconfig.php.example ipconfig.php cp htaccess .htaccess
Als Nächstes bearbeitest du die Datei ipconfig.php mit dem folgenden Befehl:
nano ipconfig.php
Lege deine Website-URL und Datenbankeinstellungen wie unten gezeigt fest:
IP_URL=http://invoice.example.com DB_HOSTNAME=localhost DB_USERNAME=invplane DB_PASSWORD=password DB_DATABASE=invplanedb DB_PORT=3306
Lege als Nächstes die richtigen Rechte und Eigentümer für das InvoicePlane-Verzeichnis fest:
chown -R www-data:www-data /var/www/html/invoiceplane/ chmod -R 755 /var/www/html/invoiceplane/
Apache für InvoicePlane konfigurieren
Als Nächstes musst du eine Konfigurationsdatei für den virtuellen Apache-Host für InvoicePlane erstellen. Du kannst sie mit dem folgenden Befehl erstellen:
nano /etc/apache2/sites-available/invoiceplane.conf
Füge die folgenden Zeilen hinzu:
<VirtualHost *:80> ServerAdmin admin@example.com DocumentRoot /var/www/html/invoiceplane ServerName invoice.example.com <Directory /var/www/html/invoiceplane/> Options +FollowSymlinks AllowOverride All Require all granted </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Speichere und schließe die Datei und aktiviere dann den virtuellen Apache-Host und das Rewrite-Modul mit dem folgenden Befehl:
a2ensite invoiceplane.conf a2enmod rewrite
Starte anschließend den Apache-Dienst neu, um die Konfigurationsänderungen zu übernehmen:
systemctl restart apache2
Um den Apache-Status zu überprüfen, führe den folgenden Befehl aus:
systemctl status apache2
Du erhältst die folgende Ausgabe:
? apache2.service - The Apache HTTP Server Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled) Active: active (running) since Fri 2022-01-21 08:42:34 UTC; 5s ago Docs: https://httpd.apache.org/docs/2.4/ Process: 15965 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS) Main PID: 15970 (apache2) Tasks: 6 (limit: 2341) Memory: 15.1M CPU: 82ms CGroup: /system.slice/apache2.service ??15970 /usr/sbin/apache2 -k start ??15971 /usr/sbin/apache2 -k start ??15972 /usr/sbin/apache2 -k start ??15973 /usr/sbin/apache2 -k start ??15974 /usr/sbin/apache2 -k start ??15975 /usr/sbin/apache2 -k start Jan 21 08:42:34 debian11 systemd[1]: Starting The Apache HTTP Server...
Zugriff auf InvoicePlane Web UI
Öffne nun deinen Webbrowser und rufe die InvoicePlane-Weboberfläche unter der URL http://invoice.example.com auf. Falls Du per IP zugreifen möchtest, kannst Du die IP via ifconfig Befehl erfahren.Du solltest die folgende Seite sehen:
Klicke auf die Schaltfläche Setup. Du solltest die Seite zur Sprachauswahl sehen:
Wähle deine Sprache aus und klicke auf die Schaltfläche Weiter. Du solltest die Seite mit den Voraussetzungen sehen:
Klicke auf die Schaltfläche “ Weiter“. Du solltest die folgende Seite sehen:
Klicke auf die Schaltfläche “ Weiter“. Du solltest die folgende Seite sehen:
Klicke auf die Schaltfläche “ Weiter“. Du solltest die folgende Seite sehen:
Gib die Daten deines Admin-Benutzerkontos und deine Adresse ein und klicke auf die Schaltfläche Fortfahren. Sobald InvoicePlane installiert ist, solltest du folgende Seite sehen:
Klicke auf die Schaltfläche Anmelden. Du solltest die folgende Seite sehen:
Gib deinen Admin-Benutzernamen und dein Passwort ein und klicke dann auf die Schaltfläche Login. Auf der folgenden Seite siehst du das Dashboard von InvoicePlane:
InvoicePlane mit Let’s Encrypt SSL sichern
Es ist immer eine gute Idee, deine Website mit Let’s Encrypt SSL zu sichern. Um das SSL zu installieren und zu verwalten, musst du den Certbot-Client installieren. Du kannst ihn mit dem folgenden Befehl installieren:
apt-get install python3-certbot-apache -y
Sobald Certbot installiert ist, führst du den folgenden Befehl aus, um deine Website mit Let’s Encrypt SSL zu sichern:
certbot --apache -d invoice.example.com
Du wirst aufgefordert, deine E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren (siehe unten):
Saving debug log to /var/log/letsencrypt/letsencrypt.log Plugins selected: Authenticator standalone, Installer None Enter email address (used for urgent renewal and security notices) (Enter 'c' to cancel): hitjethva1981@gmail.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Please read the Terms of Service at https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must agree in order to register with the ACME server at https://acme-v02.api.letsencrypt.org/directory - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (A)gree/(C)ancel: A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Would you be willing to share your email address with the Electronic Frontier Foundation, a founding partner of the Let's Encrypt project and the non-profit organization that develops Certbot? We'd like to send you email about our work encrypting the web, EFF news, campaigns, and ways to support digital freedom. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - (Y)es/(N)o: Y Plugins selected: Authenticator apache, Installer apache Obtaining a new certificate Performing the following challenges: http-01 challenge for invoice.example.com Enabled Apache rewrite module Waiting for verification... Cleaning up challenges Created an SSL vhost at /etc/apache2/sites-available/invoice-le-ssl.conf Enabled Apache socache_shmcb module Enabled Apache ssl module Deploying Certificate to VirtualHost /etc/apache2/sites-available/invoice-le-ssl.conf Enabling available site: /etc/apache2/sites-available/invoice-le-ssl.conf
Als Nächstes wählst du aus, ob der HTTP-Verkehr auf HTTPS umgeleitet werden soll oder nicht (siehe unten):
Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 1: No redirect - Make no further changes to the webserver configuration. 2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for new sites, or if you're confident your site works on HTTPS. You can undo this change by editing your web server's configuration. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 2
Gib 2 ein und drücke die Eingabetaste, um Let’s Encrypt SSL für deine Website zu installieren:
Enabled Apache rewrite module Redirecting vhost in /etc/apache2/sites-enabled/invoice.conf to ssl vhost in /etc/apache2/sites-available/invoice-le-ssl.conf - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Congratulations! You have successfully enabled https://invoice.example.com You should test your configuration at: https://www.ssllabs.com/ssltest/analyze.html?d=invoice.example.com - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - IMPORTANT NOTES: - Congratulations! Your certificate and chain have been saved at: /etc/letsencrypt/live/invoice.example.com/fullchain.pem Your key file has been saved at: /etc/letsencrypt/live/invoice.example.com/privkey.pem Your cert will expire on 2022-04-23. To obtain a new or tweaked version of this certificate in the future, simply run certbot again with the "certonly" option. To non-interactively renew *all* of your certificates, run "certbot renew" - If you like Certbot, please consider supporting our work by: Donating to ISRG / Let's Encrypt: https://letsencrypt.org/donate Donating to EFF: https://eff.org/donate-le
Fazit
Herzlichen Glückwunsch! Du hast InvoicePlane erfolgreich mit Apache und Let’s Encrypt SSL auf Debian 11 installiert. Jetzt kannst du InvoicePlane in deinem Unternehmen einführen und deine Zahlungen und Rechnungen über den Webbrowser verwalten.