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:

InvoicePlane Installer

Klicke auf die Schaltfläche Setup. Du solltest die Seite zur Sprachauswahl sehen:

Sprache wählen

Wähle deine Sprache aus und klicke auf die Schaltfläche Weiter. Du solltest die Seite mit den Voraussetzungen sehen:

Voraussetzungen prüfen

Klicke auf die Schaltfläche “ Weiter“. Du solltest die folgende Seite sehen:

Datenbank Details

Klicke auf die Schaltfläche “ Weiter“. Du solltest die folgende Seite sehen:

Datenbanktabellen installieren

Klicke auf die Schaltfläche “ Weiter“. Du solltest die folgende Seite sehen:

Ein Benutzerkonto erstellen

Kontaktinformationen

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:

InvoicePlane Installation abgeschlossen

Klicke auf die Schaltfläche Anmelden. Du solltest die folgende Seite sehen:

Anmeldung

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 Dashboard

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.

Das könnte dich auch interessieren …