Aveti intrebari? Sunteti in locul potrivit!
Invoice Ninja este o aplicatie web open-source gratuita care poate fi folosita la facturare, plati, time tracking si multe altele. Este una din cele mai bune aplicatii de facturare cu ajutorul careia puteti genera si trimite facturi rapid. Invoice Ninja va permite sa generati proforme si facturi personalizate si sa le generati in format PDF.
In acest tutorial va prezentam procesul de instalare Invoice Ninja pe Ubuntu server 16.04
Necesar:
192.168.0.227
Pasul 1: Update-ul sistemului
Inainte de instalarea oricarui pachet pe instanta de server Ubuntu este recomandat sa efectuati un update al sistemului.
Autentificati-va la server prin SSH ca utilizator sudo si executati urmatoarele comenzi:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Pasul 2: Instalati stack-ul LEMP
Inainte de a incepe, este necesar sa configurati stack-ul LEMP(Nginx, MariaDB si PHP) pe serverul dvs.
Instalati Nginx si MariaDB executand urmatoarele comenzi :
sudo apt-get install nginx mariadb-server -y
Acum, este necesar sa instalati PHP 7 si PHP-FPM pentru instalarea Invoice Ninja.
Puteti instala PHP-FPM si alte extensii PHP executand urmatoarea comnada :
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
Dupa instalare, este necesar sa modificati fisierul php.ini
sudo nano /etc/php/7.0/fpm/php.ini
Modificati urmatoarea linie:
cgi.fix_pathinfo=0
Salvati si inchideti fisierul.
Pasul 3: Configurarea bazei de date
In mod implicit instalarea MariaDB nu este securizata. Este necesar sa o securizati. Puteti face acest lucru executand script-ul mysql_secure_installation script
.
Rulati comanda:
sudo mysql_secure_installation
Raspundeti intrebarilor aparute in proces:
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
Dupa finalizarea instalarii, conectati-va utilizand shell-ul MySQL utilizand urmatoarea comanda:
mysql -u root -p
Introduceti parola de root si apasati „Enter”, acum sunteti in shell-ul MySQL
Creati o noua baza de date si un utilizator nou penru 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
Pasul 4: Configurarea PHP-FPM
Configurati pool-ul PHP-FPM pentru utilizatorul Nginx:
sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf
Adaugati urmatoarele linii:
[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 = /
Salvati si inchideti fisierul apoi restartati PHP-FPM pentru aplicarea modificarilor:
systemctl restart php7.0-fpm
Pasul 5: Downloadati si configurati Invoice Ninja
Puteti downloada ultima versiune stabila a Invoice Ninja din repository-ul GitHub executand urmatoarea comanda:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
Este necesar sa instalati si Composer, un manager de dependinte pentru PHP. Acesta se instaleaza executand comanda :
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Apoi, instalati toate dependintele Invoice Ninja utilizand comanda composer
:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Dupa ce instalarea a fost efectuata, redenumiti fisierul .env
si faceti cateva schimbari:
sudo mv .env.example .env
sudo nano .env
Modificati liniile dupa cum urmeaza:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Salvati fisierul cand ati terminat de modificat si executati urmatoarea comanda pentru a pregati baza de date:
sudo php artisan migrate
Pasul umator este sa faceti un seed la baza de date :
sudo php artisan db:seed
Tastati „yes” si apasati „enter”, apoi generati o cheie de aplicatie.
sudo php artisan key:generate
Adaugati cheia generata ca in exemplu de mai jos (inlocuiti cheia din exemplu cu cheia dvs.)
'key' => env('APP_KEY','jkF3IrELhHBoQ4XxMCsInhGxOIXYXc4gDAiU0HsNSD0='),
Pasul 6: Configurarea Nginx pentru Invoice Ninja
Trebuie sa creati un certificat SSL si o noua configurare in virtual host pentru Invoice Ninja.
Primul pas este sa creati un director pentru SSL:
sudo mkdir -p /etc/nginx/cert/
Apoi, generati certificatul SSL utilizand urmatoarea comanda:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Oferiti permisiuni pentru fisierul de certificat
sudo chmod 600 /etc/nginx/cert/*
Creati o noua configurare virtul host in directorul /etc/nginx/
sudo nano /etc/nginx/conf.d/ninja.conf
Adaugati urmatoarele linii:
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;
}
}
Salvati si inchideti fisierul. Apoi activati virtual host executand urmatoarea comanda:
sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
Ca pas final, restartati serverul Nginx:
sudo systemctl restart nginx
Pasul 7: Accesati Invoice Ninja
Inainte de accesarea interfetei Invoice Ninja, este necesar sa permiteti serviciilor HTTP si HTTPS prin in firewall-ul UFW. Executati urmatoarele comenzi:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Pasul final este sa accesati intr-un browser IP-ul serverului https://192.168.0.227 (inlocuiti cu IP-ul dvs. aceasta adresa este data ca si exemplu) si finalizati procesul de instalare.