GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

So installieren Sie InvoiceNinja auf Ubuntu 20.04 Server mit Apache/Nginx

Dieses Tutorial zeigt Ihnen, wie Sie InvoiceNinja auf Ubuntu 20.04 mit Apache- oder Nginx-Webserver installieren. InvoiceNinja ist eine selbst gehostete Open-Source-Rechnungssoftware, eine kostengünstige Alternative zu kommerziellen Online-Rechnungsplattformen wie Freshbooks. InvoiceNinja bietet einen gehosteten Rechnungsservice, aber wenn Sie die Software selbst hosten möchten, können Sie die nachstehenden Anweisungen befolgen.

InvoiceNinja-Funktionen

  • Mit InvoiceNinja können Sie Rechnungen an Ihre Kunden senden, indem Sie Ihren eigenen Domainnamen und Ihre eigene Marke verwenden.
  • Verwalten Sie die Rechnungsstellung für mehrere Unternehmen unter einem einzigen Konto.
  • Sparen Sie Zeit, indem Sie langfristige Kunden automatisch mit wiederkehrenden Rechnungen abrechnen.
  • Erstellen und senden Sie einfach ansprechende Angebote an Ihre Kunden.
  • Dateien von Drittanbietern an Rechnungen anhängen.
  • Erstellen Sie Projektaufgaben und verfolgen Sie die Zeit.
  • Organisieren und planen Sie Ihre Kundenarbeit mit einem visuellen Projektmanagement-Tool.
  • Ermöglichen Sie Ihren Kunden, alle ihre Transaktionen mit Ihnen auf einen Blick zu sehen.
  • Mit der Zapier-Automatisierung können Sie Daten zwischen Ihrem Rechnungskonto und beliebten Apps übertragen, darunter Gmail, Google Sheets, QuickBooks Online, Slack, Pipeline, MailChimp und Hunderte mehr.
  • Fordern Sie Anzahlungen und Teilzahlungen immer wieder mit derselben Rechnung an.
  • Verwenden Sie eine vorgefertigte automatische Erinnerungs-E-Mail-Sequenz, um Kunden daran zu erinnern, dass Ihre Rechnung bezahlt werden muss.
  • Erhalten Sie Benachrichtigungen, wenn ein Kunde Ihre Rechnung ansieht und bezahlt.
  • Und viele mehr

Voraussetzungen

Zunächst benötigen Sie einen Linux-Server mit mindestens 512 MB RAM. Sie können auf diesen speziellen Link klicken, um 100 $ kostenloses Guthaben auf DigitalOcean zu erhalten. (Nur für neue Benutzer). Wenn Sie bereits DigitalOcean-Benutzer sind, können Sie auf diesen speziellen Link klicken, um ein kostenloses Guthaben von 50 $ für Vultr zu erhalten (nur für neue Benutzer). Sobald Sie ein Konto bei DigitalOcean oder Vultr haben, installieren Sie Ubuntu 20.04 auf Ihrem Server und befolgen Sie die nachstehenden Anweisungen.

InvoiceNinja erfordert PHP und MySQL/MariaDB. Um diesem Tutorial zu folgen, sollten Sie bereits einen LAMP-Stack oder LEMP-Stack eingerichtet haben. Wenn Sie dies noch nicht getan haben, verwenden Sie bitte eine der folgenden Anleitungen.

  • So installieren Sie den LAMP-Stack (Apache, MariaDB, PHP) unter Ubuntu 20.04
  • So installieren Sie den LEMP-Stack (Nginx, MariaDB, PHP) unter Ubuntu 20.04

Und Sie brauchen auch einen Domainnamen, damit Ihre Kunden die Rechnung über Ihren Domainnamen sehen können. Ich habe meinen Domainnamen bei NameCheap registriert, weil der Preis niedrig ist und sie Whois-Datenschutz lebenslang kostenlos bieten.

Lassen Sie uns nun InvoiceNinja installieren.

Schritt 1:Laden Sie die Zip-Datei von InvoiceNinja Install auf dem Ubuntu 20.04-Server herunter

Melden Sie sich über SSH bei Ihrem Ubuntu 20.04-Server an. Führen Sie dann den folgenden Befehl aus, um die neueste Version der InvoiceNinja-ZIP-Datei auf Ihren Server herunterzuladen.

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

Extrahieren Sie das Archiv nach dem Herunterladen in das Verzeichnis /var/www/ Verzeichnis mit unzip .

sudo apt install unzip

sudo mkdir -p /var/www/

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

Das -d Option gibt das Zielverzeichnis an. InvoiceNinja-Webdateien werden nach /var/www/ninja extrahiert . Um jedes Verzeichnis besser zu identifizieren, können Sie es in invoice-ninja umbenennen .

sudo mv /var/www/ninja /var/www/invoice-ninja

Dann müssen wir den Eigentümer dieses Verzeichnisses auf www-data ändern damit der Webserver in dieses Verzeichnis schreiben kann.

sudo chown www-data:www-data /var/www/invoice-ninja/ -R

Wir müssen auch die Berechtigung des storage ändern Verzeichnis.

sudo chmod 755 /var/www/invoice-ninja/storage/ -R

Schritt 2:Erstellen Sie eine Datenbank und einen Benutzer in MariaDB

Melden Sie sich mit dem folgenden Befehl beim MariaDB-Datenbankserver an. Da MariaDB jetzt unix_socket verwendet Plugin für die Benutzeranmeldung zur Authentifizierung müssen Sie das MariaDB-Root-Passwort nicht eingeben. Wir müssen nur mysql voranstellen Befehl mit sudo .

sudo mysql

Erstellen Sie dann eine Datenbank für Invoice Ninja. Dieses Tutorial nennt die Datenbank invoiceninja . Sie können einen beliebigen Namen verwenden.

create database invoiceninja;

Erstellen Sie den Datenbankbenutzer. Auch hier können Sie Ihren bevorzugten Namen für diesen Benutzer verwenden. Ersetzen Sie your-password mit Ihrem bevorzugten Passwort.

create user ninja@localhost identified by 'your-password';

Gewähren Sie diesem Benutzer alle Berechtigungen für invoiceninja Datenbank.

grant all privileges on invoiceninja.* to ninja@localhost;

Berechtigungen leeren und beenden.

flush privileges;

exit;

Schritt 3:PHP-Module installieren

Beachten Sie, dass InvoiceNinja derzeit PHP7.4 nicht unterstützt. Für beste Kompatibilität wird empfohlen, PHP7.3 PPA hinzuzufügen und PHP7.3 zu installieren.

sudo add-apt-repository ppa:ondrej/php

Führen Sie dann die folgenden Befehle aus, um die von InvoiceNinja erforderlichen oder empfohlenen PHP-Module zu installieren.

sudo apt install php-imagick php7.3-fpm php7.3-mysql php7.3-common php7.3-gd php7.3-json php7.3-curl php7.3-zip php7.3-xml php7.3-mbstring php7.3-bz2 php7.3-intl php7.3-gmp

Wenn Sie den Apache-Webserver verwenden, müssen Sie das PHP-Modul für Apache deaktivieren.

sudo a2dismod php7.4

Sie müssen auch das Prefork-MPM-Modul deaktivieren.

sudo a2dismod mpm_prefork

Jetzt müssen Sie den folgenden Befehl ausführen, um drei Module zu aktivieren, um PHP-FPM zu verwenden, unabhängig davon, ob mod_php auf Ihrem Server installiert ist.

sudo a2enmod mpm_event proxy_fcgi setenvif

Starten Sie dann Apache neu.

sudo systemctl restart apache2

Schritt 4:Webserver einrichten

Wir können Apache- oder Nginx-Webserver verwenden.

Apache

Wenn Sie Apache bevorzugen, erstellen Sie eine virtuelle Hostdatei für Invoice Ninja.

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

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie invoice.yourdomain.com mit Ihrer eigenen Subdomain für Invoice Ninja. Vergessen Sie nicht, in Ihrem DNS-Manager einen A-Eintrag für den Domainnamen festzulegen. (Beachten Sie, dass das Webroot auf /var/www/invoice-ninja/public/ eingestellt ist , nicht /var/www/invoice-ninja/ )

<VirtualHost *:80>
    ServerName invoice.yourdomain.com
    DocumentRoot /var/www/invoice-ninja/public

    <Directory /var/www/invoice-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.3-fpm.conf
</VirtualHost>

Speichern und schließen Sie die Datei. Aktivieren Sie dann diesen virtuellen Host.

sudo a2ensite invoice-ninja.conf

Wir müssen das Rewrite-Modul aktivieren.

sudo a2enmod rewrite

Starten Sie Apache neu, damit die Änderungen wirksam werden.

sudo systemctl restart apache2

Besuchen Sie jetzt invoice.yourdomain.com und Sie werden zur Seite des Invoice Ninja-Einrichtungsassistenten weitergeleitet (invoice.yourdomain.com/setup ). Wenn Sie die Apache-Standardseite anstelle des Setup-Assistenten sehen, müssen Sie den standardmäßigen virtuellen Host deaktivieren.

sudo a2dissite 000-default.conf

Und Apache neu starten.

Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren, was in Schritt 4 erklärt wird.

Nginx

Wenn Sie Nginx bevorzugen, erstellen Sie eine invoice-ninja.conf Datei in /etc/nginx/conf.d/ Verzeichnis.

sudo nano /etc/nginx/conf.d/invoice-ninja.conf

Fügen Sie den folgenden Text in die Datei ein. Ersetzen Sie invoice.yourdomain.com mit Ihrer eigenen Subdomain für Invoice Ninja. Vergessen Sie nicht, in Ihrem DNS-Manager einen Eintrag für den Domainnamen festzulegen. (Beachten Sie, dass das Webroot auf /var/www/invoice-ninja/public/ eingestellt ist , nicht /var/www/invoice-ninja/ )

server {
    listen 80;
    listen [::]:80;
    server_name invoice.yourdomain.com;

    root /var/www/invoice-ninja/public/;
    index index.php index.html index.htm;
    charset utf-8;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location = /favicon.ico { access_log off; log_not_found off; }
    location = /robots.txt  { access_log off; log_not_found off; }

    access_log  /var/log/nginx/invoiceninja.access.log;
    error_log   /var/log/nginx/invoiceninja.error.log;

    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php7.3-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
    }

    location ~ /\.ht {
        deny all;
    }
}

Speichern und schließen Sie die Datei. Testen Sie dann die Nginx-Konfiguration.

sudo nginx -t

Wenn der Test erfolgreich ist, laden Sie Nginx neu, damit die Änderungen wirksam werden.

sudo systemctl reload nginx

Besuchen Sie jetzt invoice.yourdomain.com und Sie werden zur Seite des Invoice Ninja-Einrichtungsassistenten weitergeleitet (invoice.yourdomain.com/setup ). Bevor wir Informationen in den Einrichtungsassistenten eingeben, müssen wir HTTPS aktivieren.

Schritt 5:HTTPS aktivieren

Um den HTTP-Verkehr zu verschlüsseln, können wir HTTPS aktivieren, indem wir ein kostenloses TLS-Zertifikat installieren, das von Let’s Encrypt ausgestellt wurde. Führen Sie den folgenden Befehl aus, um den Let’s Encrypt-Client (certbot) auf dem Ubuntu 20.04-Server zu installieren.

sudo apt install certbot

Wenn Sie Nginx verwenden, müssen Sie auch das Certbot Nginx-Plugin installieren.

sudo apt install python3-certbot-nginx

Führen Sie als Nächstes den folgenden Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com

Wenn Sie Apache verwenden, installieren Sie das Certbot Apache-Plugin.

sudo apt install python3-certbot-apache

Und führen Sie diesen Befehl aus, um das TLS-Zertifikat zu erhalten und zu installieren.

sudo certbot --apache --agree-tos --redirect --hsts --staple-ocsp --email [email protected] -d invoice.yourdomain.com

Wo

  • --nginx :Verwenden Sie das nginx-Plugin.
  • --apache :Verwenden Sie das Apache-Plugin.
  • --agree-tos :Nutzungsbedingungen akzeptieren.
  • --redirect :HTTPS durch 301-Umleitung erzwingen.
  • --hsts :Fügen Sie jeder HTTP-Antwort den Strict-Transport-Security-Header hinzu. Erzwingen, dass der Browser immer TLS für die Domäne verwendet. Schützt vor SSL/TLS-Stripping.
  • --staple-ocsp :Aktiviert OCSP-Heften. Eine gültige OCSP-Antwort wird an das Zertifikat geheftet, das der Server während TLS anbietet.

Das Zertifikat sollte nun abgerufen und automatisch installiert werden.

Schritt 6:Beenden Sie die Installation mit dem Einrichtungsassistenten

Gehen Sie nun zu invoice.yourdomain.com und geben Sie die Datenbankinformationen und SMTP-Einstellungen ein und erstellen Sie einen Admin-Benutzer.

Wenn Sie Ihren eigenen Mailserver verwenden möchten, um E-Mails an Clients zu senden, lesen Sie bitte den folgenden Artikel, um Ihren eigenen Mailserver einzurichten. Hinweis dass ich dringend empfehle, den iRedMail-Mailserver auf einem frischen, sauberen Betriebssystem auszuführen. Die Installation von iRedMail auf einem Betriebssystem mit anderen Webanwendungen kann fehlschlagen und wahrscheinlich vorhandene Anwendungen beschädigen.

  • So richten Sie mit iRedMail ganz einfach einen voll funktionsfähigen Mailserver unter Ubuntu 20.04 ein

Bei Verwendung eines eigenen E-Mail-Servers stehen zwei Treiber zur Auswahl:SMTP und Sendmail .

  • Wählen Sie SMTP wenn Ihr Mailserver und Invoice Ninja auf zwei verschiedenen Hosts laufen.
  • Wählen Sie Sendmail wenn Ihr Mailserver und Invoice Ninja auf demselben Host laufen.

Wenn Sie SMTP wählen , verwenden Sie die Einstellungen wie unten.

  • Host :mail.ihredomain.com  Port :587   Verschlüsselung :TLS. Und geben Sie Ihren Benutzernamen und Ihr Passwort ein.

Wenn Sie Sendmail wählen , verwenden Sie die Einstellungen wie unten.

  • Host :127.0.0.1   Port :25    Verschlüsselung :keiner. Sie müssen weder Benutzername noch Passwort eingeben.

Nachdem Sie den Admin-Benutzer erstellt haben, können Sie sich bei InvoiceNinja anmelden.

Cronjobs einrichten

Wir müssen Cron-Jobs einrichten, um wiederkehrende Rechnungen und E-Mail-Erinnerungen zu senden. Bearbeiten Sie die crontab-Datei des Root-Benutzers.

sudo crontab -e

Fügen Sie am Ende dieser Datei die folgenden Zeilen hinzu.

#InvoiceNinja
0 8 * * * /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-invoices > /dev/null
0 8 * * * /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-reminders > /dev/null

Speichern und schließen Sie die Datei. Die beiden Cron-Jobs werden jeden Tag um 8:00 Uhr ausgeführt. Sie können einen Job wie unten auch manuell ausführen.

sudo /usr/bin/php7.3 /var/www/invoice-ninja/artisan ninja:send-invoices

Entfernen des Invoice-Ninja-Brandings

Standardmäßig hat Ihre Rechnung das Invoice Ninja-Branding. Sie können eine White-Label-Lizenz für 30 $/Jahr erwerben, um das Invoice Ninja-Branding aus dem Rechnungs- und Kundenportal zu entfernen. Gehen Sie zu settings -> Invoice Design , klicken Sie auf das white-label Link unten zum Kauf.

Schlussfolgerung

Ich hoffe, dieses Tutorial hat Ihnen geholfen, Invoice Ninja auf einem Ubuntu 20.04-Server zu installieren. Wenn Sie diesen Beitrag nützlich fanden, abonnieren Sie wie immer unseren kostenlosen Newsletter, um weitere Tipps und Tricks zu erhalten. Pass auf dich auf 🙂


Ubuntu
  1. So installieren Sie Nginx unter Ubuntu 20.04

  2. So installieren Sie Jenkins Automation Server mit Apache unter Ubuntu 16.04

  3. So installieren Sie MediaWiki mit Nginx unter Ubuntu 16.04

  4. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 16.04

  5. So installieren Sie den HTTP-Git-Server mit Nginx unter Ubuntu 20.04

Installieren Sie Roundcube Webmail auf Ubuntu 20.04 mit Apache/Nginx

So installieren Sie den Sonerezh Music Streaming Server auf Ubuntu 16.04 mit Apache oder Nginx

So installieren Sie InvoiceNinja auf Ubuntu 18.04 Server mit Apache/Nginx

So installieren Sie phpMyAdmin mit Apache unter Ubuntu 22.04 LTS

So installieren Sie Nginx auf Ubuntu

So installieren Sie LetsEncrypt mit Nginx unter Ubuntu 15.04