Introduksjon
Forutsetninger
Trinn 1: Oppdater systemet
Trinn 2: Installer LEMP stack
Trinn 3: Konfigurer databasen
Trinn 4: Konfigurer PHP-FPM
Trinn 5: Last ned og konfigurer Invoice Ninja
Trinn 6: Konfigurer Nginx for Invoice Ninja
Trinn 7: Få tilgang til Invoice Ninja
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.
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
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
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/
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.