Hvordan installere Invoice Ninja på Ubuntu 16.04

Introduksjon

Invoice Ninja er en gratis og åpen kildekode nettbasert applikasjon som kan brukes til fakturering, betalinger, tidsregistrering og mye mer. Det er den beste løsningen for fakturering og fakturering av kunder. Du kan enkelt opprette og sende fakturaer online på sekunder. Invoice Ninja lar deg lage tilpassede fakturaer og vise direkte fakturaer som en PDF-fil.

I denne opplæringen vil jeg forklare hvordan du installerer Invoice Ninja på Ubuntu 16.04-serveren.

Forutsetninger

  • En Ubuntu 16.04-serverforekomst med 2 GB RAM installert.
  • En sudo-bruker med root-privilegier.
  • Du må vite hoved-IP-en til serverforekomsten din. I denne opplæringen vil jeg bruke 192.168.0.227.

Trinn 1: Oppdater systemet

Før du installerer noen pakker på Ubuntu-serverforekomsten, anbefales det å oppdatere systemet. Logg på serveren din via SSH som din sudo-bruker og kjør følgende kommando:

sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now

Trinn 2: Installer LEMP stack

Før du starter, må du konfigurere en LEMP (Nginx, MariaDB og PHP) stack på serveren din.

Installer først Nginx og MariaDB med følgende kommando:

sudo apt-get install nginx mariadb-server -y

Når installasjonen er fullført, start Nginx- og MariaDB-tjenestene og la dem starte ved oppstart:

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql

Deretter trenger du PHP 7 og PHP-FPM for Invoice Ninja-installasjonen.

Du kan installere PHP-FPM og de andre nødvendige PHP-utvidelsene med følgende kommando:

sudo apt-get install php7.0-fpm php7.0-gd php7.0-xml php7.0-mysql php7.0-zip php7.0-curl php7.0-gmp php7.0-mbstring php7.0-mcrypt

Når installasjonen er fullført, må du endre php.inikonfigurasjonsfilen:

sudo nano /etc/php/7.0/fpm/php.ini

Endre følgende linje:

cgi.fix_pathinfo=0

Lagre og lukk filen.

Trinn 3: Konfigurer databasen

Som standard er MariaDB-installasjonen ikke sikret. Du må sikre den. Du kan gjøre dette ved å kjøre mysql_secure_installation script.

sudo mysql_secure_installation

Svar på alle spørsmålene som vist nedenfor:

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

Når alt er gjort, koble til ved hjelp av MySQL-skallet med følgende kommando:

mysql -u root -p

Skriv inn root-passordet ditt og trykk "enter", du vil se MySQL (MariaDB)-skallet.

Opprett en ny database og en ny bruker for Invoice Ninja.

MariaDB [(none)]> CREATE DATABASE ninja_db;
MariaDB [(none)]> GRANT ALL PRIVILEGES ON ninja_db.* TO 'ninja'@'localhost' IDENTIFIED BY 'password';
MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> \q

Trinn 4: Konfigurer PHP-FPM

Konfigurer PHP-FPM-poolen for Nginx-brukeren:

sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf

Legg til følgende linjer:

[www-data]
user = www-data
group = www-data
listen = /var/run/php-fpm-www-data.sock
listen.owner = www-data
listen.group = www-data
listen.mode = 0666
pm = ondemand
pm.max_children = 5
pm.process_idle_timeout = 10s
pm.max_requests = 200
chdir = /

Lagre og lukk filen når du er ferdig, og start PHP-FPM på nytt for å bruke disse endringene.

systemctl restart php7.0-fpm

Trinn 5: Last ned og konfigurer Invoice Ninja

Du kan laste ned den siste stabile versjonen av Invoice Ninja fra GitHub-depotet med følgende kommando:

cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja

Du må også installere Composer, en avhengighetsbehandling for PHP. Du kan installere den med følgende kommando:

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

Deretter installerer du alle Invoice Ninja-avhengighetene ved å bruke composerkommandoen som vist nedenfor:

cd /var/www/html/ninja
sudo composer install --no-dev -o

Når installasjonen er ferdig, gi nytt navn til .envfilen og gjør noen endringer.

sudo mv .env.example .env
sudo nano .env

Endre linjene som vist nedenfor:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

Lagre filen når du er ferdig, og kjør deretter følgende kommando for å klargjøre databasen:

sudo php artisan migrate

Du vil bli bedt om å kjøre kommandoen, skriv "ja" og trykk "enter".

Deretter setter du databasen med poster som vist nedenfor:

sudo php artisan db:seed

Skriv "ja" og trykk "enter".

Deretter endrer du eierskap til /var/www/html/ninjakatalogen:

sudo chown -R www-data:www-data /var/www/html/ninja/

Trinn 6: Konfigurer Nginx for Invoice Ninja

Deretter må du opprette et SSL-sertifikat og opprette en ny virtuell vertskonfigurasjon for Invoice Ninja.

Opprett først en katalog for SSL:

sudo mkdir -p /etc/nginx/cert/

Deretter genererer du et SSL-sertifikat med følgende kommando:

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

Gi riktige tillatelser til sertifikatfilen.

sudo chmod 600 /etc/nginx/cert/*

Opprett en ny konfigurasjonsfil for virtuell vert inne i /etc/nginx/katalogen.

sudo nano /etc/nginx/conf.d/ninja.conf

Legg til følgende linjer:

server {
    listen  80;
    server_name 192.168.0.227;
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    listen  443 default;
    server_name 192.168.0.227;
    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;
    root /var/www/html/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-fpm-www-data.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;
       }
    }

Lagre og lukk filen. Aktiver deretter den virtuelle verten med følgende kommando.

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

Til slutt, start Nginx-webserveren på nytt.

sudo systemctl restart nginx

Trinn 7: Få tilgang til Invoice Ninja

Før du får tilgang til Invoice Ninja-nettgrensesnittet, må du tillate HTTP- og HTTPS-tjenester gjennom UFW-brannmuren. Kjør følgende kommandoer for å åpne disse portene:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp

Til slutt åpner du nettleseren og får tilgang til URL-en https://192.168.0.227. Du kan deretter fullføre de nødvendige trinnene for å fullføre installasjonen.

Gratulerer! Vi har installert Invoice Ninja med Nginx og MariaDB på Ubuntu 16.04-serveren.


Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Bruker du et annet system? Hva er Tekkit Classic? Tekkit Classic er en modpack for spillet alle kjenner og elsker; Minecraft. Den inneholder noe av ver

Opprette en Jekyll-blogg på Ubuntu 16.04

Opprette en Jekyll-blogg på Ubuntu 16.04

Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP og relaterte pakker er de mest brukte komponentene når du distribuerer en webserver. I denne artikkelen vil vi lære hvordan du setter opp PHP 7.0 eller PHP 7.1 o

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Sette opp en Yii-applikasjon på Ubuntu 14.04

Sette opp en Yii-applikasjon på Ubuntu 14.04

Yii er et PHP-rammeverk som lar deg utvikle applikasjoner raskere og enklere. Det er enkelt å installere Yii på Ubuntu, som du vil lære nøyaktig

Sett opp din egen DNS-server på Debian/Ubuntu

Sett opp din egen DNS-server på Debian/Ubuntu

Denne opplæringen forklarer hvordan du setter opp en DNS-server ved å bruke Bind9 på Debian eller Ubuntu. Bytt ut ditt-domenenavn.com gjennom hele artikkelen. På th

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Sett opp Red5 Media Server på Ubuntu 16.04

Sett opp Red5 Media Server på Ubuntu 16.04

Bruker du et annet system? Red5 er en åpen kildekode medieserver implementert i Java som lar deg kjøre Flash flerbrukerapplikasjoner som live streamin

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

I denne artikkelen vil vi se hvordan du kompilerer og installerer Nginx mainline fra de offisielle kildene til Nginx med PageSpeed-modulen, som lar deg t

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Hvordan installere Vanilla Forum på Ubuntu 16.04

Hvordan installere Vanilla Forum på Ubuntu 16.04

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Kanboard på Debian 9

Hvordan installere Kanboard på Debian 9

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Gitea på Debian 9

Hvordan installere Gitea på Debian 9

Bruker du et annet system? Gitea er et alternativt åpen kildekode, selvdrevet versjonskontrollsystem drevet av Git. Gitea er skrevet på Golang og er

Hvordan installere Gitea på Ubuntu 18.04

Hvordan installere Gitea på Ubuntu 18.04

Bruker du et annet system? Gitea er et alternativt, selvdrevet versjonskontrollsystem med åpen kildekode drevet av git. Gitea er skrevet på Golang og er

Hvordan installere Thelia 2.3 på Debian 9

Hvordan installere Thelia 2.3 på Debian 9

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer