Uvod
Preduvjeti
Korak 1: Ažurirajte sustav
Korak 2: Instalirajte LEMP stog
Korak 3: Konfigurirajte bazu podataka
Korak 4: Konfigurirajte PHP-FPM
Korak 5: Preuzmite i konfigurirajte Invoice Ninja
Korak 6: Konfigurirajte Nginx za Invoice Ninja
Korak 7: Pristupite fakturi Ninja
Uvod
Invoice Ninja besplatna je web aplikacija otvorenog koda koja se može koristiti za fakturiranje, plaćanja, praćenje vremena i još mnogo toga. To je najbolje rješenje za fakturiranje i naplatu kupaca. Možete jednostavno kreirati i slati račune online u nekoliko sekundi. Invoice Ninja vam omogućuje stvaranje prilagođenih faktura i prikaz faktura uživo kao PDF datoteke.
U ovom vodiču objasnit ću kako instalirati Invoice Ninja na Ubuntu 16.04 poslužitelj.
Preduvjeti
- Instanca poslužitelja Ubuntu 16.04 s instaliranim 2 GB RAM-a.
- Korisnik sudo s root privilegijama.
- Morat ćete znati glavni IP instance vašeg poslužitelja. U ovom vodiču koristit ću
192.168.0.227.
Korak 1: Ažurirajte sustav
Prije instaliranja bilo kojeg paketa na instancu Ubuntu poslužitelja, preporučuje se ažuriranje sustava. Prijavite se na svoj poslužitelj putem SSH-a kao vaš sudo korisnik i pokrenite sljedeću naredbu:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Korak 2: Instalirajte LEMP stog
Prije početka, morat ćete konfigurirati LEMP (Nginx, MariaDB i PHP) stog na vašem poslužitelju.
Prvo instalirajte Nginx i MariaDB sa sljedećom naredbom:
sudo apt-get install nginx mariadb-server -y
Nakon što je instalacija dovršena, pokrenite Nginx i MariaDB usluge i omogućite im pokretanje pri pokretanju:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql
Zatim će vam trebati PHP 7 i PHP-FPM za instalaciju Invoice Ninja.
Možete instalirati PHP-FPM i ostala potrebna PHP proširenja sljedećom naredbom:
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
Nakon što instalacija završi, morat ćete izmijeniti php.inikonfiguracijsku datoteku:
sudo nano /etc/php/7.0/fpm/php.ini
Promijenite sljedeći redak:
cgi.fix_pathinfo=0
Spremite i zatvorite datoteku.
Prema zadanim postavkama, instalacija MariaDB-a nije osigurana. Morat ćete ga osigurati. To možete učiniti pokretanjem mysql_secure_installation script.
sudo mysql_secure_installation
Odgovorite na sva pitanja kao što je prikazano u nastavku:
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
Kada je sve gotovo, povežite se pomoću MySQL ljuske sa sljedećom naredbom:
mysql -u root -p
Unesite svoju root lozinku i pritisnite "enter", vidjet ćete MySQL (MariaDB) ljusku.
Napravite novu bazu podataka i novog korisnika za 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
Konfigurirajte PHP-FPM bazen za korisnika Nginxa:
sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf
Dodajte sljedeće retke:
[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 = /
Spremite i zatvorite datoteku kada završite, a zatim ponovno pokrenite PHP-FPM da biste primijenili ove promjene.
systemctl restart php7.0-fpm
Najnoviju stabilnu verziju Invoice Ninja možete preuzeti iz GitHub repozitorija sljedećom naredbom:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
Također ćete morati instalirati Composer, upravitelj ovisnosti za PHP. Možete ga instalirati sljedećom naredbom:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Zatim instalirajte sve ovisnosti o Invoice Ninja koristeći composernaredbu kao što je prikazano u nastavku:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Nakon što je instalacija gotova, preimenujte .envdatoteku i napravite neke promjene.
sudo mv .env.example .env
sudo nano .env
Promijenite linije kao što je prikazano u nastavku:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Spremite datoteku kada završite, a zatim pokrenite sljedeću naredbu da pripremite bazu podataka:
sudo php artisan migrate
Od vas će se tražiti da pokrenete naredbu, upišite "da" i pritisnite "enter".
Zatim dodajte bazu podataka zapisima kao što je prikazano u nastavku:
sudo php artisan db:seed
Upišite "da" i pritisnite "enter".
Zatim promijenite vlasništvo nad /var/www/html/ninjaimenikom:
sudo chown -R www-data:www-data /var/www/html/ninja/
Zatim ćete morati stvoriti SSL certifikat i stvoriti novu konfiguraciju virtualnog hosta za Invoice Ninja.
Prvo stvorite direktorij za SSL:
sudo mkdir -p /etc/nginx/cert/
Zatim generirajte SSL certifikat sa sljedećom naredbom:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Dajte odgovarajuća dopuštenja datoteci certifikata.
sudo chmod 600 /etc/nginx/cert/*
Napravite novu konfiguracijsku datoteku virtualnog hosta unutar /etc/nginx/direktorija.
sudo nano /etc/nginx/conf.d/ninja.conf
Dodajte sljedeće retke:
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;
}
}
Spremite i zatvorite datoteku. Zatim omogućite virtualni host sljedećom naredbom.
sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
Konačno, ponovno pokrenite Nginx web poslužitelj.
sudo systemctl restart nginx
Korak 7: Pristupite fakturi Ninja
Prije pristupa web sučelju Invoice Ninja, morat ćete dopustiti HTTP i HTTPS usluge putem UFW vatrozida. Pokrenite sljedeće naredbe da otvorite ove portove:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Na kraju otvorite svoj web preglednik i pristupite URL-u https://192.168.0.227. Zatim možete dovršiti potrebne korake za završetak instalacije.
Čestitamo! Uspješno smo instalirali Invoice Ninja s Nginxom i MariaDB na Ubuntu 16.04 poslužitelju.