So installieren Sie Invoice Ninja unter Ubuntu 16.04

Einführung

Invoice Ninja ist eine kostenlose und webbasierte Open-Source-Anwendung, die für Rechnungsstellung, Zahlungen, Zeiterfassung und vieles mehr verwendet werden kann. Es ist die beste Lösung für die Fakturierung und Abrechnung von Kunden. Sie können Rechnungen in Sekundenschnelle online erstellen und senden. Mit Invoice Ninja können Sie benutzerdefinierte Rechnungen erstellen und Live-Rechnungen als PDF-Datei anzeigen.

In diesem Tutorial werde ich erklären, wie Invoice Ninja auf einem Ubuntu 16.04-Server installiert wird.

Voraussetzungen

  • Eine Ubuntu 16.04-Serverinstanz mit 2 GB RAM installiert.
  • Ein Sudo-Benutzer mit Root-Rechten.
  • Sie müssen die Haupt-IP Ihrer Serverinstanz kennen. In diesem Tutorial werde ich verwenden 192.168.0.227.

Schritt 1: Aktualisieren Sie das System

Vor der Installation von Paketen auf der Ubuntu-Serverinstanz wird empfohlen, das System zu aktualisieren. Melden Sie sich über SSH als sudo-Benutzer bei Ihrem Server an und führen Sie den folgenden Befehl aus:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now

Schritt 2: Installieren Sie den LEMP-Stack

Bevor Sie beginnen, müssen Sie einen LEMP-Stack (Nginx, MariaDB und PHP) auf Ihrem Server konfigurieren.

Installieren Sie zunächst Nginx und MariaDB mit dem folgenden Befehl:

sudo apt-get install nginx mariadb-server -y

Starten Sie nach Abschluss der Installation die Dienste Nginx und MariaDB und aktivieren Sie sie beim Booten:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql

Als nächstes benötigen Sie PHP 7 und PHP-FPM für die Installation von Invoice Ninja.

Sie können PHP-FPM und die anderen erforderlichen PHP-Erweiterungen mit dem folgenden Befehl installieren:

sudo apt-get install php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-curl php7.0-gmp php7.0-mbstring php7.0-mcrypt

Nach Abschluss der Installation müssen Sie die php.iniKonfigurationsdatei ändern :

sudo nano /etc/php/7.0/fpm/php.ini

Ändern Sie die folgende Zeile:

cgi.fix_pathinfo=0

Speichern und schließen Sie die Datei.

Schritt 3: Datenbank konfigurieren

Standardmäßig wurde die MariaDB-Installation nicht gesichert. Sie müssen es sichern. Sie können dies tun, indem Sie ausführen mysql_secure_installation script.

sudo mysql_secure_installation

Beantworten Sie alle Fragen wie folgt:

Set root password? [Y/n] Y
New password:
Re-enter new password:
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

Wenn alles erledigt ist, verbinden Sie sich mit der MySQL-Shell mit dem folgenden Befehl:

mysql -u root -p

Geben Sie Ihr Root-Passwort ein und drücken Sie die Eingabetaste. Die MySQL (MariaDB) -Shell wird angezeigt.

Erstellen Sie eine neue Datenbank und einen neuen Benutzer für Invoice Ninja.

MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Schritt 4: Konfigurieren Sie PHP-FPM

Konfigurieren Sie den PHP-FPM-Pool für den Nginx-Benutzer:

sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf

Fügen Sie die folgenden Zeilen hinzu:

[www-data]
user = www-data
group = www-data
listen = /var/run/php-fpm-www-data.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

Speichern und schließen Sie die Datei, wenn Sie fertig sind, und starten Sie PHP-FPM neu, um diese Änderungen zu übernehmen.

systemctl restart php7.0-fpm

Schritt 5: Laden Sie Invoice Ninja herunter und konfigurieren Sie es

Sie können die neueste stabile Version von Invoice Ninja mit dem folgenden Befehl aus dem GitHub-Repository herunterladen:

cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja

Sie müssen auch Composer installieren, einen Abhängigkeitsmanager für PHP. Sie können es mit dem folgenden Befehl installieren:

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Installieren Sie als Nächstes alle Invoice Ninja-Abhängigkeiten mit dem folgenden composerBefehl:

cd /var/www/html/ninja
sudo composer install --no-dev -o

Benennen Sie die .envDatei nach Abschluss der Installation um und nehmen Sie einige Änderungen vor.

sudo mv .env.example .env
sudo nano .env

Ändern Sie die Zeilen wie unten gezeigt:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

Speichern Sie die Datei, wenn Sie fertig sind, und führen Sie den folgenden Befehl aus, um die Datenbank vorzubereiten:

sudo php artisan migrate

Sie werden aufgefordert, den Befehl auszuführen, geben Sie "Ja" ein und drücken Sie die Eingabetaste.

Setzen Sie als Nächstes die Datenbank mit den folgenden Datensätzen ein:

sudo php artisan db:seed

Geben Sie "Ja" ein und drücken Sie die Eingabetaste.

Ändern Sie als Nächstes den Eigentümer des /var/www/html/ninjaVerzeichnisses:

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

Schritt 6: Konfigurieren Sie Nginx für Invoice Ninja

Als Nächstes müssen Sie ein SSL-Zertifikat erstellen und eine neue virtuelle Hostkonfiguration für Invoice Ninja erstellen.

Erstellen Sie zunächst ein Verzeichnis für SSL:

sudo mkdir -p /etc/nginx/cert/

Generieren Sie als Nächstes ein SSL-Zertifikat mit dem folgenden Befehl:

sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

Geben Sie der Zertifikatdatei die richtigen Berechtigungen.

sudo chmod 600 /etc/nginx/cert/*

Erstellen Sie eine neue Konfigurationsdatei für den virtuellen Host im /etc/nginx/Verzeichnis.

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

Fügen Sie die folgenden Zeilen hinzu:

server {
    listen  80;
    server_name 192.168.0.227;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen  443 default;
    server_name 192.168.0.227;
    ssl on;
    ssl_certificate     /etc/nginx/cert/ninja.crt;
    ssl_certificate_key /etc/nginx/cert/ninja.key;
    ssl_session_timeout 5m;
    ssl_ciphers  'AES128+EECDH:AES128+EDH:!aNULL';
    ssl_protocols  TLSv1 TLSv1.1 TLSv1.2;
    ssl_prefer_server_ciphers on;
    root /var/www/html/ninja/public;
    index index.html index.htm index.php;
    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 and Error Log for Invoice Ninja
    access_log  /var/log/nginx/ininja.access.log;
    error_log   /var/log/nginx/ininja.error.log;

    sendfile off;

    # Handle PHP Applications
    location ~ \.php$ {
    fastcgi_split_path_info ^(.+\.php)(/.+)$;
    fastcgi_pass unix:/var/run/php-fpm-www-data.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. Aktivieren Sie dann den virtuellen Host mit dem folgenden Befehl.

sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/

Starten Sie abschließend den Nginx-Webserver neu.

sudo systemctl restart nginx

Schritt 7: Zugriff auf Rechnung Ninja

Bevor Sie auf die Invoice Ninja-Weboberfläche zugreifen können, müssen Sie HTTP- und HTTPS-Dienste über die UFW-Firewall zulassen. Führen Sie die folgenden Befehle aus, um diese Ports zu öffnen:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Öffnen Sie abschließend Ihren Webbrowser und greifen Sie auf die URL zu https://192.168.0.227. Anschließend können Sie die erforderlichen Schritte ausführen, um die Installation abzuschließen.

Herzliche Glückwünsche! Wir haben Invoice Ninja erfolgreich mit Nginx und MariaDB auf dem Ubuntu 16.04 Server installiert.



Leave a Comment

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Kann KI mit zunehmender Anzahl von Ransomware-Angriffen kämpfen?

Ransomware-Angriffe nehmen zu, aber kann KI helfen, den neuesten Computervirus zu bekämpfen? Ist KI die Antwort? Lesen Sie hier, ob KI boone oder bane ist

ReactOS: Ist das die Zukunft von Windows?

ReactOS: Ist das die Zukunft von Windows?

ReactOS, ein quelloffenes und kostenloses Betriebssystem, ist hier mit der neuesten Version. Kann es den Anforderungen moderner Windows-Benutzer genügen und Microsoft zu Fall bringen? Lassen Sie uns mehr über dieses alte, aber neuere Betriebssystem erfahren.

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Bleiben Sie in Verbindung über die WhatsApp Desktop App 24*7

Whatsapp hat endlich die Desktop-App für Mac- und Windows-Benutzer auf den Markt gebracht. Jetzt können Sie ganz einfach von Windows oder Mac auf WhatsApp zugreifen. Verfügbar für Windows 8+ und Mac OS 10.9+

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Wie kann KI die Prozessautomatisierung auf die nächste Stufe heben?

Lesen Sie dies, um zu erfahren, wie Künstliche Intelligenz bei kleinen Unternehmen beliebt wird und wie sie die Wahrscheinlichkeit erhöht, sie wachsen zu lassen und ihren Konkurrenten einen Vorsprung zu verschaffen.

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

macOS Catalina 10.15.4 Supplement Update verursacht mehr Probleme als sie zu lösen

Vor kurzem hat Apple macOS Catalina 10.15.4 als Ergänzungsupdate veröffentlicht, um Probleme zu beheben, aber es scheint, dass das Update mehr Probleme verursacht, die zum Bricking von Mac-Computern führen. Lesen Sie diesen Artikel, um mehr zu erfahren

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

13 Tools zur kommerziellen Datenextraktion von Big Data

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Was ist ein Journaling-Dateisystem und wie funktioniert es?

Unser Computer speichert alle Daten in einer organisierten Weise, die als Journaling-Dateisystem bekannt ist. Es ist eine effiziente Methode, die es dem Computer ermöglicht, Dateien zu suchen und anzuzeigen, sobald Sie auf die Suche klicken.https://wethegeek.com/?p=94116&preview=true

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Technologische Singularität: Eine ferne Zukunft der menschlichen Zivilisation?

Da sich die Wissenschaft schnell weiterentwickelt und einen Großteil unserer Bemühungen übernimmt, steigt auch das Risiko, uns einer unerklärlichen Singularität auszusetzen. Lesen Sie, was Singularität für uns bedeuten könnte.

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Ein Einblick in 26 Big-Data-Analysetechniken: Teil 1

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

Der Einfluss künstlicher Intelligenz im Gesundheitswesen 2021

KI im Gesundheitswesen hat in den letzten Jahrzehnten große Fortschritte gemacht. Somit wächst die Zukunft der KI im Gesundheitswesen immer noch von Tag zu Tag.