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 invoice@localhost identified by 'password';
Als nächstes erteilen Sie der invoicedb alle Rechte mit folgendem Befehl:
MariaDB [(none)]> grant all privileges on invoicedb.* to invoice@localhost;
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:
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:
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:
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): 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
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.