Ricerca nel sito web

Configurazione di OpenERP (Odoo) 9 con Nginx su RHEL/CentOS e Debian/Ubuntu


Odoo, precedentemente noto come OpenERP, è un software aziendale basato sul web ERP Open Source Enterprise Resource Planning scritto in Python che viene fornito con una suite di web app progettate per ogni azienda, come costruttori di siti web, moduli eCommerce, fatturazione e contabilità, risorse umane, punto vendita, gestione delle relazioni con i clienti, modulo inventario, chat dal vivo e molte altre app e funzionalità.

Questo tutorial ti guiderà su come installare l'ultima versione stabile di Odoo (versione 9) su un RHEL/CentOS/Fedora o < Sistemi basati suDebian/Ubuntu con server Nginx che funge da proxy inverso nel frontend per accedere all'interfaccia web in modo più veloce, sicuro e da porte di navigazione web standard, senza la necessità di obbligare gli utenti a utilizzare le porte di reindirizzamento del browser.

Passaggio 1: installa e proteggi il database PostgreSQL

1. Prima di iniziare a procedere con l'installazione di Odoo, assicurati innanzitutto che il tuo sistema venga fornito con i pacchetti forniti dai repository Epel per installare il database PostgreSQL di backend .

Assicurati inoltre che il server sia aggiornato con i pacchetti e le patch di sicurezza più recenti immettendo i comandi seguenti:

----------- On RedHat/CentOS based systems ----------- 
yum update
yum install -y epel-release

----------- On Debian/Ubuntu based systems ----------- 
apt-get update && sudo apt-get upgrade # On Debian 

2. Successivamente, vai avanti e installa il server database PostgreSQL, che è il database predefinito utilizzato da Odoo per archiviare le informazioni.

----------- On RedHat/CentOS based systems -----------
yum install postgresql-server

----------- On Debian/Ubuntu based systems -----------
apt-get install postgresql postgresql-client

Inizializza il database PostgreSQL.

postgresql-setup initdb	

Ora finalmente avvia il database PostgreSQL immettendo il comando seguente:

----------- On SystemD systems -----------
systemctl start postgresql

----------- On SysVinit systems -----------
service postgresql start

Come ulteriore passaggio per proteggere l'utente predefinito PostgreSQL, che ha una password vuota, esegui il comando seguente con privilegi di root per modificare la password:

sudo -u postgres psql
postgres=# \password postgres

Passaggio 2: installa Odoo 9 – OpenERP

3. Per installare Odoo 9 dal repository ufficiale, crea prima un nuovo file del repository yum per Odoo con il seguente contenuto:

Su sistemi CentOS/RHEL

vi /etc/yum.repos.d/odoo.repo

Aggiungi il seguente estratto al file odoo.repo.

[odoo-nightly]
name=Odoo Nightly repository
baseurl=http://nightly.odoo.com/9.0/nightly/rpm/
enabled=1
gpgcheck=1
gpgkey=https://nightly.odoo.com/odoo.key

Sui sistemi Debian/Ubuntu

Su Debian/Ubuntu immetti il seguente comando per aggiungere i repository Odoo:

wget -O - https://nightly.odoo.com/odoo.key | apt-key add -
echo "deb http://nightly.odoo.com/9.0/nightly/deb/ ./" >> /etc/apt/sources.list

4. Successivamente installa il software Odoo 9 dai binari.

----------- On RedHat/CentOS based systems -----------
yum install odoo

----------- On Debian/Ubuntu based systems -----------
apt-get update && sudo apt-get install odoo

Successivamente, avvialo e controlla lo stato del demone emettendo i comandi seguenti:

----------- On SystemD systems -----------
systemctl start odoo
systemctl status odoo

----------- On SysVinit systems -----------
service odoo start
service odoo status

Come passaggio aggiuntivo puoi verificare la porta di ascolto del servizio Odoo eseguendo il comando ss o netstat:

ss -tulpn
OR
netstat -tulpn

Per impostazione predefinita, Odoo ascolta le connessioni di rete sulla porta 8069/TCP.

Passaggio 3: configura Odoo dall'interfaccia web

5. Per configurare ulteriormente Odoo, avvia un browser e accedi all'interfaccia web di Odoo al seguente URI:

http://host-or-IP-address:8069/

6. Successivamente ti verrà richiesto di creare un nuovo database per Odoo e impostare una password complessa per l'account amministratore.

7. Una volta creato il database verrai reindirizzato al pannello web di amministrazione dove potrai installare ulteriormente le applicazioni e configurare il tuo ERP. Per il momento lascia l'applicazione come predefinita ed effettua il logout.

8. Una volta tornato alla schermata di accesso, premi il collegamento Gestisci database e imposta una password principale per proteggere il gestore database Odoo.

9. Una volta protetto il gestore database Odoo, puoi accedere alla tua applicazione e iniziare a configurarla ulteriormente con le app e le impostazioni richieste.

Passaggio 4: accedi a Odoo dal frontend Nginx

È possibile configurare il sistema in modo che gli utenti possano accedere al pannello web Odoo tramite proxy inverso Nginx. Ciò può facilitare agli utenti una navigazione più rapida nell'interfaccia web di Odoo, grazie alla memorizzazione nella cache del frontend Nginx, su porte HTTP standard senza la necessità di inserire manualmente la porta http 8069 sui loro browser .

Per configurare prima questa impostazione devi installare e configurare Nginx sul tuo sistema eseguendo i seguenti passaggi.

10. Installa innanzitutto il server web Nginx con il seguente comando:

----------- On RedHat/CentOS based systems -----------
yum install nginx

----------- On Debian/Ubuntu based systems -----------
apt-get install nginx

11. Successivamente, apri il file di configurazione principale di Nginx con un editor di testo e inserisci il blocco seguente dopo la riga che specifica la posizione della radice del documento Nginx.

----------- On RedHat/CentOS based systems -----------
vi /etc/nginx/nginx.conf 

----------- On Debian/Ubuntu based systems -----------
nano /etc/nginx/sites-enabled/default

Aggiungi il seguente estratto di configurazione al file nginx.conf:

 location / {
        proxy_pass http://127.0.0.1:8069;
        proxy_redirect off;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;

Inoltre, commenta l'istruzione location di Nginx inserendo un # davanti alle righe seguenti. Utilizza lo screenshot seguente come guida.

#location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
        #       try_files $uri $uri/ =404;
        #}

12. Dopo aver apportato tutte le modifiche di cui sopra, riavvia il demone Nginx ma non prima di aver eseguito il comando getenforce per verificare se Selinux è abilitato su la tua macchina.

Su sistemi CentOS/RHEL

Nel caso in cui la policy sia impostata su Enforced, disabilitala eseguendo i comandi seguenti:

setenforce 0
getenforce

Per disabilitare completamente Selinux, aprire il file /etc/selinux/config con un editor di testo e impostare la riga SELINUX su disabilitato.

Se non vuoi disabilitare completamente la policy di Seliux e vuoi semplicemente allentare le regole per garantire al proxy Nginx l'accesso permissivo al socket di rete, esegui il seguente comando:

setsebool httpd_can_network_connect on -P
getsebool -a | grep httpd 

Quindi, riavvia il demone Nginx per riflettere le modifiche apportate sopra:

systemctl restart nginx
OR
service nginx restart

13. Questo passaggio successivo è una funzionalità opzionale di sicurezza e implica la modifica della presa di rete su cui l'applicazione Odoo è in ascolto, modificando l'indirizzo vincolante da tutte le interfacce (o indirizzi) a solo host locale.

Questa modifica deve essere eseguita solo in combinazione con il proxy inverso Nginx poiché vincolare l'applicazione su localhost implica solo che Odoo non sarà accessibile dagli utenti all'interno della LAN o di altre reti.

Per attivare questa modifica, apri il file /etc/odoo/openerp-server.conf e modifica la riga xmlrpc_interface per collegarla solo a localhost come suggerito nello screenshot seguente.

xmlrpc_interface = 127.0.0.1

Per riflettere le modifiche, riavviare il servizio Odoo eseguendo il comando seguente:

systemctl restart odoo.service
OR
service odoo restart

14. Nel caso in cui il tuo computer abbia una linea di difesa di rete fornita dal firewall, invia i seguenti comandi per aprire le porte del firewall verso il mondo esterno per il proxy Nginx:

----------- On FirewallD based systems -----------
firewall-cmd --add-service=http --permanent
firewall-cmd --reload
----------- On IPTables based systems -----------
iptables -A INPUT -p tcp -m tcp --sport 80 -j ACCEPT
iptables -A OUTPUT -p tcp -m tcp --dport 80 -j ACCEPT
/etc/init.d/iptables save
----------- On UFW Firewall systems -----------
ufw allow http

15. Questo è tutto! Ora puoi accedere con successo alla tua applicazione ERP Odoo visitando l'indirizzo IP del tuo server o il nome di dominio.

http://192.168.1.40
http://domain.tld

16. Per eseguire automaticamente i servizi dopo il riavvio del sistema, emettere il seguente comando per abilitare tutti i demoni a livello di sistema con un solo colpo.

------------ On SystemD Systems ------------  
systemctl enable postgresql.service 
systemctl enable odoo.service
systemctl enable nginx.service
------------ On SysVinit Systems ------------ 

chkconfig postgresql on
chkconfig odoo on
chkconfig nginx on

NOTA: per i report PDF, è necessario scaricare e installare manualmente i pacchetti binari wkhtmltopdf per la propria distribuzione visitando il seguente collegamento Installa wkhtmltopdf per convertire la pagina HTML in PDF.