Les précédentes procédures d'installation décrites dans ce blog (OpenERP7, OpenERP7 Ocb, OpenERP 8) ne sont plus d'actualité depuis le renommage de OpenERP en ODOO et le passage de Launchpad à Github.
Nous allons décrire la procédure d'installation de la v8 Odoo sur une debian 7.3, à partir de Github.
Environnement technique
- serveur virtualisé Debian 7.3 (version 32 bits) sur lequel sera installé ODOO
- navigateur sur PC Linux Mint 14 à partir duquel on accédera à ODOO
Description
Se connecter sur le serveur debian avec les droits "root"
Création de l'utilisateur linux "odoo" :
adduser --system --quiet --shell=/bin/bash --home=/home/odoo --gecos 'ODOO' --group odoo
Installation de la base de données PG 9.1 (PG=PostgreSQL) :
apt-get install postgresql
Créer l'utilisateur PG "odoo"
su - postgres -c "createuser -s odoo" 2> /dev/null || true
Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo"
su - postgres
psql
\password postgres
\password odoo
q
Se repositionner avec les droits "root"
Installer les dépendances nécessaires au bon fonctionnement de ODOO :
apt-get install python-dateutil python-feedparser python-ldap python-libxslt1 python-lxml python-mako python-openid python-psycopg2 python-pybabel python-pychart python-pydot python-pyparsing python-reportlab python-simplejson python-tz python-vatnumber python-vobject python-webdav python-werkzeug python-xlwt python-yaml python-zsi python-docutils python-psutil python-mock python-unittest2 python-jinja2 python-pypdf python-decorator python-requests git-core python-passlib
Ajouter la
dernière version de la librairie gdata-python-client depuis
http://code.google.com/p/gdata-python-client/downloads/list:
cd /tmp
wget http://gdata-python-client.googlecode.com/files/gdata-2.0.18.tar.gz
tar zxvf gdata-2.0.18.tar.gz
cd gdata-2.0.18/
python setup.py install
Installer les outils wkhtmltopdf et wkhtmltoimage (nom du package wkhtmltox à adapter selon version linux 32 ou 64 bits)
cd /tmp
# nouvelle version 0.12.2.1
wget http://sourceforge.net/projects/wkhtmltopdf/files/0.12.2.1/wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
dpkg -i wkhtmltox-0.12.2.1_linux-wheezy-i386.deb
(il vous faudra peut-être ajouter : apt-get install xfonts-75dpi)
cp /usr/local/bin/wkhtmltopdf /usr/bin
cp /usr/local/bin/wkhtmltoimage /usr/bin
Si vous avez un pb d'impression du pied de page, appliquer la procédure suivante
Se connecter avec l'utilisateur linux "odoo"
su - odoo
Récupérer la dernière version de ODOO v8 du repository Github (cela va prendre plusieurs minutes)
git clone https://www.github.com/odoo/odoo --branch 8.0
Lancer le serveur ODOO :
cd /home/odoo/odoo
./openerp-server
Lancer dans votre navigateur, l'url : <adresse ip du serveur>:8069 pour passer à l'étape suivante de création des données de la BD
Voici un moyen simple pour démarrer ODOO au boot du serveur Debian, qui consiste à ajouter
la ligne suivante dans le fichier /etc/rc.local :
su - odoo -c "/home/odoo/odoo/openerp-server --logfile=/var/log/odoo/odoo.log &"
Optionnel : rendre accessible la BD à distance (ex: pour pgadmin3)
- maj de la ligne suivante dans le fichier /etc/postgresql/9.1/main/postgresql.conf
listen_addresses = '*' # what IP address(es) to listen on;
- maj des lignes suivantes dans le fichier /etc/postgresql/9.1/main/pg_hba.conf
#host all all 127.0.0.1/32 md5
host all all 0.0.0.0/0 md5
Relancer PostgreSQL pour prendre en compte ces modifications :
service postgresql restart
Petite précision pour compléter le guide pour ceux qui n'ont pas l'habitude de Debian
"Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo", pour cela lancer psql sous le user linux "postgres" puis les commandes suivantes : "
Le user linux "postgres" est un utilisateur spécial, on ne peut pas se "connecter" avec comme on le fait avec les users classiques. Pour cela il faut prendre l'identité de l'user linux "postgres" en root grâce à la commande
su -l postgres
maintenant on peut lancer la commande "psql" pour accéder à la console de postgressql.
On pourrait donc rajouter une ligne au guide
"Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo"
pour cela lancer psql sous le user linux "postgres" :
su -l postgres
puis les commandes suivantes :
password postgres
password odoo"
Merci pour ce tuto qui m'a grandement aidé ! (ainsi que le commentaire ci-dessus)
J'ajouterai également une précision sur "se repositionner avec les droits root" qui m'a bloqué (je n'y connais pas grand chose en linux…) : il faut tout d'abord quitter Postgres puis se positionner en root ("su" puis le mot de passe).
Merci pour ce très bon tuto.
Petites précisions :
– Pour quitter Postgres, il faut taper "q"
– les paquets wkhtmltopdf et wkhtmltoimage existent en version 64B, il suffit de remplacer i386 par amd64 dans les commandes concernées.
Une demande pour terminer 😉
Quelle commande peu-t-on ajouter pour lancer Odoo automatiquement lors du démarrage du serveur ?
Merci.
Xavier
Pour la relance automatique au démarrage du serveur, je vous invite à appliquer l'étape 7 du l'article suivant : http://www.theopensourcerer.com/2014/09/how-to-install-openerp-odoo-8-on-ubuntu-server-14-04-lts
Un moyen plus simple mais moins élégant pour démarrer ODOO au boot du serveur Debian consiste à ajouter la ligne suivante dans le fichier /etc/rc.local :
su – odoo -c "/home/odoo/odoo/openerp-server 1>/dev/null 2>&1 &"
super tuto
Pas mal comme article.
Pour ceux qui auraient envie d'automatiser le déploiement de serveurs Odoo, il existe aussi des services comme https://www.myerpengine.com .
Super ! Merci pour ce tuto.
On peut sinon, comme la doc officielle l'indique remplacer le git clone par :
wget -O – https://nightly.odoo.com/odoo.key | apt-key add –
echo "deb http://nightly.odoo.com/8.0/nightly/deb/ ./" >> /etc/apt/sources.list
apt-get update && apt-get install odoo
Ce qui permet d'installer odoo en service démarré avec le serveur, et d'avoir des mises à jour ultra rapide avec un simple apt-get.
Bonjour super tuto et d'avance merci de votre aide
Je ne suis pas très doué mais je suis parvenu à m'en sortir .
Toute fois après redémarrage de la base de donner je me retrouve avec une : "500 internal server error" petite recherche sur G et je trouve ça: faire la mise à jours de Framewark ??
mais pas vraiment comment ?
sinon coté terminal j'ai ca :
aumon@aumon-VirtualBox:~$ cd /home/odoo/odoo
aumon@aumon-VirtualBox:/home/odoo/odoo$ ./openerp-server
2015-02-26 10:15:31,533 2762 INFO ? openerp: OpenERP version 8.0
2015-02-26 10:15:31,534 2762 INFO ? openerp: addons paths: ['/home/aumon/.local/share/Odoo/addons/8.0', u'/home/odoo/odoo/openerp/addons', u'/home/odoo/odoo/addons']
2015-02-26 10:15:31,534 2762 INFO ? openerp: database hostname: localhost
2015-02-26 10:15:31,534 2762 INFO ? openerp: database port: 5432
2015-02-26 10:15:31,534 2762 INFO ? openerp: database user: aumon
2015-02-26 10:15:31,698 2762 INFO ? openerp.service.server: HTTP service (werkzeug) running on 0.0.0.0:8069
Exception in thread openerp.service.httpd:
Traceback (most recent call last):
File "/usr/lib/python2.7/threading.py", line 810, in __bootstrap_inner
self.run()
File "/usr/lib/python2.7/threading.py", line 763, in run
self.__target(*self.__args, **self.__kwargs)
File "/home/odoo/odoo/openerp/service/server.py", line 282, in http_thread
self.httpd = ThreadedWSGIServerReloadable(self.interface, self.port, app)
File "/home/odoo/odoo/openerp/service/server.py", line 92, in __init__
handler=RequestHandler)
File "/usr/lib/python2.7/dist-packages/werkzeug/serving.py", line 410, in __init__
HTTPServer.__init__(self, (host, int(port)), handler)
File "/usr/lib/python2.7/SocketServer.py", line 419, in __init__
self.server_bind()
File "/home/odoo/odoo/openerp/service/server.py", line 102, in server_bind
super(ThreadedWSGIServerReloadable, self).server_bind()
File "/usr/lib/python2.7/BaseHTTPServer.py", line 108, in server_bind
SocketServer.TCPServer.server_bind(self)
File "/usr/lib/python2.7/SocketServer.py", line 430, in server_bind
self.socket.bind(self.server_address)
File "/usr/lib/python2.7/socket.py", line 224, in meth
return getattr(self._sock,name)(*args)
error: [Errno 98] Adresse déjà utilisée
Cette erreur apparaît quand on lance une 2ème instance Odoo avec le même port que sur la 1ère (ex: 8069).
re Bonjour après qq recherche j'ai trouvé ce code :
gksudo gedit /etc/rc.local:
qui permet l'installation d'une appli qui peut modifier le fichier /etc/rc.local pour y ajouter :
su – odoo -c "/home/odoo/odoo/openerp-server 1>/dev/null 2>&1 &"
et c'est ok Ca fonctionne
Oui, j'avais indiqué aussi cette solution dans mon commentaire du 12/12/2014 13h57
J'ai changé la configuration d'open erp pour se connecter à un serveur de base de données postgresql différent dans Openerp-server.conf.
open erp ne prend pas en compte ce changement et se connecte toujours au serveur postgresql local
avez vous une idée ?
Merci
En valorisant correctement dans le fichier openerp-server.conf, la variable db_host avec le nom ou l'adresse IP du serveur BD, cela fonctionne
Il existe une autre façon d'installer Odoo sur Debian :
wget -O – https://nightly.odoo.com/odoo.key | apt-key add –
echo "deb http://nightly.odoo.com/8.0/nightly/deb/ ./" >> /etc/apt/sources.list
apt-get update && apt-get install odoo
Le code est sous /usr/lib/python2.7/dist-packages/openerp/
Le fichier de configuration "openerp-server.conf" est sous /etc/odoo
Le fichier de log est sous /var/log/odoo
Pour arrêter ou lancer odoo : service odoo start|stop
Il faut aussi ajouter wkhtmltopdf
Salut Mayjo79
J'ai repris odoo depuis quelque temps. Afin de bien comprendre le processus d'installation, j'ai fait de nombreux tests.
Peux-tu expliquer plus en détail la ligne suivante
sudo su – postgres -c "createuser –superuser odooadmin" 2> /dev/null || true
Elle est à l'origine de nombreuses erreurs de ma part.
A l'inverse, je ne vois pas l'intérêt de l'opération
– Mettre un mot de passe aux utilisateurs PG "postgres" et "odoo"
Question complémentaire,
Pour quelle raison ne pas simple faire
odoo.py setup_deps
odoo.py setup_pg
Merci
A la date de l'article, je n'avais pas connaissance de cela … mais Il est effectivement possible d'utiliser les commandes :
odoo.py setup_deps (pour installer les dépendances)
odoo.py setup_pg (pour installer et configurer PostgreSQL)
Peux-tu expliquer plus en détail la ligne suivante
sudo su – postgres -c "createuser –superuser odoo" 2> /dev/null || true
Avec le compte postgres création de l'utilisateur odoo mais la suite je dois avouer que je ne comprends pas
"2> /dev/null || true"
Cela serait suffisant d'exécuter :
su – postgres -c "createuser -s odoo"
la suite de la commande est un reste inutile de ma procédure d'installation de la v7 :
"2>/dev/null" indique de ne pas afficher les éventuelles erreurs
pour "||true" … je sèche
Bonjour à tous,
Tout d'abord j'aimerai vous remercier pour ce tuto.
J'ai commencé l'installation, malheureusement je rencontre une erreur.Quand je lance mon navigateur :8069
La console m'affiche le message suivant
2015-06-02 12:16:22,776 3507 ERROR ? openerp.addons.bus.bus: Bus.loop error, sleep and retry
Traceback (most recent call last):
File "/home/odoo/odoo/addons/bus/bus.py", line 136, in run
self.loop()
File "/home/odoo/odoo/addons/bus/bus.py", line 114, in loop
with openerp.sql_db.db_connect('postgres').cursor() as cr:
File "/home/odoo/odoo/openerp/sql_db.py", line 575, in cursor
return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)
File "/home/odoo/odoo/openerp/sql_db.py", line 181, in __init__
self._cnx = pool.borrow(dsn)
File "/home/odoo/odoo/openerp/sql_db.py", line 464, in _locked
return fun(self, *args, **kwargs)
File "/home/odoo/odoo/openerp/sql_db.py", line 526, in borrow
result = psycopg2.connect(dsn=dsn, connection_factory=PsycoConnection)
File "/usr/lib/python2.7/dist-packages/psycopg2/__init__.py", line 164, in connect
conn = _connect(dsn, connection_factory=connection_factory, async=async)
OperationalError: FATAL: role "odoo" does not exist
Surtout n'hésitez pas si vous pas si vous avez une idée.
Je vous remercie d'avance.
c'est sans doute dû au fait que vous n'avez pas créé l'utilisateur "odoo" sous PostgreSQL
Bon joir, greetings from the end of the world (Chile), voce tem um moito bom tutorial como e fala amigo brasileiro 🙂 and for me that i'm lover of the language, read this in your words are pretty clear. Regards from un Chileno 😀
Muito obrigado
Bonjour à tous,
J'ai suivi le tuto de A à Z, merci c'est très clair.
Seulement, des que j'essaye de créer la moindre base de donnée via le database manager, j'ai l'erreur suivant dans mon terminale.
2015-10-19 15:47:53,000 10673 ERROR None openerp.sql_db: bad query: CREATE DATABASE "test" ENCODING 'unicode ' TEMPLATE "template1"
Traceback (most recent call last):
File "/home/odoo/odoo/openerp/sql_db.py", line 234, in execute
res = self._obj.execute(query, params)
DataError: new encoding (UTF8) is incompatible with the encoding of the template database (SQL_ASCII)
HINT: Use the same encoding as in the template database, or use template0 as template.
Une idée ?
Merci
la solution à votre problème est peut-être ici : https://agipme.fr/2015/05/odoo8-erreur-new-encoding-utf8-is.html
Merci Mayjo79,
En effet, ça a résolu le problème.
Merci encore,
A+
comment sauvegarder et restaurer en cmd
Bonjour à tous , s'il vous plait j'ai un problème avec l'installation de Odoo. j'ai suivi la tuto ci dessus et tout c'est bien passé. j'ai installé des modules tel que le module de comptabilité.Après installation il y a un message d'erreur s'il vous plait aidez moi
File "/home/odoo/odoo/openerp/api.py", line 238, in wrapper
return old_api(self, *args, **kwargs)
File "/home/odoo/odoo/openerp/addons/base/ir/ir_ui_view.py", line 635, in read_combined
view_arch = etree.fromstring(view['arch'].encode('utf-8'))
File "lxml.etree.pyx", line 3092, in lxml.etree.fromstring (src/lxml/lxml.etree.c:70691)
File "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:106689)
File "parser.pxi", line 1716, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:105478)
File "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:100105)
File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94543)
File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:96003)
File "parser.pxi", line 620, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:95050)
XMLSyntaxError: Opening and ending tag mismatch: h4 line 645 and br, line 645, column 106
Bonjour à tous , s’il vous plait j’ai un problème avec l’installation de Odoo. j’ai suivi la tuto ci dessus et tout c’est bien passé. lorsque je fait deux ou troisième modules après installation il y a un message d’erreur s’il vous plait aidez moi
Odoo Server Error
Traceback (most recent call last):
File « /odoo/odoo-server/openerp/http.py », line 643, in _handle_exception
return super(JsonRequest, self)._handle_exception(exception)
File « /odoo/odoo-server/openerp/http.py », line 680, in dispatch
result = self._call_function(**self.params)
File « /odoo/odoo-server/openerp/http.py », line 316, in _call_function
return checked_call(self.db, *args, **kwargs)
File « /odoo/odoo-server/openerp/service/model.py », line 118, in wrapper
return f(dbname, *args, **kwargs)
File « /odoo/odoo-server/openerp/http.py », line 309, in checked_call
result = self.endpoint(*a, **kw)
File « /odoo/odoo-server/openerp/http.py », line 959, in __call__
return self.method(*args, **kw)
File « /odoo/odoo-server/openerp/http.py », line 509, in response_wrap
response = f(*args, **kw)
File « /odoo/odoo-server/addons/web/controllers/main.py », line 896, in call_button
action = self._call_kw(model, method, args, {})
File « /odoo/odoo-server/addons/web/controllers/main.py », line 884, in _call_kw
return getattr(request.registry.get(model), method)(request.cr, request.uid, *args, **kwargs)
File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
return old_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/addons/base/module/module.py », line 459, in button_immediate_install
return self._button_immediate_function(cr, uid, ids, self.button_install, context=context)
File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
return old_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/addons/base/module/module.py », line 533, in _button_immediate_function
registry = openerp.modules.registry.RegistryManager.new(cr.dbname, update_module=True)
File « /odoo/odoo-server/openerp/modules/registry.py », line 385, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File « /odoo/odoo-server/openerp/modules/loading.py », line 338, in load_modules
loaded_modules, update_module)
File « /odoo/odoo-server/openerp/modules/loading.py », line 237, in load_marked_modules
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
File « /odoo/odoo-server/openerp/modules/loading.py », line 156, in load_module_graph
_load_data(cr, module_name, idref, mode, kind=’data’)
File « /odoo/odoo-server/openerp/modules/loading.py », line 98, in _load_data
tools.convert_file(cr, module_name, filename, idref, mode, noupdate, kind, report)
File « /odoo/odoo-server/openerp/tools/convert.py », line 851, in convert_file
convert_xml_import(cr, module, fp, idref, mode, noupdate, report)
File « /odoo/odoo-server/openerp/tools/convert.py », line 938, in convert_xml_import
obj.parse(doc.getroot(), mode=mode)
File « /odoo/odoo-server/openerp/tools/convert.py », line 801, in parse
self.parse(rec, mode)
File « /odoo/odoo-server/openerp/tools/convert.py », line 804, in parse
self._tags[rec.tag](self.cr, rec, de, mode=mode)
File « /odoo/odoo-server/openerp/tools/convert.py », line 777, in _tag_template
return self._tag_record(cr, record, data_node)
File « /odoo/odoo-server/openerp/tools/convert.py », line 708, in _tag_record
id = self.pool[‘ir.model.data’]._update(cr, self.uid, rec_model, self.module, res, rec_id or False, not self.isnoupdate(data_node), noupdate=self.isnoupdate(data_node), mode=self.mode, context=rec_context )
File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
return old_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/addons/base/ir/ir_model.py », line 1122, in _update
res_id = model_obj.create(cr, uid, values, context=context)
File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
return old_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/addons/base/ir/ir_ui_view.py », line 351, in create
context=context)
File « /odoo/odoo-server/openerp/api.py », line 250, in wrapper
return old_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/api.py », line 354, in old_api
result = method(recs, *args, **kwargs)
File « /odoo/odoo-server/openerp/models.py », line 4131, in create
record = self.browse(self._create(old_vals))
File « /odoo/odoo-server/openerp/api.py », line 248, in wrapper
return new_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/api.py », line 490, in new_api
result = method(self._model, cr, uid, *args, **old_kwargs)
File « /odoo/odoo-server/openerp/models.py », line 4322, in _create
recs._validate_fields(vals)
File « /odoo/odoo-server/openerp/api.py », line 248, in wrapper
return new_api(self, *args, **kwargs)
File « /odoo/odoo-server/openerp/models.py », line 1270, in _validate_fields
raise ValidationError(‘\n’.join(errors))
ParseError: « Invalid view definition
D\xe9tails de l’erreur :
L’\xe9l\xe9ment » ne peut \xeatre localis\xe9 dans la vue parente
Contexte de l’erreur :
Vue `report.external_layout_header`
[view_id: 176, xml_id: report.external_layout_header, model: n/a, parent_id: n/a]
None » while parsing None:9, near
stock.external_layout_header_barcode_right
bonjour a tous j'ai un problème avec mon installation de odoo. après installation tout est bien passé, mais lorsque j'ai installé le module de comptabilité j'ai des messages d'erreur:
view_arch = etree.fromstring(view['arch'].encode('utf-8'))
File "lxml.etree.pyx", line 3092, in lxml.etree.fromstring (src/lxml/lxml.etree.c:70691)
File "parser.pxi", line 1828, in lxml.etree._parseMemoryDocument (src/lxml/lxml.etree.c:106689)
File "parser.pxi", line 1716, in lxml.etree._parseDoc (src/lxml/lxml.etree.c:105478)
File "parser.pxi", line 1086, in lxml.etree._BaseParser._parseDoc (src/lxml/lxml.etree.c:100105)
File "parser.pxi", line 580, in lxml.etree._ParserContext._handleParseResultDoc (src/lxml/lxml.etree.c:94543)
File "parser.pxi", line 690, in lxml.etree._handleParseResult (src/lxml/lxml.etree.c:96003)
File "parser.pxi", line 620, in lxml.etree._raiseParseError (src/lxml/lxml.etree.c:95050)
XMLSyntaxError: Opening and ending tag mismatch: h4 line 645 and br, line 645, column 106d
Bonjour à tous,
Petite question, j’ai installé odoo 8 sur ubuntu 14 et cela fonctionne. Lorsque je veux installer mon fichier .dump de mon ancien odoo 8 provenant d’un serveur en vps il me dit, « impossible d’installer la base » … j’ai aussi remplacé le dossier addons par celui du serveur et installé les appli équivalentes au cas où … Rien y fait.
Une idée?
Vous parlez bien d’un fichier .zip issu d’un backup Odoo ?
Bonjour
s’il vous plait j’aimerais savoir s’il est possible d’annuler un bon de commande après que le stock est été débité
Je vous invite plutôt à poser ce type de question dans un forum Odoo (en précisant la version Odoo).