Si të instaloni Ninja faturë në Ubuntu 16.04


Invoice Ninja është një softuer me burim të hapur i bazuar në ueb për faturimin, pagesat, gjurmimin e kohës dhe shumë më tepër. Mund të krijoni Fatura në internet në sekonda, të ndërveproni me portat e pagesave si Stripe, PayPal, WePay dhe të tjera. Fatura Ninja mund t'ju tregojë një pamje paraprake të faturës drejtpërdrejt në formatin PDF. Mund ta ndryshoni vetë logon e kompanisë në shabllone lehtësisht. Invoice Ninja është i bazuar në PHP, i ndërtuar me Kornizën Laravel dhe mund të instalohet në Linux dhe Windows.

Në këtë tutorial, unë do t'ju tregoj se si të instaloni Invoice Ninja në Ubuntu 16.04. Unë do të përdor Nginx si server në internet dhe MariaDB si sistem të bazës së të dhënave.

Kusht paraprak

  • Serveri Ubuntu 16.04.
  • Privilegjet e rrënjës.

Hapi 1 - Instaloni Nginx

Në këtë hap, ne do të instalojmë serverin në internet Nginx. Lidhuni me serverin tuaj me llogarinë tuaj ssh root (ose identifikohuni me një përdorues tjetër dhe përdorni sudo -s për t'u bërë root) dhe përditësoni depon.

ssh 
apt-get update

Instaloni Nginx me komandën apt më poshtë:

apt-get install -y nginx

Kur instalimi i nginx të ketë mbaruar, nisni Nginx dhe shtoni atë për të filluar në kohën e nisjes.

systemctl start nginx
systemctl enable nginx

Sigurohuni që nginx të funksionojë. Kontrolloni portin e përdorur nga nginx, porti i parazgjedhur i serverit në ueb është 80.

netstat -plntu

Hapi 2 - Instaloni dhe konfiguroni serverin MariaDB

Pas instalimit të Nginx, ne duhet të instalojmë serverin mariadb të paketës në sistem. Është në dispozicion në depon e Ubuntu. Instaloni serverin mariadb dhe varësitë e tij me komandën e mëposhtme.

apt-get install -y mariadb-server

Kur instalimi të ketë mbaruar, filloni shërbimin mariadb dhe aktivizoni që të fillojë në kohën e nisjes me këto komanda systemctl.

systemctl restart mysql
systemctl enable mysql

MariaDB është nisur, tani mund të vendosni fjalëkalimin rrënjë për mariadb me komandën më poshtë.

mysql_secure_installation

Vendosni fjalëkalimin tuaj të ri të MariaDB root.

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

Më pas, përpiquni të lidheni me shell-in mysql si përdorues rrënjë.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

Ju do të shihni MySQL shell kur gjithçka funksionoi si duhet.

Tani duhet të krijojmë një bazë të dhënash të re dhe një përdorues të ri për Invoice Ninja. Do të krijoj një bazë të dhënash të re me emrin ninjadb, një përdorues të ri ninja me fjalëkalim aqwe123. Ju lutemi zgjidhni një fjalëkalim të ndryshëm dhe të sigurt për instalimin tuaj!

Krijoni ato me pyetjen mysql më poshtë. Krijoni një bazë të dhënash të re, krijoni përdorues dhe fjalëkalim të ri, jepni bazën e të dhënave përdoruesit të ri me një fjalëkalim.

create database ninjadb;
create user identified by 'aqwe123';
flush privileges;

MariaDB është instaluar dhe është krijuar një bazë të dhënash dhe përdorues i ri për Invoice Ninja.

Hapi 3 - Instaloni dhe konfiguroni PHP7.0-FPM

Fatura Ninja bazohet në PHP, kështu që ne duhet të instalojmë PHP në sistem. Ne do të përdorim PHP7.0-FPM për këtë instalim Invoice Ninja.

Instaloni PHP7.0-FPM dhe shtesa të tjera PHP të nevojshme nga Invoice Ninja me komandën më poshtë.

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

Pas instalimit, shkoni te drejtoria e konfigurimit PHP dhe modifikoni skedarin php.ini.

cd /etc/php/7.0/
vim fpm/php.ini

Zhkomentoni linjën CGI më poshtë dhe ndryshoni vlerën në 0.

cgi.fix_pathinfo=0

Ruaje dhe dil.

Redaktoni skedarin php.ini në drejtorinë cli.

vim cli/php.ini

Zhkomentoni linjën CGI më poshtë dhe ndryshoni vlerën në 0.

cgi.fix_pathinfo=0

Ruaje dhe dil.

Më pas, nisni PHP7.0-FPM dhe aktivizoni atë të fillojë në kohën e nisjes.

systemctl restart php7.0-fpm
systemctl enable php7.0-fpm

Si parazgjedhje, PHP7.0-FPM funksionon me një skedar fole, kontrollojeni atë me komandën më poshtë dhe do të shihni skedarin e folesë PHP siç tregohet në pamjen e ekranit.

netstat -pl

PHP7.0-FPM dhe të gjitha shtesat e nevojshme nga Invoice Ninja janë instaluar.

Hapi 4 - Instaloni dhe konfiguroni Faturën Ninja

Në këtë hap, ne do të shkarkojmë dhe konfigurojmë Invoice Ninja. Së pari, instaloni unzip në sistemin tuaj.

apt-get install -y unzip

Shkoni te drejtoria /var/www dhe shkarkoni kodin burimor të Invoice Ninja me komandën wget.

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

Ekstraktoni skedarin zip të Faturës Ninja dhe shkoni te drejtoria ninja.

unzip ninja-v3.1.0.zip
cd ninja/

Për projektin Laravel, ne duhet të instalojmë menaxherin e varësisë së kompozitorit për PHP. Ai është i disponueshëm në depon e Ubuntu, kështu që ne mund ta instalojmë atë me komandën apt.

apt-get install -y composer

Më tej, instaloni varësitë e Ninjas së Faturës me komandën e kompozitorit më poshtë.

composer install --no-dev -o

  • --no-dev : Çaktivizon instalimin e paketave të kërkesave-dev
  • -o : Optimizo ngarkuesin automatik gjatë shkarkimit të ngarkuesit automatik

Kur të përfundojë instalimi i varësisë, kopjoni skedarin .env dhe modifikoni me vim.

cp .env.example .env
vim .env

Ndryshoni vlerën e cilësimeve të bazës së të dhënave më poshtë.

DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123

Ruaje dhe dil.

Më pas, modifikoni konfigurimin e bazës së të dhënave në drejtorinë e konfigurimit.

vim config/database.php

Ne po përdorim bazën e të dhënave MariaDB/MySQL, shkoni te rreshti 55 MySQL.

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

Zëvendësoni fjalëkalimin me atë që keni vendosur për përdoruesin ninja!

Ruaje dhe dil.

Të gjithë skedarët e konfigurimit janë redaktuar. Tjetra, migroni bazën e të dhënave me komandën më poshtë.

php artisan migrate

Do t'ju kërkohet të ekzekutoni komandën, shkruani po dhe shtypni Enter.

Më pas, vendosni bazën e të dhënave me të gjitha të dhënat.

php artisan db:seed

Shkruani po dhe shtypni Enter për të konfirmuar.

Gjeneroni një çelës të ri aplikacioni për projektin Laravel Invoice Ninja.

php artisan key:generate

Do të shihni çelësin e aplikacionit.

Redaktoni skedarin app.php me vim.

vim config/app.php

Shkoni te rreshti APP_KEY 85 dhe ngjitni çelësin që kemi krijuar.

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

Ruaje dhe dil.

Së fundi, ndryshoni zotëruesin e drejtorisë /var/www/ninja në përdorues dhe grup www-data.

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

Fatura Ninja është konfiguruar dhe gati për instalim.

Hapi 5 - Konfiguro SSL dhe Virtual Host

Në këtë hap, ne do të gjenerojmë një skedar të certifikatës SSL me komandën OpenSSL dhe do të krijojmë konfigurimin e ri të hostit virtual për Invoice Ninja. Nëse je në një server të drejtpërdrejtë, mund të përdorësh një SSL falas nga Lets Encrypt në vend që të gjenerosh një certifikatë SSL të vetë-nënshkruar me OpenSSL.

Krijo një drejtori të re cert për skedarët SSL.

mkdir -p /etc/nginx/cert/

Drejtoni komandën openssl më poshtë për të gjeneruar skedarët e certifikatës.

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

Ndryshoni lejen e skedarëve të certifikatës në 600.

chmod 600 /etc/nginx/cert/*

Më pas, shkoni te drejtoria Nginx dhe krijoni një skedar të ri të konfigurimit të hostit virtual të quajtur ninja.

cd /etc/nginx/
vim sites-available/ninja

Ngjitni konfigurimin e hostit virtual më poshtë.

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;
    }
}

Ruaje dhe dil.

Aktivizo hostin virtual ninja dhe testo konfigurimin Nginx, sigurohu që të mos ketë gabim.

ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
nginx -t

Tani rinisni ueb serverin nginx.

systemctl restart nginx

Konfigurimi i hostit virtual të Invoice Ninja ka përfunduar.

Hapi 6 - Përfundimi i instalimit dhe testimit

Hapni shfletuesin tuaj të internetit dhe shkruani URL-në e Ninjas së Faturës: ninja.co. Do të ridrejtoheni te faqja e lidhjes dhe konfigurimit https.

Shkruani Cilësimet e aplikacionit, Lidhja e bazës së të dhënave, Cilësimet e postës elektronike, Detajet e përdoruesit dhe kontrolloni TOS-in e faturës Ninja.

Kliko Dorëzo dhe do të ridrejtohesh në faqen e hyrjes së Invoice Ninja.

Shkruani emailin dhe fjalëkalimin tuaj, më pas shtypni LOGIN.

Do të shihni Panelin e Faturës Ninja.

Faqja e cilësimeve të Ninja të faturës.

Fatura Ninja e instaluar me Nginx dhe MariaDB në Ubuntu 16.04.

Referenca

  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx