GNU/Linux >> Znalost Linux >  >> Cent OS

Jak nainstalovat Invoice Ninja na CentOS 7

Invoice Ninja je bezplatný a open source webový software pro fakturaci, platby, sledování času a mnoho dalšího. Můžete vytvářet faktury online během několika sekund, integrovat je s platebními bránami, jako je stripe, PayPal a WePay. Faktura Ninja vám může zobrazit aktuální fakturu jako soubor PDF, můžete si nastavit vlastní logo společnosti a používat vlastní šablony faktur. Invoice Ninja je založen na PHP, postavený s Laravel Framework a lze jej nainstalovat na Linux, Windows a Mac.

V tomto tutoriálu vám ukážu, jak nainstalovat a nakonfigurovat Invoice Ninja na serveru CentOS 7. Jako webový server použiji Nginx a jako databázový systém MariaDB.

Předpoklad

  • Server CentOS 7
  • Oprávnění uživatele root

Krok 1 – Instalace Nginx

V tomto kroku nainstalujeme webový server Nginx. Připojte se ke svému serveru pomocí účtu ssh rot.

ssh [e-mail chráněný]

Před instalací Nginx musíte do systému CentOS nainstalovat úložiště Epel.

yum -y install epel-release

Nyní můžete nainstalovat Nginx pomocí příkazu yum níže z úložiště epel:

yum -y nainstalujte nginx

Po dokončení instalace spusťte Nginx a povolte jeho spuštění při spouštění.

systemctl spustit nginx
systemctl povolit nginx

Ujistěte se, že Nginx běží kontrolou portu používaného Nginx (port 80).

netstat -plntu

Poznámka:

Pokud příkaz netstat nebyl nalezen, můžete nainstalovat net-tools takto:

yum -y install net-tools

Krok 2 – Instalace a konfigurace serveru MariaDB

Po instalaci Nginx musíme do systému nainstalovat mariadb-server. Je k dispozici v úložišti CentOS. Nainstalujte mariadb-server a všechny balíčky potřebné pro MariaDB pomocí příkazu níže.

yum install -y mariadb-server

Spusťte službu mariadb a povolte její spuštění při spouštění pomocí příkazu systemctl.

systemctl spustit mariadb
systemctl povolit mariadb

MariaDB je spuštěna, nyní můžete nastavit heslo uživatele root pro MariaDB pomocí příkazu 'mysql_secure_installation'.

mysql_secure_installation

Nastavte své root heslo MariaDB.

Nastavit heslo root? [A/n] A
Nové heslo:
Znovu zadejte nové heslo:

Odebrat anonymní uživatele? [A/n] A
Zakázat vzdálené přihlášení root? [A/N] A
Odebrat testovací databázi a získat k ní přístup? [A/n] A
Načíst nyní tabulky oprávnění? [A/n] A

Pokud je vše hotovo, můžete se pokusit připojit k shellu MySQL a uživateli root.

mysql -u root -p
ZADEJTE SVÉ HESLO ROOT

Uvidíte prostředí MySQL.

Dále musíme vytvořit novou databázi a nového uživatele pro Invoice Ninja v prostředí MySQL, které jsme otevřeli. Vytvoříme novou databázi s názvem 'ninjadb ', nový uživatel 'ninja ' s heslem 'aqwe123 '. Zvolte prosím jiné bezpečné heslo pro vaši instalaci.

Vše vytvořte pomocí níže uvedených dotazů MySQL:vytvořte novou databázi, vytvořte nového uživatele a heslo, udělte přístup k databázi novému uživateli pomocí hesla.

vytvořit databázi ninjadb;
vytvořit uživatele [chráněno e-mailem] identifikovaným 'aqwe123';
udělit všechna oprávnění ninjadb.* uživateli [chráněno e-mailem] identifikovaným 'aqwe123';
vyprázdnit privilegia;

MariaDB byla nainstalována a byla vytvořena nová databáze a uživatel pro Invoice Ninja.

Krok 3 – Instalace a konfigurace PHP7.0-FPM

Faktura Ninja je založena na PHP, takže ji musíme nainstalovat do systému. Pro instalaci Invoice Ninja použiji PHP7.0-FPM.

Ve výchozím úložišti CentOS není žádné PHP7.0, takže musíme do systému přidat nové úložiště PHP7.0. Budu používat webtatic repository.

Přidejte do systému úložiště PHP7.0.

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

Nyní můžete nainstalovat PHP7.0-FPM a další rozšíření PHP potřebná pro Invoice Ninja z webového úložiště.

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

Po dokončení instalace upravte konfigurační soubor php.ini pomocí vim.

vim /etc/php.ini

Odkomentujte řádek cgi.fix_pathinfo níže a změňte hodnotu na 0.

cgi.fix_pathinfo=0

Uložte soubor a ukončete vim.

Poté upravte konfigurační soubor PHP-FPM.

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

Změňte uživatele a skupinu na řádku 8 a 10 na 'nginx ' skupina.

user =nginx
skupina =nginx

Místo portu použijeme soubor soketu pro php-fpm. Změňte řádek poslechu na „/var/run/php/php-fpm.sock '.

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

Odkomentujte konfiguraci souboru soketu, vlastníka, skupinu a oprávnění.

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

Odkomentujte proměnné prostředí php-fpm na řádku 366-370.

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

Uložte soubor a ukončete editor.

Nyní musíme vytvořit nový adresář PHP session a změnit vlastníka na uživatele a skupinu nginx.

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

Vytvořte nový adresář pro soubor soketu a změňte oprávnění pro uživatele a skupinu nginx.

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

Dále spusťte PHP7.0-FPM a přidejte jej, aby se spustil při bootování.

systemctl spustit php-fpm
systemctl povolit php-fpm

PHP-FPM bylo spuštěno. Nyní to můžete zkontrolovat pomocí příkazu níže a uvidíte soubor soketu PHP.

netstat -pl

Jsou nainstalovány PHP7.0-FPM a všechna rozšíření potřebná pro Invoice Ninja.

Krok 4 – Instalace a konfigurace Invoice Ninja

V tomto kroku si stáhneme a nakonfigurujeme Invoice Ninja. Nejprve nainstalujte unzip do vašeho systému.

yum -y install unzip

Vytvořte nový adresář pro soubory webroot Invoice Ninja.

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

Stáhněte si Invoice Ninja pomocí příkazu wget.

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

Rozbalte soubor zip Invoice Ninja a přejděte na 'ninja ' adresář.

rozbalte ninja-v3.1.0.zip
cd ninja/

Pro projekt Laravel potřebujeme nainstalovat skladatel, Správce závislostí pro PHP.

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

Nyní můžete použít příkaz skladatel.

Dále nainstalujte závislosti Invoice Ninja pomocí příkazu skladatele níže.

instalace skladatele --no-dev -o
  • --no-dev: Zakáže instalaci balíčků require-dev.
  • -o: Optimalizujte autoloader během automatického vypisování.

Po dokončení instalace závislosti zkopírujte soubor .env a upravte jej pomocí vim.

cp .env.example .env
vim .env

Změňte hodnotu nastavení databáze níže.

DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123

Uložte a ukončete.

Dále upravte konfiguraci databáze v adresáři config.

vim config/database.php

Používáme databázi MariaDB/MySQL, přejděte do nastavení MySQL na řádku 55.

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

Uložte a ukončete.

Všechny konfigurační soubory jsou upraveny, dále připravte databázi pomocí příkazu níže.

php artisan migrovat

Budete požádáni o spuštění příkazu, napište 'yes' a stiskněte Enter.

Dále nasaďte databázi všemi záznamy.

php artisan db:seed

Napište „ano“ a potvrďte stisknutím klávesy Enter.

Vygenerujte klíč aplikace.

php artisan key:generate

Uvidíte aplikační klíč.

Upravte soubor app.php pomocí vim.

vim config/app.php

Přejděte na řádek APP_KEY 85 a vložte vygenerovaný klíč (klíč níže je příklad, místo toho použijte klíč, který jste získali z příkazu výše).

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

Uložte a ukončete.

Nakonec změňte vlastníka adresáře '/var/www/ninja' na uživatele a skupinu 'nginx'.

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

Faktura Ninja byla nakonfigurována a je připravena k instalaci.

Krok 5 – Konfigurace SSL a virtuálního hostitele

V tomto kroku vygenerujeme soubor certifikátu SSL pomocí příkazu openssl a vytvoříme novou konfiguraci virtuálního hostitele pro Invoice Ninja. Pokud jste na živém serveru, můžete také použít bezplatné SSL od Let's Encrypt.

Vytvořte nový adresář 'cert' pro soubory SSL.

mkdir -p /etc/nginx/cert/

Spusťte níže uvedený příkaz OpenSSL a vygenerujte soubory certifikátu.

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

Změňte oprávnění souborů certifikátu na '600'.

chmod 600 /etc/nginx/cert/*

Dále přejděte do adresáře Nginx a vytvořte nový konfigurační soubor virtuálního hostitele s názvem 'ninja.conf '.

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

Níže vložte konfiguraci virtuálního hostitele.

server {
    # Název vaší domény – hakase-labs.co
    listen      80;
    název_serveru ninja.co www.ninja.co;

    # Přepište přesměrovat na https
    add_header Strict-Transport-Security max-age=2592000;
    přepsat ^ https://$server_name$request_uri? trvalé;
}

server {
    # Název vaší domény – hakase-labs.co
    poslouchejte      443 výchozí;
    název_serveru ninja.co www.ninja .co;

    # Povolit SSL pro fakturačního ninju
    ssl on;
    ssl_certificate     /etc/nginx/cert/ninja.crt;
    ssl_certificate_key/etc/ng cert/ninja.key;
    ssl_session_timeout 5 m;

    ssl_ciphers               'AES128+EECDH:AES128+EDH:!aNULL';
  2. 
    sl. TLS 2 />    ssl_prefer_server_ciphers on;

    # Invoice Ninja web root files
    root /var/www/ninja/public;

    index index.html index.htm index. php;

    znaková sada utf-8;

    umístění / {
        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; }

    # Přístup a protokol chyb pro fakturačního ninju
    access_log  /var/log/nginx/ininja.access.log;
    error_log   /var/log/nginx/ininja.error .log;

    sendfile off;

    # Zpracování aplikací PHP
    umístění ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php) (/.+)$;
        fastcgi_pass unix:/var/run/php/php-fpm.sock;
        fastcgi_index index.php;
        zahrnout fastcgi_params;
         fastcgi_params;
         fastcgiPT document_root$fastcgi_script_name;
        fastcgi_intercept_errors off;
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
  h.
   
   
   
   
   
zakázat vše;
    }
}

Uložte a ukončete.

Nyní otestujte konfiguraci Nginx a ujistěte se, že zde nejsou žádné chyby.

nginx -t

Restartujte webový server Nginx.

systemctl restart nginx

Konfigurace virtuálního hostitele Invoice Ninja byla vytvořena.

Krok 6 – Konfigurace SELinux a Firewallu

Pokud je váš SELinux vypnutý, můžete tento krok přeskočit a začít konfigurovat Firewalld. V tomto kroku nakonfigurujeme SELinux a Firewalld pro Invoice Ninja. Zkontrolujte svůj stav SELinux a ujistěte se, že je nainstalován firewall.

Zkontrolujte stav SELinux pomocí příkazu níže.

getenforce

Pokud je váš SELinux zapnutý, uvidíte výsledky 'Enforcing' nebo 'Permissive'.

Nyní nainstalujte nástroje pro správu SELinux z úložiště.

yum -y install policycoreutils-python

A proveďte níže uvedené příkazy, abyste umožnili Invoice Ninja spuštěný pod SELinux v režimu vynucování.

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/'

Dále musíme otevřít port serveru, aby bylo možné přistupovat k Invoice Ninja zvenčí.

Ujistěte se, že je ve vašem systému nainstalován firewalld, nebo jej můžete nainstalovat pomocí příkazu yum.

yum -y install firewalld

Spusťte firewalld a povolte jeho spuštění při spouštění.

systemctl spustit firewalld
systemctl povolit firewalld

Nyní musíme otevřít porty HTTP a HTTPS pro Invoice Ninja. Spuštěním níže uvedených příkazů otevřete porty.

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

SELinux a Firewalld jsou nakonfigurovány.

Krok 7 – Testování

Otevřete webový prohlížeč a zadejte adresu URL faktury Ninja, v mém případě:ninja.co.

Budete přesměrováni na připojení https a stránku nastavení.

Zadejte požadované konfigurační podrobnosti, Nastavení aplikace, Připojení k databázi, Nastavení e-mailu, Podrobnosti o uživateli a zkontrolujte TOS faktury.

Klikněte na 'Odeslat “ a budete přesměrováni na přihlašovací stránku Invoice Ninja.

Zadejte svůj e-mail a heslo a stiskněte tlačítko PŘIHLÁSIT '.

Zobrazí se panel Invoice Ninja Dashboard.

Stránka nastavení fakturačního ninji.

Invoice Ninja byl nainstalován s Nginx a MariaDB na CentOS 7.

Odkazy

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

Cent OS
  1. Jak nainstalovat a nakonfigurovat Nginx na CentOS 7

  2. Jak nainstalovat Nginx na CentOS 7

  3. Jak nainstalovat Invoice Ninja na Debian 9

  1. Jak nainstalovat R na CentOS 7

  2. Jak nainstalovat phpMyAdmin s Nginx na CentOS 7

  3. Jak nainstalovat Nginx na CentOS 8

  1. Jak nainstalovat R na CentOS 8

  2. Jak nainstalovat Magento 2.1 na CentOS 7

  3. Jak nainstalovat SuiteCRM s Nginx na CentOS 7