Guida alle tecnologie

Installare e automatizzare OpenERP su Ubuntu Server

7 min read DevOps Aggiornato 02 Oct 2025
Installare e automatizzare OpenERP su Ubuntu
Installare e automatizzare OpenERP su Ubuntu

Impara a installare gli script di avvio per OpenERP e per il suo web client, testarli, e configurarli per l’avvio automatico su Ubuntu Server. Questo articolo spiega come posizionare gli script in /etc/init.d/, impostare permessi e proprietari corretti, verificare i log e automatizzare l’avvio al boot. Include checklist, criteri di accettazione e suggerimenti di sicurezza.

Intento primario

Fornire istruzioni pratiche per installare, testare e automatizzare l’avvio di OpenERP (server e web client) su un server Ubuntu. Varianti correlate: installare OpenERP, script init OpenERP, automatizzare avvio servizi, debug log OpenERP.

Passo 7. Installare lo script di avvio del server

Per l’ultimo passaggio è necessario installare uno script che avvii e arresti automaticamente il server e che esegua l’applicazione con l’utente corretto. Ecco lo script di esempio utilizzato in questa guida:

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-server
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    Enterprise Resource Management software
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH=/bin:/sbin:/usr/bin
DAEMON=/opt/openerp/server/bin/openerp-server.py
NAME=openerp-server
DESC=openerp-server

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-server.conf).
CONFIGFILE="/etc/openerp-server.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

Simile al file di configurazione, copia questo script o incolla il suo contenuto in un file in /etc/init.d/ chiamato openerp-server. Poi rendilo eseguibile e impostane il proprietario a root:

sudo chmod 755 /etc/init.d/openerp-server  
sudo chown root: /etc/init.d/openerp-server

Nel file di configurazione del server è presente una voce per il file di log. Prima di tutto bisogna creare la directory di log in modo che il server abbia un posto dove scrivere. Inoltre la directory deve essere scrivibile dall’utente openerp:

sudo mkdir /var/log/openerp  
sudo chown openerp:root /var/log/openerp

Note importanti

  • Non eseguire lo script come utente root se le impostazioni del daemon prevedono l’esecuzione con un utente dedicato (USER=openerp). Lo script usa start-stop-daemon per cambiare utente.
  • Verifica che i percorsi in DAEMON e CONFIGFILE corrispondano alla tua installazione.

Passo 8. Testare il server

Per avviare il server OpenERP digita:

sudo /etc/init.d/openerp-server start

Dopo l’avvio puoi visualizzare il logfile per accertarti che il server sia partito correttamente:

less /var/log/openerp/openerp-server.log

Se il server non si avvia, torna indietro e controlla errori di configurazione o dipendenze mancanti. Non continuare con i passaggi successivi finché il server non parte.

Se avvii il client GTK e lo punti verso il server appena creato, dovresti vedere una schermata di primo accesso come questa:

Login iniziale di OpenERP che mostra l'interfaccia di accesso

OpenERP segnala che non è ancora configurato alcun database. Questo conferma che il server accetta connessioni.

Consiglio pratico: cambia subito la password di super-amministratore. Di default è “admin”. Con quella password un utente può creare, eseguire backup, ripristinare o cancellare database. Nel client GTK: menu File -> Databases -> Administrator Password.

Attenzione: questa password viene salvata in chiaro nel file /etc/openerp-server.conf. Per questo motivo abbiamo limitato l’accesso al file a openerp e root. Dopo aver modificato la password, il comportamento dell’applicazione potrebbe riscrivere il file di configurazione rimuovendo commenti e riordinando voci.

Ora verifica che il server si arresti correttamente:

sudo /etc/init.d/openerp-server stop

Controlla nuovamente il logfile e/o la lista dei processi per assicurarti che il server sia terminato.

Passo 9. Automatizzare avvio e arresto del server

Se tutto funziona, configura lo script per avviarsi automaticamente con il sistema Ubuntu:

sudo update-rc.d openerp-server defaults

Puoi provare a riavviare il server. OpenERP dovrebbe essere attivo quando ti riconnetti.

Per verificare che il processo sia attivo, esegui:

ps aux | grep openerp

Dovresti vedere una riga simile a questa che conferma l’esecuzione del processo python per OpenERP:

openerp 708 3.8 5.8 181716 29668 ? Sl 21:05 0:00 python /opt/openerp/server/bin/openerp-server.py -c /etc/openerp-server.conf

Puoi anche usare il logfile o il client GTK per ulteriori verifiche.

Passo 10. Configurare e automatizzare il Web Client

Il web client è un’altra applicazione server che permette agli utenti di connettersi via browser invece che tramite il client GTK. L’installazione segue gli stessi passaggi descritti prima (configurazione, script di avvio, test, automazione).

La configurazione di esempio del web client si trova in /opt/openerp/web/doc/openerp-web.cfg e contiene impostazioni come porta, host e logging. Ecco la sezione principale di esempio:

[global]
server.environment = "development"

# Some server parameters that you may want to tweak
server.socket_host = "0.0.0.0"
server.socket_port = 8080

# Sets the number of threads the server uses
server.thread_pool = 10

tools.sessions.on = True
tools.sessions.persistent = False

# Simple code profiling
server.profile_on = False
server.profile_dir = "profile"

# if this is part of a larger site, you can set the path
# to the TurboGears instance here
#server.webpath = ""

# Set to True if you are deploying your App behind a proxy
# e.g. Apache using mod_proxy
#tools.proxy.on = True

# If your proxy does not add the X-Forwarded-Host header, set
# the following to the *public* host url.
#tools.proxy.base = 'http://mydomain.com'

# logging
#log.access_file = "/var/log/openerp-web/access.log"
log.error_file = "/var/log/openerp/openerp-web-error.log"
log.access_level = "INFO"
log.error_level = "INFO"

# Set to false to disable CSRF checks
tools.csrf.on = True

# replace builtin traceback tools by cgitb
tools.log_tracebacks.on: False
tools.cgitb.on: True
# a default install can probably avoid logging those via cgitb as they're
# available in the server log
tools.cgitb.ignore=(
    openobject.errors.Concurrency,
    openobject.errors.TinyException)

# OpenERP Server
openerp.server.host = 'localhost'
openerp.server.port = '8070'
openerp.server.protocol = 'socket'
openerp.server.timeout = 450

# Web client settings
[openerp-web]
# filter dblists based on url pattern?
# NONE: No Filter
# EXACT: Exact Hostname
# UNDERSCORE: Hostname_
# BOTH: Exact Hostname or Hostname_

dblist.filter = 'NONE'

# whether to show Databases button on Login screen or not
dbbutton.visible = True

# will be applied on company logo
company.url = ''

Per l’installazione sullo stesso server, copia il file di configurazione in /etc/ con nome openerp-web.conf e imposta proprietario e permessi come per il server:

sudo chown openerp:root /etc/openerp-web.conf  
sudo chmod 640 /etc/openerp-web.conf

Ecco lo script di avvio del web client (da collocare in /etc/init.d/ come openerp-web):

#!/bin/sh

### BEGIN INIT INFO
# Provides:             openerp-web
# Required-Start:       $remote_fs $syslog
# Required-Stop:        $remote_fs $syslog
# Should-Start:         $network
# Should-Stop:          $network
# Default-Start:        2 3 4 5
# Default-Stop:         0 1 6
# Short-Description:    OpenERP Web - the Web Client of the OpenERP
# Description:          Open ERP is a complete ERP and CRM software.
### END INIT INFO

PATH="/sbin:/bin:/usr/sbin:/usr/bin"
DAEMON="/opt/openerp/web/openerp-web.py"
NAME="openerp-web"
DESC="openerp-web"

# Specify the user name (Default: openerp).
USER=openerp

# Specify an alternate config file (Default: /etc/openerp-web.conf).
CONFIGFILE="/etc/openerp-web.conf"

# pidfile
PIDFILE=/var/run/$NAME.pid

# Additional options that are passed to the Daemon.
DAEMON_OPTS="-c $CONFIGFILE"

[ -x $DAEMON ] || exit 0
[ -f $CONFIGFILE ] || exit 0

checkpid() {
    [ -f $PIDFILE ] || return 1
    pid=`cat $PIDFILE`
    [ -d /proc/$pid ] && return 0
    return 1
}

case "${1}" in
        start)
                echo -n "Starting ${DESC}: "

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        stop)
                echo -n "Stopping ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                echo "${NAME}."
                ;;

        restart|force-reload)
                echo -n "Restarting ${DESC}: "

                start-stop-daemon --stop --quiet --pidfile ${PIDFILE} \
                        --oknodo

                sleep 1

                start-stop-daemon --start --quiet --pidfile ${PIDFILE} \
                        --chuid ${USER} --background --make-pidfile \
                        --exec ${DAEMON} -- ${DAEMON_OPTS}

                echo "${NAME}."
                ;;

        *)
                N=/etc/init.d/${NAME}
                echo "Usage: ${NAME} {start|stop|restart|force-reload}" >&2
                exit 1
                ;;
esac

exit 0

Imposta permessi e proprietario:

sudo chmod 755 /etc/init.d/openerp-web  
sudo chown root: /etc/init.d/openerp-web

Avvia il web client:

sudo /etc/init.d/openerp-web start

Verifica il funzionamento controllando il logfile, la lista dei processi e collegandoti via browser. Di norma il web client ascolta sulla porta 8080; l’URL tipico è:

http://my-ip-or-domain:8080

Assicurati anche che il web client si arresti correttamente:

sudo /etc/init.d/openerp-web stop

E infine automatizza l’avvio al boot:

sudo update-rc.d openerp-web defaults

A questo punto sia il server che il web client dovrebbero avviarsi e arrestarsi automaticamente al riavvio del server.


Controlli di verifica rapidi

  • File di configurazione: /etc/openerp-server.conf e /etc/openerp-web.conf presenti e permessi 640.
  • Directory log: /var/log/openerp presente e di proprietà openerp:root.
  • Script in /etc/init.d/ con permessi 755 e proprietario root.
  • Processi avviati: ps aux | grep openerp.
  • Porte: web client su 8080 (sezione config), connessione dal browser funzionante.

Checklist per ruoli

  • Amministratore di sistema

    • Verificare permessi e proprietà dei file di configurazione e script.
    • Configurare update-rc.d per entrambi i servizi.
    • Testare riavvio del server.
  • Amministratore applicativo

    • Cambiare la password super-admin e testare login.
    • Verificare backup e restore dei database.
  • Sviluppatore

    • Controllare i log per eccezioni e profili di performance.
    • Abilitare profiling in ambiente di sviluppo solo quando necessario.

Criteri di accettazione

  • Entrambi i servizi (server e web client) si avviano automaticamente al boot.
  • I processi rispondono e accettano connessioni (ps e accesso via client/browser).
  • I log vengono scritti in /var/log/openerp senza errori critici all’avvio.
  • La password super-admin è stata cambiata e il file di configurazione non è accessibile ad utenti non autorizzati.

Test case essenziali

  1. Avvio manuale server

    • Comando: sudo /etc/init.d/openerp-server start
    • Successo: processo in esecuzione, log con “Starting” e nessun errore fatale.
  2. Arresto manuale server

    • Comando: sudo /etc/init.d/openerp-server stop
    • Successo: processo terminato, PID scomparso, log registra lo stop.
  3. Avvio web client

    • Comando: sudo /etc/init.d/openerp-web start
    • Successo: accesso via browser su porta 8080, pagine caricate.
  4. Riavvio del sistema

    • Comando: sudo reboot
    • Successo: al login i servizi sono attivi e rispondono.

Problemi comuni e risoluzioni rapide

  • Errore: “Permission denied” per /var/log/openerp

    • Soluzione: sudo chown openerp:root /var/log/openerp && sudo chmod 750 /var/log/openerp
  • Il processo non parte perché DAEMON non è eseguibile

    • Soluzione: verificare il percorso DAEMON e i permessi di esecuzione (chmod +x).
  • Il servizio parte ma il web client non risponde

    • Soluzione: controllare server.socket_port in openerp-web.conf, firewall e SELinux/AppArmor.
  • La password super-admin è visibile in chiaro

    • Soluzione: limitare permessi del file di configurazione e usare accesso sicuro al server. Valutare cifratura esterna per backup.

Sicurezza e privacy

  • Il file /etc/openerp-server.conf contiene la password super-admin in chiaro. Limitare l’accesso ai soli utenti openerp e root (permessi 640).
  • Proteggi la directory dei log e i backup dei database. Conserva i backup in un’area cifrata o accessibile solo agli amministratori.
  • Se esponi il web client pubblicamente, usa un reverse proxy con TLS (HTTPS) e abilita controlli di accesso.
  • Considerazioni GDPR: i dati degli utenti risiedono sul server. Assicurati di avere processi di retention e cancellazione conformi e di proteggere i backup.

Mini-metodologia di deploy

  1. Preparazione: installare dipendenze e creare utente openerp.
  2. Configurazione: posizionare i file /etc/openerp-server.conf e /etc/openerp-web.conf.
  3. Permessi: impostare owner e permessi corretti su file e directory.
  4. Script: posizionare gli init script in /etc/init.d/ e rendere eseguibili.
  5. Test: avviare manualmente, controllare log e connettività.
  6. Automazione: update-rc.d per avvio automatico.
  7. Sicurezza: cambiare super-admin, verificare backup e TLS.

Tabella riepilogativa dei percorsi principali

  • Script init server: /etc/init.d/openerp-server
  • Script init web client: /etc/init.d/openerp-web
  • Config server: /etc/openerp-server.conf
  • Config web client: /etc/openerp-web.conf
  • Log: /var/log/openerp/

Sintesi finale

Questo documento ti guida a installare e automatizzare il server OpenERP e il relativo web client su Ubuntu Server. Copre la collocazione degli script di avvio, i permessi necessari, il controllo dei log, i test di avvio/arresto e la configurazione per l’avvio automatico al boot. Include checklist, test case e raccomandazioni di sicurezza per ridurre rischi operativi.

Important: cambia la password super-admin subito dopo l’installazione e limita l’accesso ai file di configurazione e ai backup.

Autore
Redazione

Materiali simili

Recuperare foto e video view once WhatsApp
WhatsApp Android

Recuperare foto e video view once WhatsApp

Installare Icecast 2.3.3 su CentOS 6.3 — Guida completa
Streaming

Installare Icecast 2.3.3 su CentOS 6.3 — Guida completa

Call Widget Google Voice per il tuo sito
Integrazione web

Call Widget Google Voice per il tuo sito

Vedere i post a cui hai messo Mi piace su Instagram
Social Media

Vedere i post a cui hai messo Mi piace su Instagram

Mostrare informazioni di sistema sul desktop Windows
Guide Windows

Mostrare informazioni di sistema sul desktop Windows

Installare e automatizzare OpenERP su Ubuntu
DevOps

Installare e automatizzare OpenERP su Ubuntu