GNU/Linux >> Linux Esercitazione >  >> Cent OS

Come installare Invoice Ninja su CentOS 7

Invoice Ninja è un software gratuito e open source basato sul Web per fatturazione, pagamenti, monitoraggio del tempo e molto altro. Puoi creare fatture online in pochi secondi, integrarle con gateway di pagamento come Stripe, PayPal e WePay. Invoice Ninja può mostrarti la fattura in tempo reale come file PDF, puoi impostare il tuo logo aziendale e utilizzare modelli di fattura personalizzati. Invoice Ninja è basato su PHP, costruito con Laravel Framework e può essere installato su Linux, Windows e Mac.

In questo tutorial, ti mostrerò come installare e configurare Invoice Ninja su un server CentOS 7. Userò Nginx come server web e MariaDB come sistema di database.

Prerequisito

  • Server CentOS 7
  • Privilegi di root

Passaggio 1:installa Nginx

In questo passaggio, installeremo il server web Nginx. Collegati al tuo server con il tuo account ssh rot.

ssh [email protected]

Prima di installare Nginx, devi installare il repository Epel sul tuo sistema CentOS.

yum -y install epel-release

Ora puoi installare Nginx con il comando yum di seguito dal repository epel:

yum -y install nginx

Al termine dell'installazione, avvia Nginx e abilita l'avvio all'avvio.

systemctl start nginx
systemctl enable nginx

Assicurati che Nginx sia in esecuzione controllando la porta utilizzata da Nginx (porta 80).

netstat -plntu

Nota:

Se il comando netstat non viene trovato, puoi installare net-tools in questo modo:

yum -y install net-tools

Passaggio 2:installazione e configurazione del server MariaDB

Dopo aver installato Nginx, dobbiamo installare mariadb-server sul sistema. È disponibile nel repository CentOS. Installa mariadb-server e tutti i pacchetti necessari per MariaDB con il comando seguente.

yum install -y mariadb-server

Avvia il servizio mariadb e abilitalo all'avvio all'avvio con il comando systemctl.

systemctl start mariadb
systemctl enable mariadb

MariaDB è stato avviato, ora puoi impostare la password di root per MariaDB con il comando 'mysql_secure_installation'.

mysql_secure_installation

Imposta la tua password di root MariaDB.

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

Se tutto è fatto, puoi provare a connetterti con la shell MySQL e l'utente root.

mysql -u root -p
TYPE YOUR ROOT PASSWORD

Vedrai la shell MySQL.

Successivamente, dobbiamo creare un nuovo database e un nuovo utente per Invoice Ninja nella shell MySQL che abbiamo aperto. Creeremo un nuovo database chiamato 'ninjadb ', un nuovo utente 'ninja ' con password 'aqwe123 '. Scegli una password sicura diversa per la tua installazione.

Crea tutto con le query MySQL di seguito:crea un nuovo database, crea un nuovo utente e password, concedi l'accesso al database al nuovo utente con password.

create database ninjadb;
create user [email protected] identified by 'aqwe123';
grant all privileges on ninjadb.* to [email protected] identified by 'aqwe123';
flush privileges;

MariaDB è stata installata e sono stati creati un nuovo database e utente per Invoice Ninja.

Fase 3 - Installa e configura PHP7.0-FPM

Invoice Ninja è basato su PHP, quindi è necessario installarlo sul sistema. Userò PHP7.0-FPM per l'installazione di Invoice Ninja.

Non è presente PHP7.0 nel repository predefinito di CentOS, quindi è necessario aggiungere un nuovo repository PHP7.0 al sistema. Userò il repository webtatic.

Aggiungi il repository PHP7.0 al sistema.

rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Ora puoi installare PHP7.0-FPM e altre estensioni PHP necessarie per Invoice Ninja dal repository webtatic.

yum -y install php70w-fpm php70w-cli php70w-pear php70w-gd php70w-xml php70w-mysql php70w-zip php70w-mbstring php70w-mcrypt php70w-curl php70w-gmp php70w-pdo

Al termine dell'installazione, modificare il file di configurazione php.ini con vim.

vim /etc/php.ini

Decommenta la riga cgi.fix_pathinfo sottostante e cambia il valore in 0.

cgi.fix_pathinfo=0

Salva il file ed esci da vim.

Quindi modifica il file di configurazione PHP-FPM.

vim /etc/php-fpm.d/www.conf

Cambia utente e gruppo alle righe 8 e 10 in 'nginx ' gruppo.

user = nginx
group = nginx

Invece di una porta, useremo un file socket per php-fpm. Cambia la riga di ascolto in '/var/run/php/php-fpm.sock '.

listen = /var/run/php/php-fpm.sock

Decommenta la configurazione del file socket, il proprietario, il gruppo e l'autorizzazione.

listen.owner = nginx
listen.group = nginx
listen.mode = 0660

Decommenta le variabili di ambiente php-fpm nella riga 366-370.

env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp

Salva il file ed esci dall'editor.

Ora dobbiamo creare una nuova directory di sessione PHP e cambiare il proprietario nell'utente e nel gruppo nginx.

mkdir -p /var/lib/php/session
chown -R nginx:nginx /var/lib/php/session/

Crea una nuova directory per il file socket e cambia l'autorizzazione per l'utente e il gruppo nginx.

mkdir -p /var/run/php/
chown -R nginx:nginx /var/run/php/

Quindi, avvia PHP7.0-FPM e aggiungilo all'avvio all'avvio.

systemctl start php-fpm
systemctl enable php-fpm

PHP-FPM è stato avviato. Ora puoi verificarlo con il comando seguente e vedrai il file socket PHP.

netstat -pl

PHP7.0-FPM e tutte le estensioni necessarie per Invoice Ninja sono installate.

Fase 4 - Installa e configura Invoice Ninja

In questo passaggio, scaricheremo e configureremo Invoice Ninja. Innanzitutto, installa unzip sul tuo sistema.

yum -y install unzip

Crea una nuova directory per i file webroot di Invoice Ninja.

mkdir -p /var/www/
cd /var/www/

Scarica Invoice Ninja con il comando wget.

wget https://download.invoiceninja.com/ninja-v3.1.0.zip

Estrai il file zip di Invoice Ninja e vai su 'ninja ' directory.

unzip ninja-v3.1.0.zip
cd ninja/

Per il progetto Laravel, abbiamo bisogno di installare composer, un Dependency Manager per PHP.

curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer

Ora puoi usare il comando del compositore.

Quindi, installa le dipendenze di Invoice Ninja con il comando di composizione riportato di seguito.

composer install --no-dev -o
  • --no-dev: Disabilita l'installazione dei pacchetti require-dev.
  • -o: Ottimizza il caricatore automatico durante il dump del caricatore automatico.

Al termine dell'installazione delle dipendenze, copia il file .env e modificalo con vim.

cp .env.example .env
vim .env

Modifica il valore delle impostazioni del database di seguito.

DB_DATABASE=ninjadb
DB_USERNAME=ninja
DB_PASSWORD=aqwe123

Salva ed esci.

Quindi, modifica la configurazione del database nella directory config.

vim config/database.php

Stiamo usando il database MariaDB/MySQL, vai alle impostazioni di MySQL alla riga 55.

'database'  => env('DB_DATABASE', 'ninjadb'),
'username'  => env('DB_USERNAME', 'ninja'),
'password'  => env('DB_PASSWORD', 'aqwe123'),

Salva ed esci.

Tutti i file di configurazione vengono modificati, quindi prepara il database con il comando seguente.

php artisan migrate

Ti verrà chiesto di eseguire il comando, digita "yes" e premi Invio.

Quindi, semina il database con tutti i record.

php artisan db:seed

Digita 'sì' e premi Invio per confermare.

Genera la chiave dell'applicazione.

php artisan key:generate

Vedrai la chiave dell'applicazione.

Modifica il file app.php con vim.

vim config/app.php

Vai alla riga APP_KEY 85 e incolla la chiave generata (la chiave sotto è un esempio, usa invece la chiave che hai ottenuto dal comando sopra).

'key' => env('APP_KEY', 'base64:0o5QLWbNeDCNer064+600Hl8oJ20OPCIymadKJQ1RGo='),

Salva ed esci.

Infine, cambia il proprietario della directory '/var/www/ninja' con l'utente e il gruppo 'nginx'.

cd /var/www/
chown -R nginx:nginx ninja/

La fattura Ninja è stata configurata ed è pronta per l'installazione.

Passaggio 5 - Configura SSL e l'host virtuale

In questo passaggio, genereremo un file di certificato SSL con il comando openssl e creeremo una nuova configurazione di host virtuale per Invoice Ninja. Se sei su un server live, puoi utilizzare un SSL gratuito anche da Let's Encrypt.

Crea una nuova directory 'cert' per i file SSL.

mkdir -p /etc/nginx/cert/

Esegui il comando OpenSSL di seguito per generare i file del certificato.

openssl req -new -x509 -days 365 -nodes -out /etc/nginx/cert/ninja.crt -keyout /etc/nginx/cert/ninja.key

Modifica l'autorizzazione dei file del certificato in "600".

chmod 600 /etc/nginx/cert/*

Quindi, vai alla directory Nginx e crea un nuovo file di configurazione dell'host virtuale chiamato 'ninja.conf '.

cd /etc/nginx/
vim conf.d/ninja.conf

Incolla la configurazione dell'host virtuale di seguito.

server {
    # Your Domain Name - hakase-labs.co
    listen      80;
    server_name ninja.co www.ninja.co;

    # Rewrite redirect to https
    add_header Strict-Transport-Security max-age=2592000;
    rewrite ^ https://$server_name$request_uri? permanent;
}

server {
    # Your Domain Name - hakase-labs.co
    listen      443 default;
    server_name ninja.co www.ninja.co;

    # Enable SSL for Invoice Ninja
    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;

    # Invoice Ninja web root files
    root /var/www/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;
    }
}

Salva ed esci.

Ora prova la configurazione di Nginx e assicurati che non ci siano errori.

nginx -t

Riavvia il server web Nginx.

systemctl restart nginx

La configurazione dell'host virtuale Invoice Ninja è stata creata.

Passaggio 6 - Configura SELinux e Firewalld

Se il tuo SELinux è spento, puoi saltare questo passaggio e iniziare a configurare Firewalld. In questo passaggio, configureremo SELinux e Firewalld per Invoice Ninja. Controlla lo stato di SELinux e assicurati che firewalld sia installato.

Verifica lo stato di SELinux con il comando seguente.

getenforce

Se il tuo SELinux è attivo, vedrai i risultati "Applicazione" o "Permissiva".

Ora installa gli strumenti di gestione di SELinux dal repository.

yum -y install policycoreutils-python

Ed esegui i comandi seguenti per consentire a Invoice Ninja di funzionare in SELinux in modalità Enforcing.

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/public(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/storage(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/app(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/bootstrap(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/config(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/database(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/resources(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/vendor(/.*)?'
semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/ninja/tests(/.*)?'
restorecon -Rv '/var/www/ninja/'

Successivamente, dobbiamo aprire la porta del server in modo da poter accedere a Invoice Ninja dall'esterno.

Assicurati che firewalld sia installato sul tuo sistema, oppure puoi installarlo con il comando yum.

yum -y install firewalld

Avvia firewalld e abilita l'avvio all'avvio.

systemctl start firewalld
systemctl enable firewalld

Ora dobbiamo aprire le porte HTTP e HTTPS per Invoice Ninja. Esegui i comandi seguenti per aprire le porte.

firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload

SELinux e Firewalld sono configurati.

Fase 7 - Test

Apri il tuo browser web e digita l'URL di Invoice Ninja, nel mio caso:ninja.co.

Verrai reindirizzato a una connessione https e alla pagina di configurazione.

Inserisci i dettagli di configurazione richiesti, Impostazioni dell'applicazione, Connessione al database, Impostazioni e-mail, Dettagli utente e controlla i Termini di servizio di Invoice Ninja.

Fai clic su 'Invia ' e verrai reindirizzato alla pagina di accesso di Invoice Ninja.

Digita e-mail e password, quindi premi 'ACCEDI '.

Vedrai la dashboard di Invoice Ninja.

Pagina Impostazioni Fattura Ninja.

Invoice Ninja è stato installato con Nginx e MariaDB su CentOS 7.

Riferimenti

  • https://calyrium.org/post/install-invoiceninja-archlinux-nginx/
  • https://github.com/Lykegenes/vps-toolkit/blob/master/apps/invoice-ninja-nginx

Cent OS
  1. Come installare e configurare Nginx su CentOS 7

  2. Come installare Nginx su CentOS 7

  3. Come installare R su CentOS 7

  4. Come installare phpMyAdmin con Nginx su CentOS 7

  5. Come installare Invoice Ninja su Debian 9

Come installare Invoice Ninja su CentOS 7

Come installare Invoice Ninja su CentOS 8

Come installare Nginx su CentOS 7

Come installare Invoice Ninja su Debian 10

Come installare Nginx su CentOS 7?

Come installare Nginx su CentOS 8