Invoice Ninja je webový open source software pro fakturaci, platby, sledování času a mnoho dalšího. Můžete vytvářet faktury online během několika sekund, komunikovat s platebními bránami, jako je Stripe, PayPal, WePay a další. Faktura Ninja vám může ukázat živý náhled faktury ve formátu PDF. Logo společnosti v šablonách můžete snadno změnit sami. Invoice Ninja je založen na PHP, postavený s Laravel Framework a lze jej nainstalovat na Linux a Windows.
V tomto tutoriálu vám ukážu, jak nainstalovat Invoice Ninja na Ubuntu 16.04. Jako webový server použiji Nginx a jako databázový systém MariaDB.
Předpoklad
- Server Ubuntu 16.04.
- 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í svého ssh root účtu (nebo se přihlaste s jiným uživatelem a použijte 'sudo -s', abyste se stali rootem) a aktualizujte úložiště.
ssh [email protected]
apt-get update
Nainstalujte Nginx pomocí příkazu apt níže:
apt-get install -y nginx
Po dokončení instalace nginx spusťte Nginx a přidejte jej, aby se spustil při spouštění.
systemctl start nginx
systemctl enable nginx
Ujistěte se, že nginx běží. Zkontrolujte port používaný nginx, výchozí port webového serveru je 80.
netstat -plntu
Krok 2 – Instalace a konfigurace serveru MariaDB
Po instalaci Nginx musíme do systému nainstalovat balíček mariadb-server. Je k dispozici v úložišti Ubuntu. Nainstalujte mariadb-server a jeho závislosti pomocí příkazu níže.
apt-get install -y mariadb-server
Po dokončení instalace spusťte službu mariadb a povolte její spuštění při spouštění pomocí těchto příkazů systemctl.
systemctl restart mysql
systemctl enable mysql
MariaDB je spuštěna, nyní můžete nastavit root heslo pro mariadb pomocí příkazu níže.
mysql_secure_installation
Nastavte své nové root heslo MariaDB.
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
Dále se zkuste připojit k mysql shell jako uživatel root.
mysql -u root -p
TYPE YOUR ROOT PASSWORD
Když vše fungovalo správně, uvidíte MySQL shell.
Nyní potřebujeme vytvořit novou databázi a nového uživatele pro Invoice Ninja. Vytvořím novou databázi s názvem 'ninjadb ', nový uživatel 'ninja ' s heslem 'aqwe123 '. Zvolte prosím jiné a bezpečné heslo pro vaši instalaci!
Vytvořte je pomocí níže uvedeného dotazu mysql. Vytvořte novou databázi, vytvořte nového uživatele a heslo, udělte databázi novému uživateli s heslem.
create database ninjadb;
create user [email protected] identified by 'aqwe123';
grant all privileges on ninjadb.* to [email protected] identified by 'aqwe123';
flush privileges;
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 musíme do systému nainstalovat PHP. Pro tuto instalaci Invoice Ninja použijeme PHP7.0-FPM.
Nainstalujte PHP7.0-FPM a další rozšíření PHP potřebná pro Invoice Ninja pomocí příkazu níže.
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
Po instalaci přejděte do konfiguračního adresáře PHP a upravte soubor php.ini.
cd /etc/php/7.0/
vim fpm/php.ini
Odkomentujte řádek CGI níže a změňte hodnotu na 0.
cgi.fix_pathinfo=0
Uložte a ukončete.
Upravte soubor php.ini v adresáři cli.
vim cli/php.ini
Odkomentujte řádek CGI níže a změňte hodnotu na 0.
cgi.fix_pathinfo=0
Uložte a ukončete.
Dále spusťte PHP7.0-FPM a povolte jeho spuštění při bootování.
systemctl restart php7.0-fpm
systemctl enable php7.0-fpm
Ve výchozím nastavení běží PHP7.0-FPM se souborem soketu, zkontrolujte jej pomocí příkazu níže a uvidíte soubor soketu PHP, jak je znázorněno na snímku obrazovky.
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.
apt-get install -y unzip
Přejděte na '/var/www' adresář a stáhněte si zdrojový kód Invoice Ninja pomocí příkazu wget.
cd /var/www/
wget https://download.invoiceninja.com/ninja-v3.1.0.zip
Rozbalte soubor zip Invoice Ninja a přejděte do adresáře 'ninja'.
unzip ninja-v3.1.0.zip
cd ninja/
Pro projekt Laravel potřebujeme nainstalovat správce závislostí skladatele pro PHP. Je k dispozici v úložišti Ubuntu, takže jej můžeme nainstalovat pomocí příkazu apt.
apt-get install -y composer
Dále nainstalujte závislosti Invoice Ninja pomocí příkazu skladatel níže.
composer install --no-dev -o
- --no-dev :Zakáže instalaci balíčků require-dev
- -o :Optimalizace automatického zavádění 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
Níže změňte hodnotu nastavení databáze.
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 na řádek MySQL 55.
'database' => env('DB_DATABASE', 'ninjadb'),
'username' => env('DB_USERNAME', 'ninja'),
'password' => env('DB_PASSWORD', 'aqwe123'),
Nahraďte heslo heslem, které jste nastavili pro uživatele ninja!
Uložte a ukončete.
Všechny konfigurační soubory jsou upraveny. Dále proveďte migraci databáze pomocí příkazu níže.
php artisan migrate
Budete požádáni o spuštění příkazu, zadejte 'yes a stiskněte Enter.
Dále nasaďte databázi všemi záznamy.
php artisan db:seed
Zadejte „ano a stiskněte Enter pro potvrzení.
Vygenerujte nový klíč aplikace pro projekt Laravel Invoice Ninja.
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 klíč, který jsme vygenerovali.
'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),
Uložte a ukončete.
Nakonec změňte vlastníka '/var/www/ninja ' do adresáře 'www-data ' uživatel a skupina.
cd /var/www/
chown -R www-data:www-data ninja/
Faktura Ninja je nakonfigurována a 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 místo generování certifikátu SSL s vlastním podpisem pomocí OpenSSL použít bezplatné SSL od Let's Encrypt.
Vytvořte nový 'certifikát ' adresář 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 '.
cd /etc/nginx/
vim sites-available/ninja
Níže vložte konfiguraci virtuálního hostitele.
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;
}
}
Uložte a ukončete.
Povolte virtuálního hostitele ninja a otestujte konfiguraci Nginx, ujistěte se, že nedošlo k chybě.
ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
nginx -t
Nyní restartujte webový server nginx.
systemctl restart nginx
Konfigurace virtuálního hostitele Invoice Ninja je dokončena.
Krok 6 – Dokončení instalace a testování
Otevřete webový prohlížeč a zadejte adresu URL faktury ninja:ninja.co. Budete přesměrováni na stránku připojení https a nastavení.
Zadejte Nastavení aplikace, Připojení k databázi, Nastavení e-mailu, Podrobnosti uživatele a zkontrolujte TOS fakturačního ninja.
Klikněte na tlačítko 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.
Faktura Ninja nainstalovaná s Nginx a MariaDB na Ubuntu 16.04.