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.

Lämna en kommentar

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.

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.

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.

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