Introduksjon
Forutsetninger
Trinn 1: Oppdater systemet
Trinn 2: Installer LEMP Server.
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 applikasjonsprogramvare som kan brukes til fakturering, betalinger, tidsregistrering og mye mer. Det er den beste løsningen for fakturerings- og faktureringskunder. Du kan enkelt opprette og sende fakturaer online på sekunder. Invoice Ninja lar deg lage din egen tilpassede faktura og vise direkte faktura som PDF-fil.
I denne opplæringen vil jeg forklare deg hvordan du installerer Invoice Ninja på CentOS 7-serveren.
Forutsetninger
- En CentOS 7 x64-forekomst med 2 GB RAM installert.
- En sudo-bruker .
Trinn 1: Oppdater systemet
Før du installerer noen pakker på en CentOS-serverforekomst, anbefales det å oppdatere systemet. Logg på serveren din via SSH som din sudo-bruker og kjør følgende kommando:
sudo yum install epel-release -y
sudo yum update -y
sudo shutdown -r now
Trinn 2: Installer LEMP Server.
Før du starter, må du installere LEMP (Nginx, MariaDB og PHP) på serveren din.
Installer først Nginx og MariaDB med følgende kommando:
sudo yum install nginx mariadb-server -y
Når installasjonen er fullført, start Nginx og MariaDB-tjenesten og la dem starte ved oppstart:
sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl start mariadb
sudo systemctl enable mariadb
Deretter trenger du PHP7 og PHP7.0-FPM for Invoice Ninja-installasjonen.
Først legger du til PHP7.0-depotet til systemet med følgende kommando:
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Installer deretter PHP7.0-FPM og andre nødvendige PHP-utvidelser med følgende kommando:
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
Når installasjonen er fullført, må du endre php.ini-konfigurasjonsfilen:
sudo nano /etc/php.ini
Endre følgende linje:
cgi.fix_pathinfo=0
Lagre og lukk filen.
Som standard er MariaDB-installasjonen ikke sikret, så du må sikre den først. Du kan gjøre dette ved å kjøre mysql sikker installasjonsskript:
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 MySQL-skall med følgende kommando:
mysql -u root -p
Skriv inn root-passordet ditt og trykk enter, du vil se MySQL-skallet:
Deretter oppretter du 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
Deretter må du konfigurere PHP-FPM pool for Nginx-bruker:
sudo nano /etc/php-fpm.d/www.conf
Endre følgende linjer:
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
Lagre og lukk filen når du er ferdig.
Deretter må du opprette en ny katalog for PHP-økt og socket-fil:
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/
Til slutt, start PHP7.0-FPM-tjenesten og legg den til for å starte ved oppstart:
sudo systemctl start php-fpm
systemctl enable php-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 Dependency Manager for PHP (komponist). 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 komponistkommando som vist nedenfor:
cd /var/www/html/ninja
sudo composer install --no-dev -o
Når installasjonen er fullført, gi nytt navn til .env-filen 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 nginx:nginx /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
Deretter gir du riktig tillatelse til sertifikatfilen:
sudo chmod 600 /etc/nginx/cert/*
Deretter oppretter du en ny konfigurasjonsfil for virtuell vert i /etc/nginx/-katalogen:
sudo nano /etc/nginx/conf.d/ninja.conf
Legg til følgende linjer:
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;
}
}
Lagre og lukk filen og start Nginx-nettserveren 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 brannmuren. Kjør kommandoene nedenfor for å åpne portene:
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
Til slutt, åpne nettleseren og skriv inn URL-en https://192.168.15.23, og fullfør deretter de nødvendige trinnene for å fullføre installasjonen.
Gratulerer! vi har installert Invoice Ninja med Nginx og MariaDB på CentOS 7-serveren.