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-php70wPo dokončení instalace upravte konfigurační soubor php.ini pomocí vim.
vim /etc/php.iniOdkomentujte řádek cgi.fix_pathinfo níže a změňte hodnotu na 0.
cgi.fix_pathinfo=0Uložte soubor a ukončete vim.
Poté upravte konfigurační soubor PHP-FPM.
vim /etc/php-fpm.d/www.confZměňte uživatele a skupinu na řádku 8 a 10 na 'nginx ' skupina.
user =nginx
skupina =nginxMí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.sockOdkomentujte konfiguraci souboru soketu, vlastníka, skupinu a oprávnění.
listen.owner =nginx
listen.group =nginx
listen.mode =0660Odkomentujte 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] =/tmpUlož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 -plJsou 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 unzipVytvoř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.zipRozbalte 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