GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So installieren Sie Invoice Ninja auf CentOS 7

Invoice Ninja ist eine kostenlose und webbasierte Open-Source-Software für Rechnungsstellung, Zahlungen, Zeiterfassung und vieles mehr. Sie können Rechnungen in Sekundenschnelle online erstellen und in Zahlungsgateways wie Stripe, PayPal und WePay integrieren. Rechnung Ninja kann Ihnen Live-Rechnungen als PDF-Datei anzeigen, Sie können Ihr eigenes Firmenlogo einrichten und benutzerdefinierte Rechnungsvorlagen verwenden. Invoice Ninja basiert auf PHP, wird mit Laravel Framework erstellt und kann auf Linux, Windows und Mac installiert werden.

In diesem Tutorial zeige ich Ihnen, wie Sie Invoice Ninja auf einem CentOS 7-Server installieren und konfigurieren. Ich werde Nginx als Webserver und MariaDB als Datenbanksystem verwenden.

Voraussetzung

  • CentOS 7-Server
  • Root-Rechte

Schritt 1 – Nginx installieren

In diesem Schritt installieren wir den Nginx-Webserver. Verbinden Sie sich mit Ihrem ssh rot-Konto mit Ihrem Server.

ssh [email protected]

Vor der Installation von Nginx müssen Sie das Epel-Repository auf Ihrem CentOS-System installieren.

yum -y install epel-release

Jetzt können Sie Nginx mit dem folgenden yum-Befehl aus dem Epel-Repository installieren:

yum -y install nginx

Wenn die Installation abgeschlossen ist, starten Sie Nginx und aktivieren Sie es so, dass es beim Booten gestartet wird.

systemctl start nginx
systemctl enable nginx

Stellen Sie sicher, dass Nginx ausgeführt wird, indem Sie den von Nginx verwendeten Port (Port 80) überprüfen.

netstat -plntu

Hinweis:

Wenn Sie den netstat-Befehl nicht finden, können Sie net-tools wie folgt installieren:

yum -y install net-tools

Schritt 2 – MariaDB-Server installieren und konfigurieren

Nach der Installation von Nginx müssen wir den Mariadb-Server auf dem System installieren. Es ist im CentOS-Repository verfügbar. Installieren Sie mariadb-server und alle für MariaDB erforderlichen Pakete mit dem folgenden Befehl.

yum install -y mariadb-server

Starten Sie den Mariadb-Dienst und aktivieren Sie ihn mit dem Befehl systemctl, damit er beim Booten gestartet wird.

systemctl start mariadb
systemctl enable mariadb

MariaDB ist gestartet, jetzt können Sie das Root-Passwort für MariaDB mit dem Befehl „mysql_secure_installation“ festlegen.

mysql_secure_installation

Legen Sie Ihr 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

Wenn alles erledigt ist, können Sie versuchen, sich mit der MySQL-Shell und dem Root-Benutzer zu verbinden.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

Sie sehen die MySQL-Shell.

Als nächstes müssen wir in der von uns geöffneten MySQL-Shell eine neue Datenbank und einen neuen Benutzer für Invoice Ninja erstellen. Wir werden eine neue Datenbank mit dem Namen „ninjadb“ erstellen ', ein neuer Benutzer 'ninja ' mit dem Passwort 'aqwe123 '. Bitte wählen Sie ein anderes sicheres Passwort für Ihre Installation.

Erstellen Sie alles mit den folgenden MySQL-Abfragen:Erstellen Sie eine neue Datenbank, erstellen Sie einen neuen Benutzer und ein neues Passwort, gewähren Sie dem neuen Benutzer mit Passwort Datenbankzugriff.

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, also müssen wir es auf dem System installieren. Ich werde PHP7.0-FPM für die Installation von Invoice Ninja verwenden.

Es gibt kein PHP7.0 im CentOS-Standard-Repository, daher müssen wir dem System ein neues PHP7.0-Repository hinzufügen. Ich werde das Webtatic-Repository verwenden.

Fügen Sie das PHP7.0-Repository zum System hinzu.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Jetzt können Sie PHP7.0-FPM und andere von Invoice Ninja benötigte PHP-Erweiterungen aus dem webtatic-Repository installieren.

yum -y install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt php70w-curl php70w-gmp php70w-pdo

Wenn die Installation abgeschlossen ist, bearbeiten Sie die Konfigurationsdatei php.ini mit vim.

vim /etc/php.ini

Kommentieren Sie die cgi.fix_pathinfo-Zeile unten aus und ändern Sie den Wert auf 0.

cgi.fix_pathinfo=0

Speichern Sie die Datei und beenden Sie vim.

Bearbeiten Sie dann die PHP-FPM-Konfigurationsdatei.

vim /etc/php-fpm.d/www.conf

Ändern Sie den Benutzer und die Gruppe in Zeile 8 und 10 in „nginx ' Gruppe.

user = nginx
group = nginx

Anstelle eines Ports verwenden wir eine Socket-Datei für php-fpm. Ändern Sie die listen-Zeile in '/var/run/php/php-fpm.sock '.

listen = /var/run/php/php-fpm.sock

Entkommentieren Sie die Konfiguration, den Eigentümer, die Gruppe und die Berechtigung der Socket-Datei.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Entkommentieren Sie die php-fpm-Umgebungsvariablen in Zeile 366-370.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Speichern Sie die Datei und beenden Sie den Editor.

Jetzt müssen wir ein neues PHP-Sitzungsverzeichnis erstellen und den Besitzer auf den nginx-Benutzer und die Gruppe ändern.

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session/

Erstellen Sie ein neues Verzeichnis für die Socket-Datei und ändern Sie die Berechtigung für den Benutzer und die Gruppe nginx.

mkdir -p /var/run/php/
chown -R nginx:nginx /var/run/php/

Starten Sie als Nächstes PHP7.0-FPM und fügen Sie es hinzu, um beim Booten zu starten.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM wurde gestartet. Jetzt können Sie es mit dem folgenden Befehl überprüfen und Sie sehen die PHP-Socket-Datei.

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 zuerst unzip auf Ihrem System.

yum -y install unzip

Erstellen Sie ein neues Verzeichnis für die Webroot-Dateien von Invoice Ninja.

mkdir -p /var/www/
cd /var/www/

Laden Sie Invoice Ninja mit dem Befehl wget herunter.

wget https://download.invoiceninja.com/ninja-v3.1.0.zip

Extrahieren Sie die ZIP-Datei von Invoice Ninja und gehen Sie zur Datei „ninja ' Verzeichnis.

unzip ninja-v3.1.0.zip
cd ninja/

Für das Laravel-Projekt müssen wir Composer installieren, einen Dependency Manager für PHP.

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

Jetzt können Sie den Composer-Befehl verwenden.

Als nächstes installieren Sie die Invoice Ninja-Abhängigkeiten mit dem Composer-Befehl unten.

composer install --no-dev -o
  • --no-dev: Deaktiviert die Installation von require-dev-Paketen.
  • -o: Optimieren Sie den Autoloader während des Autoloader-Dumps.

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 zu den MySQL-Einstellungen in Zeile 55.

'database'  => env('DB_DATABASE', 'ninjadb'),
'username'  => env('DB_USERNAME', 'ninja'),
'password'  => env('DB_PASSWORD', 'aqwe123'),

Speichern und beenden.

Alle Konfigurationsdateien sind bearbeitet, als nächstes bereiten Sie die Datenbank mit dem folgenden Befehl vor.

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 den Anwendungsschlüssel.

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 generierten Schlüssel ein (der Schlüssel unten ist ein Beispiel, verwenden Sie stattdessen den Schlüssel, den Sie aus dem obigen Befehl erhalten haben).

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),

Speichern und beenden.

Ändern Sie schließlich den Eigentümer des Verzeichnisses „/var/www/ninja“ in den Benutzer und die Gruppe „nginx“.

cd /var/www/
chown -R nginx:nginx ninja/

Invoice Ninja wurde konfiguriert und ist bereit für die Installation.

Schritt 5 – SSL und den virtuellen Host konfigurieren

In diesem Schritt generieren wir eine SSL-Zertifikatsdatei mit dem Befehl openssl und erstellen eine neue virtuelle Hostkonfiguration für Invoice Ninja. Wenn Sie sich auf einem Live-Server befinden, können Sie auch ein kostenloses SSL von Let's Encrypt verwenden.

Erstellen Sie ein neues 'cert'-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.conf '.

cd /etc/nginx/
vim conf.d/ninja.conf

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:/var/run/php/php-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.

Testen Sie nun die Nginx-Konfiguration und stellen Sie sicher, dass keine Fehler vorliegen.

nginx -t

Starten Sie den Nginx-Webserver neu.

systemctl restart nginx

Die Konfiguration des virtuellen Hosts von Invoice Ninja wurde erstellt.

Schritt 6 – Konfigurieren Sie SELinux und Firewalld

Wenn Ihr SELinux ausgeschaltet ist, können Sie diesen Schritt überspringen und mit der Konfiguration von Firewalld beginnen. In diesem Schritt konfigurieren wir SELinux und Firewalld für Invoice Ninja. Überprüfen Sie Ihren SELinux-Status und stellen Sie sicher, dass Firewalld installiert ist.

Überprüfen Sie den SELinux-Status mit dem folgenden Befehl.

getenforce

Wenn Ihr SELinux eingeschaltet ist, sehen Sie die Ergebnisse „Enforcing“ oder „Permissive“.

Installieren Sie nun die SELinux-Verwaltungstools aus dem Repository.

yum -y install policycoreutils-python

Führen Sie die folgenden Befehle aus, damit Invoice Ninja unter SELinux im Enforcing-Modus ausgeführt werden kann.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/tests(/.*)?'
restorecon -Rv '/var/www/ninja/'

Als nächstes müssen wir den Serverport öffnen, damit Invoice Ninja von außen zugänglich ist.

Stellen Sie sicher, dass firewalld auf Ihrem System installiert ist, oder Sie können es mit dem Befehl yum installieren.

yum -y install firewalld

Starten Sie firewalld und aktivieren Sie ihn, damit er zur Bootzeit gestartet wird.

systemctl start firewalld
systemctl enable firewalld

Jetzt müssen wir die HTTP- und HTTPS-Ports für Invoice Ninja öffnen. Führen Sie die folgenden Befehle aus, um die Ports zu öffnen.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

SELinux und Firewalld sind konfiguriert.

Schritt 7 – Testen

Öffnen Sie Ihren Webbrowser und geben Sie die Rechnungs-Ninja-URL ein, in meinem Fall:ninja.co.

Sie werden zu einer https-Verbindung und der Einrichtungsseite weitergeleitet.

Geben Sie die angeforderten Konfigurationsdetails, Anwendungseinstellungen, Datenbankverbindung, E-Mail-Einstellungen, Benutzerdetails ein und überprüfen Sie die Nutzungsbedingungen von Invoice Ninja.

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 wurde mit Nginx und MariaDB auf CentOS 7 installiert.

Referenzen

  • https://calyrium.org/post/install-invoiceninja-archlinux-nginx/
  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx

Cent OS
  1. So installieren und konfigurieren Sie Nginx unter CentOS 7

  2. So installieren Sie Nginx unter CentOS 7

  3. So installieren Sie R unter CentOS 7

  4. So installieren Sie phpMyAdmin mit Nginx unter CentOS 7

  5. So installieren Sie Invoice Ninja unter Debian 9

So installieren Sie Invoice Ninja auf CentOS 7

So installieren Sie Invoice Ninja auf CentOS 8

So installieren Sie Nginx unter CentOS 7

So installieren Sie Invoice Ninja unter Debian 10

Wie installiere ich Nginx unter CentOS 7?

So installieren Sie Nginx unter CentOS 8