Prezantimi
Parakushtet
Hapi 1: Përditësoni sistemin
Hapi 2: Instaloni stack LEMP
Hapi 3: Konfiguro bazën e të dhënave
Hapi 4: Konfiguro PHP-FPM
Hapi 5: Shkarkoni dhe konfiguroni Invoice Ninja
Hapi 6: Konfiguro Nginx për Ninja-n e faturës
Hapi 7: Hyni në Ninja në faturë
Prezantimi
Invoice Ninja është një aplikacion falas dhe me burim të hapur i bazuar në ueb që mund të përdoret për faturim, pagesa, gjurmim të kohës dhe shumë më tepër. Është zgjidhja më e mirë për faturimin dhe faturimin e klientëve. Ju lehtë mund të krijoni dhe dërgoni fatura në internet në sekonda. Invoice Ninja ju lejon të krijoni fatura të personalizuara dhe të shfaqni fatura të drejtpërdrejta si një skedar PDF.
Në këtë tutorial, unë do të shpjegoj se si të instaloni Invoice Ninja në serverin Ubuntu 16.04.
Parakushtet
- Një shembull i serverit Ubuntu 16.04 me 2 GB RAM të instaluar.
- Një përdorues sudo me privilegje rrënjësore.
- Ju do të duhet të dini IP-në kryesore të shembullit të serverit tuaj. Në këtë tutorial, unë do të përdor
192.168.0.227.
Hapi 1: Përditësoni sistemin
Përpara se të instaloni ndonjë paketë në shembullin e serverit Ubuntu, rekomandohet të përditësoni sistemin. Hyni në serverin tuaj nëpërmjet SSH si përdoruesi juaj sudo dhe ekzekutoni komandën e mëposhtme:
sudo apt-get update -y
sudo apt-get upgrade -y
sudo shutdown -r now
Hapi 2: Instaloni stack LEMP
Para se të filloni, do t'ju duhet të konfiguroni një pirg LEMP (Nginx, MariaDB dhe PHP) në serverin tuaj.
Së pari, instaloni Nginx dhe MariaDB me komandën e mëposhtme:
sudo apt-get install nginx mariadb-server -y
Pasi të përfundojë instalimi, nisni shërbimet Nginx dhe MariaDB dhe mundësojini ato të fillojnë në boot:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mysql
sudo systemctl enable mysql
Më pas, do t'ju duhet PHP 7 dhe PHP-FPM për instalimin e Invoice Ninja.
Ju mund të instaloni PHP-FPM dhe shtesat e tjera të kërkuara PHP me komandën e mëposhtme:
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
Pasi të ketë përfunduar instalimi, do t'ju duhet të modifikoni php.iniskedarin e konfigurimit:
sudo nano /etc/php/7.0/fpm/php.ini
Ndryshoni rreshtin e mëposhtëm:
cgi.fix_pathinfo=0
Ruani dhe mbyllni skedarin.
Si parazgjedhje, instalimi i MariaDB nuk është siguruar. Do t'ju duhet ta siguroni atë. Ju mund ta bëni këtë duke vrapuar mysql_secure_installation script.
sudo mysql_secure_installation
Përgjigjuni të gjitha pyetjeve siç tregohet më poshtë:
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
Kur gjithçka të ketë mbaruar, lidheni duke përdorur guaskën MySQL me komandën e mëposhtme:
mysql -u root -p
Futni fjalëkalimin tuaj root dhe shtypni "enter", do të shihni guaskën MySQL (MariaDB).
Krijo një bazë të dhënash të re dhe një përdorues të ri pë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
Konfiguro grupin PHP-FPM për përdoruesin Nginx:
sudo nano /etc/php/7.0/fpm/pool.d/www-data.conf
Shtoni rreshtat e mëposhtëm:
[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 = /
Ruani dhe mbyllni skedarin kur të keni mbaruar, më pas rinisni PHP-FPM për të zbatuar këto ndryshime.
systemctl restart php7.0-fpm
Ju mund të shkarkoni versionin më të fundit të qëndrueshëm të Invoice Ninja nga depoja e GitHub me komandën e mëposhtme:
cd /var/www/html/
sudo git clone https://github.com/hillelcoren/invoice-ninja.git ninja
Do t'ju duhet gjithashtu të instaloni Composer, një menaxher varësie për PHP. Mund ta instaloni me komandën e mëposhtme:
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
Tjetra, instaloni të gjitha varësitë e Faturës Ninja duke përdorur composerkomandën siç tregohet më poshtë:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Pasi të përfundojë instalimi, riemërtoni .envskedarin dhe bëni disa ndryshime.
sudo mv .env.example .env
sudo nano .env
Ndryshoni linjat siç tregohet më poshtë:
DB_DATABASE=ninja_db
DB_USERNAME=ninja
DB_PASSWORD=password
Ruani skedarin kur të keni mbaruar, më pas ekzekutoni komandën e mëposhtme për të përgatitur bazën e të dhënave:
sudo php artisan migrate
Do t'ju kërkohet të ekzekutoni komandën, shkruani "po" dhe shtypni "enter".
Më pas, vendosni bazën e të dhënave me regjistrime siç tregohet më poshtë:
sudo php artisan db:seed
Shkruani "po" dhe shtypni "enter".
Më pas, ndryshoni pronësinë e /var/www/html/ninjadrejtorisë:
sudo chown -R www-data:www-data /var/www/html/ninja/
Më pas, do t'ju duhet të krijoni një certifikatë SSL dhe të krijoni një konfigurim të ri të hostit virtual për Invoice Ninja.
Së pari, krijoni një direktori për SSL:
sudo mkdir -p /etc/nginx/cert/
Më pas, gjeneroni një certifikatë SSL me komandën e mëposhtme:
sudo openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key
Jepni lejet e duhura skedarit të certifikatës.
sudo chmod 600 /etc/nginx/cert/*
Krijo një skedar të ri të konfigurimit të hostit virtual brenda /etc/nginx/drejtorisë.
sudo nano /etc/nginx/conf.d/ninja.conf
Shtoni rreshtat e mëposhtëm:
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;
}
}
Ruani dhe mbyllni skedarin. Pastaj aktivizoni hostin virtual me komandën e mëposhtme.
sudo ln -s /etc/nginx/sites-available/ninja /etc/nginx/sites-enabled/
Më në fund, rinisni serverin në internet Nginx.
sudo systemctl restart nginx
Hapi 7: Hyni në Ninja në faturë
Përpara se të hyni në ndërfaqen e internetit të Invoice Ninja, do t'ju duhet të lejoni shërbimet HTTP dhe HTTPS përmes murit të zjarrit UFW. Ekzekutoni komandat e mëposhtme për të hapur këto porte:
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
Më në fund, hapni shfletuesin tuaj të internetit dhe hyni në URL https://192.168.0.227. Më pas mund të përfundoni hapat e kërkuar për të përfunduar instalimin.
urime! Ne kemi instaluar me sukses Invoice Ninja me Nginx dhe MariaDB në serverin Ubuntu 16.04.