So installieren Sie Invoice Ninja auf Ubuntu 20.04

Invoice Ninja ist eine kostenlose und quelloffene Online-Rechnungs-App für Freiberufler & Unternehmen, die Ihnen hilft, Zahlungen zu akzeptieren, Ausgaben zu verfolgen, Angebote und Zeitaufgaben zu erstellen. Es ist eine selbst gehostete Rechnungsanwendung, die kommerziellen Rechnungsanwendungen wie Freshbooks sehr ähnlich ist. Es ermöglicht Ihnen, Ihre eigene benutzerdefinierte Rechnung zu erstellen und sie innerhalb einer Sekunde online zu versenden.

Invoice Ninja ist sehr nützlich für kleine oder mittlere Unternehmen. Wenn Sie auf der Suche nach einer sicheren und einfach zu bedienenden Rechnungssoftware sind, dann ist Invoice Ninja die beste Option für Sie.

In diesem Tutorial zeigen wir Ihnen, wie Sie Invoice Ninja mit Apache und Let’s Encrypt SSL auf einem Ubuntu 20.04 Server installieren.

Voraussetzungen

  • Ein Server, auf dem Ubuntu 20.04 läuft.
  • Ein gültiger Domainname, der auf die IP des Servers zeigt.
  • Ein Root-Passwort ist auf dem Server konfiguriert.

Erste Schritte

Zunächst wird empfohlen, Ihre Systempakete auf die neueste Version zu aktualisieren. Führen Sie den folgenden Befehl aus, um alle Pakete zu aktualisieren:

apt-get update -y

Sobald alle Pakete aktualisiert sind, installieren Sie weitere erforderliche Abhängigkeiten mit dem folgenden Befehl:

apt-get install software-properties-common apt-transport-https ca-certificates gnupg2 -y

Sobald alle Abhängigkeiten installiert sind, können Sie mit dem nächsten Schritt fortfahren.

LAMP-Server installieren

Als nächstes müssen Sie Apache, MariaDB und PHP auf Ihrem System installieren. Installieren Sie zunächst die Pakete Apache und MariaDB mit dem folgenden Befehl:

apt-get install apache2 mariadb-server -y

Nachdem Sie beide Pakete installiert haben, müssen Sie PHP Version 7.2 und andere Erweiterungen in Ihrem System installieren.

Ubuntu 20.04 wird standardmäßig mit der PHP-Version 7.4 ausgeliefert. Sie müssen also das Ondrej-Repository zu Ihrem System hinzufügen.

Sie können das PHP Ondrej Repository mit dem folgenden Befehl hinzufügen:

add-apt-repository ppa:ondrej/php

Sobald das Repository hinzugefügt ist, installieren Sie PHP und andere Erweiterungen mit dem folgenden Befehl:

apt-get install php7.2 libapache2-mod-php7.2 php-imagick php7.2-fpm php7.2-mysql php7.2-common php7.2-gd php7.2-json php7.2-curl php7.2-zip php7.2-xml php7.2-mbstring php7.2-bz2 php7.2-intl php7.2-gmp unzip -y

Nachdem Sie alle Pakete installiert haben, überprüfen Sie die installierte Version von PHP mit dem folgenden Befehl:

php -v

Sie sollten die folgende Ausgabe sehen:

PHP 7.2.34-8+ubuntu20.04.1+deb.sury.org+1 (cli) (built: Oct 31 2020 16:57:33) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
    with Zend OPcache v7.2.34-8+ubuntu20.04.1+deb.sury.org+1, Copyright (c) 1999-2018, by Zend Technologies

Konfigurieren Sie die MariaDB-Datenbank

Als nächstes müssen Sie eine Datenbank und einen Benutzer für Invoice Ninja erstellen. Melden Sie sich zunächst mit folgendem Befehl an der MariaDB-Konsole an:

mysql

Nach der Anmeldung erstellen Sie eine Datenbank und einen Benutzer mit dem folgenden Befehl:

MariaDB [(none)]> create database invoicedb;
MariaDB [(none)]> create user [email protected] identified by 'password';

Als nächstes erteilen Sie der invoicedb alle Rechte mit folgendem Befehl:

MariaDB [(none)]> grant all privileges on invoicedb.* to [email protected];

Legen Sie anschließend die Berechtigungen fest und verlassen Sie die MariaDB-Konsole mit dem folgenden Befehl:

MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Sobald Sie fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Installieren Sie Invoice Ninja

Laden Sie zunächst die neueste Version von Invoice Ninja von der offiziellen Website herunter:

wget -O invoice-ninja.zip https://download.invoiceninja.com/

Sobald der Download abgeschlossen ist, entpacken Sie die heruntergeladene Datei mit dem folgenden Befehl in das Apache-Root-Verzeichnis:

unzip invoice-ninja.zip -d /var/www/html/

Als nächstes setzen Sie mit dem folgenden Befehl die richtigen Berechtigungen und Eigentümer:

chown -R www-data:www-data /var/www/html/ninja
chmod -R 755 /var/www/html/ninja

Sobald Sie damit fertig sind, können Sie mit dem nächsten Schritt fortfahren.

Apache für Invoice Ninja konfigurieren

Als nächstes müssen Sie eine apache virtual host Konfigurationsdatei für Invoice Ninja erstellen. Sie können diese mit dem folgenden Befehl erstellen:

nano /etc/apache2/sites-available/ninja.conf

Fügen Sie die folgenden Zeilen ein:

<VirtualHost *:80>
    ServerName invoice.example.com
    DocumentRoot /var/www/html/ninja/public
    <Directory /var/www/html/ninja/public>
       DirectoryIndex index.php
       Options +FollowSymLinks
       AllowOverride All
       Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/invoice-ninja.error.log
    CustomLog ${APACHE_LOG_DIR}/invoice-ninja.access.log combined

    Include /etc/apache2/conf-available/php7.2-fpm.conf
</VirtualHost>

Speichern und schließen Sie die Datei und aktivieren Sie dann die virtuelle Hostdatei mit dem folgenden Befehl:

a2ensite ninja.conf

Als nächstes aktivieren Sie die benötigten Apache-Module mit dem folgenden Befehl:

a2enmod mpm_event proxy_fcgi setenvif
a2enmod rewrite

Starten Sie schließlich den Apache-Dienst neu, um die Änderungen zu übernehmen:

systemctl restart apache2

Sie können nun den Status des Apache mit folgendem Befehl überprüfen:

systemctl status apache2

Sie sollten die folgende Ausgabe erhalten:

? apache2.service - The Apache HTTP Server
     Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2020-12-27 07:15:15 UTC; 11s ago
       Docs: https://httpd.apache.org/docs/2.4/
    Process: 25097 ExecStart=/usr/sbin/apachectl start (code=exited, status=0/SUCCESS)
   Main PID: 25113 (apache2)
      Tasks: 55 (limit: 2353)
     Memory: 5.3M
     CGroup: /system.slice/apache2.service
             ??25113 /usr/sbin/apache2 -k start
             ??25114 /usr/sbin/apache2 -k start
             ??25115 /usr/sbin/apache2 -k start

Dec 27 07:15:15 ubuntu systemd[1]: Starting The Apache HTTP Server..

An diesem Punkt ist der Apache so konfiguriert, dass er Invoice Ninja bedienen kann. Sie können nun mit dem nächsten Schritt fortfahren.

Zugriff auf Invoice Ninja

Öffnen Sie nun Ihren Webbrowser und rufen Sie Invoice Ninja über die URL http://invoice.example.com auf. Sie werden auf die folgende Seite weitergeleitet:

Einrichtung von Invoice Ninja

MySQL-Einstellungen

Benutzerdetails

Geben Sie Ihre Website-URL, Datenbankdetails, Admin-Benutzername und Passwort ein und klicken Sie auf die Schaltfläche “ Senden „. Sie werden zum Anmeldebildschirm von Invoice Ninja weitergeleitet:

Login

Geben Sie Ihren Admin-Benutzernamen und Ihr Passwort ein und klicken Sie auf die Schaltfläche ANMELDEN. Sie sollten das Invoice Ninja Dashboard im folgenden Bildschirm sehen:

Invoice Ninja Dashboard

Sichern Sie Invoice Ninja mit Let’s Encrypt SSL

Es ist immer eine gute Idee, Ihre Website mit Let’s Encrypt SSL zu sichern. Sie müssen den Certbot Client installieren, um das SSL zu installieren und zu verwalten. Sie können ihn mit dem folgenden Befehl installieren:

apt-get install python3-certbot-apache -y

Sobald Certbot installiert ist, führen Sie den folgenden Befehl aus, um Ihre Website mit Let’s Encrypt SSL zu sichern:

certbot --apache -d invoice.example.com

Sie werden aufgefordert, Ihre E-Mail-Adresse anzugeben und die Nutzungsbedingungen zu akzeptieren, wie unten gezeigt:

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): [email protected]

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
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

Wählen Sie als Nächstes aus, ob der HTTP-Datenverkehr 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

Geben Sie 2 ein und drücken Sie die Eingabetaste, um das Let’s Encrypt SSL für Ihre 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 2020-10-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

Jetzt können Sie über die URL https://invoice.example.com sicher auf Ihre Website zugreifen.

Fazit

Herzlichen Glückwunsch! Sie haben Invoice Ninja mit Let’s Encrypt SSL erfolgreich auf einem Ubuntu 20.04 Server installiert und konfiguriert. Sie können nun Invoice Ninja auf weitere Funktionen untersuchen und in der Produktionsumgebung einsetzen. Fühlen Sie sich frei, mich zu fragen, wenn Sie irgendwelche Fragen haben.

Das könnte dich auch interessieren …