Hur man installerar Invoice Ninja på Ubuntu 16.04

Introduktion

Invoice Ninja är en gratis och öppen källkod webbaserad applikation som kan användas för fakturering, betalningar, tidsspårning och mycket mer. Det är den bästa lösningen för fakturering och fakturering av kunder. Du kan enkelt skapa och skicka fakturor online på några sekunder. Invoice Ninja låter dig skapa anpassade fakturor och visa levande fakturor som en PDF-fil.

I den här handledningen kommer jag att förklara hur man installerar Invoice Ninja på Ubuntu 16.04-servern.

Förutsättningar

  • En Ubuntu 16.04-serverinstans med 2 GB RAM installerat.
  • En sudo-användare med root-privilegier.
  • Du måste känna till den huvudsakliga IP-adressen för din serverinstans. I den här handledningen kommer jag att använda 192.168.0.227.

Steg 1: Uppdatera systemet

Innan du installerar några paket på Ubuntu-serverinstansen, rekommenderas det att du uppdaterar systemet. Logga in på din server via SSH som din sudo-användare och kör följande kommando:

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

Steg 2: Installera LEMP stack

Innan du börjar måste du konfigurera en LEMP (Nginx, MariaDB och PHP) stack på din server.

Installera först Nginx och MariaDB med följande kommando:

sudo apt-get install nginx mariadb-server -y

När installationen är klar, starta Nginx- och MariaDB-tjänsterna och låt dem starta vid uppstart:

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

Därefter behöver du PHP 7 och PHP-FPM för installationen av Invoice Ninja.

Du kan installera PHP-FPM och de andra nödvändiga PHP-tilläggen med följande 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 installationen är klar måste du ändra php.inikonfigurationsfilen:

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

Ändra följande rad:

cgi.fix_pathinfo=0

Spara och stäng filen.

Steg 3: Konfigurera databasen

Som standard har MariaDB-installationen inte säkrats. Du måste säkra den. Du kan göra detta genom att köra mysql_secure_installation script.

sudo mysql_secure_installation

Svara på alla frågorna enligt nedan:

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 allt är klart, anslut med MySQL-skalet med följande kommando:

mysql -u root -p

Ange ditt root-lösenord och tryck på "enter", du kommer att se MySQL (MariaDB)-skalet.

Skapa en ny databas och en ny användare för 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

Steg 4: Konfigurera PHP-FPM

Konfigurera PHP-FPM-poolen för Nginx-användaren:

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

Lägg till följande rader:

[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 = /

Spara och stäng filen när du är klar, starta sedan om PHP-FPM för att tillämpa dessa ändringar.

systemctl restart php7.0-fpm

Steg 5: Ladda ner och konfigurera Invoice Ninja

Du kan ladda ner den senaste stabila versionen av Invoice Ninja från GitHub-förvaret med följande kommando:

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

Du måste också installera Composer, en beroendehanterare för PHP. Du kan installera det med följande kommando:

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

Installera sedan alla Invoice Ninja-beroenden med composerkommandot som visas nedan:

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

När installationen är klar, byt namn på .envfilen och gör några ändringar.

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

Ändra linjerna enligt nedan:

DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password

Spara filen när du är klar och kör sedan följande kommando för att förbereda databasen:

sudo php artisan migrate

Du kommer att bli ombedd att köra kommandot, skriv "ja" och tryck på "enter".

Se sedan databasen med poster enligt nedan:

sudo php artisan db:seed

Skriv "ja" och tryck på "enter".

Ändra sedan ägaren till /var/www/html/ninjakatalogen:

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

Steg 6: Konfigurera Nginx för Invoice Ninja

Därefter måste du skapa ett SSL-certifikat och skapa en ny virtuell värdkonfiguration för Invoice Ninja.

Skapa först en katalog för SSL:

sudo mkdir -p /etc/nginx/cert/

Skapa sedan ett SSL-certifikat med följande kommando:

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

Ge korrekta behörigheter till certifikatfilen.

sudo chmod 600 /etc/nginx/cert/*

Skapa en ny virtuell värdkonfigurationsfil inuti /etc/nginx/katalogen.

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

Lägg till följande rader:

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

Spara och stäng filen. Aktivera sedan den virtuella värden med följande kommando.

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

Slutligen, starta om Nginx-webbservern.

sudo systemctl restart nginx

Steg 7: Få tillgång till fakturaninja

Innan du kommer åt Invoice Ninjas webbgränssnitt måste du tillåta HTTP- och HTTPS-tjänster via UFW-brandväggen. Kör följande kommandon för att öppna dessa portar:

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

Öppna slutligen din webbläsare och öppna webbadressen https://192.168.0.227. Du kan sedan slutföra de nödvändiga stegen för att slutföra installationen.

Grattis! Vi har framgångsrikt installerat Invoice Ninja med Nginx och MariaDB på Ubuntu 16.04-servern.


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Installera Cacti på Debian Jessie

Installera Cacti på Debian Jessie

Introduktion Cacti är ett övervaknings- och grafverktyg med öppen källkod som är helt baserat på RRD-data. Genom Cacti kan du övervaka nästan vilken typ av enhet som helst

Installera Lets Encrypt SSL på One-Click WordPress-appen

Installera Lets Encrypt SSL på One-Click WordPress-appen

Introduktion Lets Encrypt är en certifikatmyndighetstjänst som erbjuder gratis TLS/SSL-certifikat. Installationsprocessen förenklas av Certbot,

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Hur man ställer in en Tekkit Classic-server på Ubuntu 16.10

Använder du ett annat system? Vad är Tekkit Classic? Tekkit Classic är ett modpack för spelet som alla känner och älskar; Minecraft. Den innehåller några av ver

Konfigurera iRedMail på Debian Wheezy

Konfigurera iRedMail på Debian Wheezy

Använder du ett annat system? Den här handledningen visar dig hur du installerar groupware iRedMail på en ny installation av Debian Wheezy. Du bör använda en serve

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hur man installerar och konfigurerar PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP och relaterade paket är de mest använda komponenterna när du distribuerar en webbserver. I den här artikeln kommer vi att lära oss hur du ställer in PHP 7.0 eller PHP 7.1 o

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Tre gratis serverkontrollpaneler (snabbinstallation)

Tre gratis serverkontrollpaneler (snabbinstallation)

1. Virtualmin/Webmin Virtualmin är en kraftfull och flexibel kontrollpanel för webbhotell för Linux- och UNIX-system baserad på den välkända Open Source-webbasen

Konfigurera en Yii-applikation på Ubuntu 14.04

Konfigurera en Yii-applikation på Ubuntu 14.04

Yii är ett PHP-ramverk som låter dig utveckla applikationer snabbare och enklare. Att installera Yii på Ubuntu är enkelt, eftersom du kommer att lära dig exakt

Använder skärmen på Ubuntu 14.04

Använder skärmen på Ubuntu 14.04

Screen är ett program som tillåter flera terminalsessioner inom ett fönster. Detta låter dig simulera flera terminalfönster där det ma

Konfigurera din egen DNS-server på Debian/Ubuntu

Konfigurera din egen DNS-server på Debian/Ubuntu

Denna handledning förklarar hur man ställer in en DNS-server med Bind9 på Debian eller Ubuntu. Genomgående i artikeln, byt ut ditt-domännamn.com i enlighet med detta. Vid th

Använda Logrotate för att hantera loggfiler

Använda Logrotate för att hantera loggfiler

Inledning Logrotate är ett Linux-verktyg som förenklar administrationen av loggfiler. Den körs vanligtvis en gång om dagen via ett cron-jobb och hanterar loggbasen

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Konfigurera Red5 Media Server på Ubuntu 16.04

Konfigurera Red5 Media Server på Ubuntu 16.04

Använder du ett annat system? Red5 är en mediaserver med öppen källkod implementerad i Java som låter dig köra Flash fleranvändarapplikationer som livestreamin

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

Kompilera och installera Nginx med PageSpeed-modulen på Debian 8

I den här artikeln kommer vi att se hur man kompilerar och installerar Nginx mainline från de officiella källorna för Nginx med PageSpeed-modulen, som låter dig t

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hur man installerar Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Vanilla Forum på Ubuntu 16.04

Hur man installerar Vanilla Forum på Ubuntu 16.04

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer