Uvod
Preduvjeti
Korak 1: Ažurirajte sustav
Korak 2: Instalirajte LEMP poslužitelj.
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 je besplatni softver za web-baze otvorenog koda koji 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 da izradite vlastitu prilagođenu fakturu i prikažete fakturu uživo kao PDF datoteku.
U ovom vodiču objasnit ću vam kako instalirati Invoice Ninja na CentOS 7 poslužitelj.
Preduvjeti
- Instanca CentOS 7 x64 s instaliranim 2 GB RAM-a.
- Korisnik sudoa .
Korak 1: Ažurirajte sustav
Prije instaliranja bilo kojeg paketa na instancu poslužitelja CentOS, 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 yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Korak 2: Instalirajte LEMP poslužitelj.
Prije početka, morat ćete instalirati LEMP (Nginx, MariaDB i PHP) na svoj poslužitelj.
Prvo instalirajte Nginx i MariaDB sa sljedećom naredbom:
sudo yum install nginx mariadb-server -y
Nakon što je instalacija dovršena, pokrenite Nginx i MariaDB uslugu i omogućite im pokretanje pri pokretanju:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mariadb
sudo systemctl enable mariadb
Zatim će vam trebati PHP7 i PHP7.0-FPM za instalaciju Invoice Ninja.
Prvo dodajte PHP7.0 spremište u sustav sa sljedećom naredbom:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Zatim instalirajte PHP7.0-FPM i druga potrebna PHP proširenja sljedećom naredbom:
sudo yum install install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-curl php70w-gmp php70w-pdo php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt -y
Nakon što je instalacija gotova, morat ćete izmijeniti konfiguracijsku datoteku php.ini:
sudo nano /etc/php.ini
Promijenite sljedeći redak:
cgi.fix_pathinfo=0
Spremite i zatvorite datoteku.
Prema zadanim postavkama, instalacija MariaDB-a nije zaštićena pa ćete je prvo morati osigurati. To možete učiniti pokretanjem skripte za sigurnu instalaciju mysql :
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 s MySQL ljuskom sljedećom naredbom:
mysql -u root -p
Unesite svoju root lozinku i pritisnite enter, vidjet ćete MySQL ljusku:
Zatim stvorite 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
Zatim ćete morati konfigurirati PHP-FPM bazen za korisnika Nginxa:
sudo nano /etc/php-fpm.d/www.conf
Promijenite sljedeće retke:
user = nginx
group = nginx
listen = /var/run/php/php-fpm.sock
listen.owner = nginx
listen.group = nginx
listen.mode = 0660
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Spremite i zatvorite datoteku kada završite.
Zatim ćete morati stvoriti novi direktorij za PHP sesiju i datoteku utičnice:
sudo mkdir -p /var/lib/php/session
sudo mkdir -p /var/run/php/
sudo chown -R nginx:nginx /var/lib/php/session/
sudo chown -R nginx:nginx /var/run/php/
Konačno, pokrenite PHP7.0-FPM uslugu i dodajte je za početak pri pokretanju:
sudo systemctl start php-fpm
systemctl enable php-fpm
Možete preuzeti najnoviju stabilnu verziju Invoice Ninja 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 Dependency Manager za PHP (kompozitor). 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 naredbu composer kao što je prikazano u nastavku:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Nakon što je instalacija gotova, preimenujte datoteku .env 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 nginx:nginx /var/www/html/ninja/
Zatim ćete morati izraditi 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
Zatim dajte odgovarajuće dopuštenje datoteci certifikata:
sudo chmod 600 /etc/nginx/cert/*
Zatim stvorite 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.15.23;
add_header Strict-Transport-Security max-age=2592000;
rewrite ^ https://$server_name$request_uri? permanent;
}
server {
listen 443 default;
server_name 192.168.15.23;
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/php-fpm.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 i 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 uslugu http i https putem firewalla. Pokrenite naredbe u nastavku da otvorite portove:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Konačno, otvorite svoj web preglednik i upišite URL https://192.168.15.23, a zatim dovršite potrebne korake da biste dovršili instalaciju.
Čestitamo! uspješno smo instalirali Invoice Ninja s Nginxom i MariaDB na CentOS 7 poslužitelju.