Invoice Ninja ist eine webbasierte Open-Source-Software für Rechnungsstellung, Zahlungen, Zeiterfassung und vieles mehr. Sie können Rechnungen in Sekundenschnelle online erstellen und mit Zahlungsgateways wie Stripe, PayPal, WePay und anderen interagieren. Invoice Ninja kann Ihnen eine Live-Rechnungsvorschau im PDF-Format anzeigen. Das Firmenlogo in Vorlagen können Sie ganz einfach selbst ändern. Invoice Ninja basiert auf PHP, wird mit dem Laravel Framework erstellt und kann unter Linux und Windows installiert werden.
In diesem Tutorial zeige ich Ihnen, wie Sie Invoice Ninja unter Ubuntu 16.04 installieren. Ich werde Nginx als Webserver und MariaDB als Datenbanksystem verwenden.
Voraussetzung
- Ubuntu 16.04-Server.
- Root-Rechte.
Schritt 1 – Nginx installieren
In diesem Schritt installieren wir den Nginx-Webserver. Verbinden Sie sich mit Ihrem ssh-Root-Konto mit Ihrem Server (oder melden Sie sich mit einem anderen Benutzer an und verwenden Sie 'sudo -s', um root zu werden) und aktualisieren Sie das Repository.
ssh [email protected]
apt-get update
Installieren Sie Nginx mit dem folgenden apt-Befehl:
apt-get install -y nginx
Wenn die Installation von nginx abgeschlossen ist, starten Sie Nginx und fügen Sie es hinzu, um es beim Booten zu starten.
systemctl start nginx
systemctl enable nginx
Stellen Sie sicher, dass nginx ausgeführt wird. Überprüfen Sie den von nginx verwendeten Port, der Standardport des Webservers ist 80.
netstat -plntu
Schritt 2 – MariaDB-Server installieren und konfigurieren
Nach der Installation von Nginx müssen wir das Paket mariadb-server auf dem System installieren. Es ist im Ubuntu-Repository verfügbar. Installieren Sie mariadb-server und seine Abhängigkeiten mit dem folgenden Befehl.
apt-get install -y mariadb-server
Wenn die Installation abgeschlossen ist, starten Sie den Mariadb-Dienst und ermöglichen Sie ihm, beim Booten mit diesen systemctl-Befehlen zu starten.
systemctl restart mysql
systemctl enable mysql
MariaDB ist gestartet, jetzt können Sie das Root-Passwort für MariaDB mit dem folgenden Befehl festlegen.
mysql_secure_installation
Legen Sie Ihr neues MariaDB-Root-Passwort fest.
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
Versuchen Sie als Nächstes, sich als Root-Benutzer mit der MySQL-Shell zu verbinden.
mysql -u root -p
TYPE YOUR ROOT PASSWORD
Sie werden die MySQL-Shell sehen, wenn alles richtig funktioniert hat.
Jetzt müssen wir eine neue Datenbank und einen neuen Benutzer für Invoice Ninja erstellen. Ich werde eine neue Datenbank mit dem Namen „ninjadb“ erstellen ', ein neuer Benutzer 'ninja ' mit dem Passwort 'aqwe123 '. Bitte wählen Sie ein anderes und sicheres Passwort für Ihre Installation!
Erstellen Sie sie mit der folgenden MySQL-Abfrage. Erstellen Sie eine neue Datenbank, erstellen Sie einen neuen Benutzer und ein neues Passwort, gewähren Sie dem neuen Benutzer eine Datenbank mit einem Passwort.
create database ninjadb;
create user [email protected] identified by 'aqwe123';
grant all privileges on ninjadb.* to [email protected] identified by 'aqwe123';
flush privileges;
MariaDB wurde installiert und eine neue Datenbank und ein neuer Benutzer für Invoice Ninja wurden erstellt.
Schritt 3 – PHP7.0-FPM installieren und konfigurieren
Invoice Ninja basiert auf PHP, daher müssen wir PHP auf dem System installieren. Wir werden PHP7.0-FPM für diese Installation von Invoice Ninja verwenden.
Installieren Sie PHP7.0-FPM und andere von Invoice Ninja benötigte PHP-Erweiterungen mit dem folgenden Befehl.
apt-get install -y php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-mbstring php7.0-mcrypt php7.0-curl php7.0-gmp
Wechseln Sie nach der Installation in das PHP-Konfigurationsverzeichnis und bearbeiten Sie die Datei php.ini.
cd /etc/php/7.0/
vim fpm/php.ini
Entkommentieren Sie die CGI-Zeile unten und ändern Sie den Wert auf 0.
cgi.fix_pathinfo=0
Speichern und beenden.
Bearbeiten Sie die php.ini-Datei im cli-Verzeichnis.
vim cli/php.ini
Entkommentieren Sie die CGI-Zeile unten und ändern Sie den Wert auf 0.
cgi.fix_pathinfo=0
Speichern und beenden.
Starten Sie als Nächstes PHP7.0-FPM und aktivieren Sie es so, dass es beim Booten gestartet wird.
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
Standardmäßig läuft PHP7.0-FPM mit einer Socket-Datei, überprüfen Sie sie mit dem folgenden Befehl und Sie sehen die PHP-Socket-Datei wie im Screenshot gezeigt.
netstat -pl
PHP7.0-FPM und alle von Invoice Ninja benötigten Erweiterungen sind installiert.
Schritt 4 – Installieren und konfigurieren Sie Invoice Ninja
In diesem Schritt werden wir Invoice Ninja herunterladen und konfigurieren. Installieren Sie zunächst unzip auf Ihrem System.
apt-get install -y unzip
Gehen Sie zu '/var/www' Verzeichnis und laden Sie den Invoice Ninja-Quellcode mit dem Befehl wget herunter.
cd /var/www/
wget https://download.invoiceninja.com/ninja-v3.1.0.zip
Extrahieren Sie die ZIP-Datei von Invoice Ninja und wechseln Sie in das Verzeichnis „ninja“.
unzip ninja-v3.1.0.zip
cd ninja/
Für das Laravel-Projekt müssen wir den Composer Dependency Manager für PHP installieren. Es ist im Ubuntu-Repository verfügbar, sodass wir es mit dem apt-Befehl installieren können.
apt-get install -y composer
Installieren Sie als Nächstes Invoice Ninja-Abhängigkeiten mit dem Composer-Befehl unten.
composer install --no-dev -o
- --no-dev :Deaktiviert die Installation von require-dev-Paketen
- -o :Autoloader während Autoloader-Dump optimieren
Wenn die Installation der Abhängigkeit abgeschlossen ist, kopieren Sie die .env-Datei und bearbeiten Sie sie mit vim.
cp .env.example .env
vim .env
Ändern Sie den Wert der Datenbankeinstellungen unten.
DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123
Speichern und beenden.
Bearbeiten Sie als Nächstes die Datenbankkonfiguration im Konfigurationsverzeichnis.
vim config/database.php
Wir verwenden die MariaDB/MySQL-Datenbank, gehen Sie zur MySQL-Zeile 55.
'database' => env('DB_DATABASE', 'ninjadb'),
'username' => env('DB_USERNAME', 'ninja'),
'password' => env('DB_PASSWORD', 'aqwe123'),
Ersetzen Sie das Passwort durch das, das Sie für den Ninja-Benutzer festgelegt haben!
Speichern und beenden.
Alle Konfigurationsdateien werden bearbeitet. Als nächstes migrieren Sie die Datenbank mit dem folgenden Befehl.
php artisan migrate
Sie werden aufgefordert, den Befehl auszuführen, geben Sie "yes" ein ' und drücken Sie die Eingabetaste.
Als nächstes füttern Sie die Datenbank mit allen Datensätzen.
php artisan db:seed
Geben Sie „ja ein ' und drücken Sie zur Bestätigung die Eingabetaste.
Generieren Sie einen neuen Anwendungsschlüssel für das Laravel-Projekt Invoice Ninja.
php artisan key:generate
Sie sehen den Anwendungsschlüssel.
Bearbeiten Sie die Datei app.php mit vim.
vim config/app.php
Gehen Sie zur APP_KEY-Zeile 85 und fügen Sie den von uns generierten Schlüssel ein.
'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),
Speichern und beenden.
Ändern Sie schließlich den Eigentümer von „/var/www/ninja ' Verzeichnis nach 'www-data ' Benutzer und Gruppe.
cd /var/www/
chown -R www-data:www-data ninja/
Invoice Ninja ist konfiguriert und bereit für die Installation.
Schritt 5 – SSL und virtuellen Host konfigurieren
In diesem Schritt generieren wir eine SSL-Zertifikatsdatei mit dem OpenSSL-Befehl und erstellen eine neue virtuelle Hostkonfiguration für Invoice Ninja. Wenn Sie sich auf einem Live-Server befinden, können Sie ein kostenloses SSL von Let's Encrypt verwenden, anstatt ein selbstsigniertes SSL-Zertifikat mit OpenSSL zu generieren.
Erstellen Sie ein neues 'Zertifikat ' Verzeichnis für die SSL-Dateien.
mkdir -p /etc/nginx/cert/
Führen Sie den folgenden openssl-Befehl aus, um die Zertifikatsdateien zu generieren.
openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Ändern Sie die Berechtigung der Zertifikatsdateien auf „600“.
chmod 600 /etc/nginx/cert/*
Gehen Sie als Nächstes in das Nginx-Verzeichnis und erstellen Sie eine neue virtuelle Host-Konfigurationsdatei mit dem Namen „ninja '.
cd /etc/nginx/
vim sites-available/ninja
Fügen Sie die Konfiguration des virtuellen Hosts unten ein.
server {
# Your Domain Name - hakase-labs.co
listen 80;
server_name ninja.co www.ninja.co;
# Rewrite redirect to https
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
# Your Domain Name - hakase-labs.co
listen 443 default;
server_name ninja.co www.ninja.co;
# Enable SSL for Invoice Ninja
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;
# Invoice Ninja web root files
root /var/www/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:/run/php/php7.0-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 beenden.
Aktivieren Sie den virtuellen Ninja-Host und testen Sie die Nginx-Konfiguration, stellen Sie sicher, dass kein Fehler vorliegt.
ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
nginx -t
Starten Sie nun den nginx-Webserver neu.
systemctl restart nginx
Die Konfiguration des virtuellen Hosts von Invoice Ninja ist abgeschlossen.
Schritt 6 – Installation und Test abschließen
Öffnen Sie Ihren Webbrowser und geben Sie die Rechnungs-Ninja-URL ein:ninja.co. Sie werden zur https-Verbindungs- und Einrichtungsseite weitergeleitet.
Geben Sie die Anwendungseinstellungen, Datenbankverbindung, E-Mail-Einstellungen, Benutzerdetails ein und überprüfen Sie die Invoice Ninja TOS.
Klicken Sie auf "Senden". ' und Sie werden auf die Anmeldeseite von Invoice Ninja weitergeleitet.
Geben Sie Ihre E-Mail-Adresse und Ihr Passwort ein und drücken Sie dann auf 'LOGIN '.
Sie sehen das Invoice Ninja Dashboard.
Ninja-Einstellungsseite für Rechnungen.
Invoice Ninja installiert mit Nginx und MariaDB auf Ubuntu 16.04.