Odoo 9 - Installation sur Centos 7

De wikiGite

Installation

https://techjourney.net/install-odoo-8-openerp-in-centos-red-hat-enterprise-linux/

https://panovski.me/install-odoo-8-on-centos-7/

Pré-requis

yum install --enablerepo=epel postgresql postgresql-server postgresql-devel postgresql-libs
postgresql-setup initdb
systemctl enable postgresql
systemctl start postgresql
su - postgres -c "createuser -s odoo" 2> /dev/null || true  

Odoo par RPM

Déclarer le dépôt EPEL, puis :

yum-config-manager --add-repo=https://nightly.odoo.com/9.0/nightly/rpm/odoo.repo
yum install odoo --enablerepo=epel
systemctl enable odoo
systemctl start odoo # Odoo écoute sur TCP 8069

Vérifier que les bases template* de Postgresql soient en UTF8 :

# su - postgres
$ psql
postgres=# \l
    Nom    | Propriétaire | Encodage | Collationnement | Type caract. |    Droits d'accès     
-----------+--------------+----------+-----------------+--------------+-----------------------
 postgres  | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | 
 template0 | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | =c/postgres          +
           |              |          |                 |              | postgres=CTc/postgres
 template1 | postgres     | UTF8     | fr_FR.UTF-8     | fr_FR.UTF-8  | =c/postgres          +
           |              |          |                 |              | postgres=CTc/postgres
(3 lignes)

postgres=# \q

Sur Vesta, paramétrer une redirection nginx:

# vi /etc/nginx/conf.d/odoo.conf
server {
    listen      192.168.0.11:80;
    server_name odoo.domaine.com;
    error_log  /var/log/httpd/odoo.domaine.com.error.log error;
    location / {
        proxy_pass      http://192.168.0.11:8069;
   }
}
systemctl restart nginx

Naviguer sur http://odoo.domaine.com et remplir le formulaire de première installation

Configuration

Multibase

Odoo a une logique particulière concernant le multibase. Par défaut, il affiche la liste des bases créées sur l'écran de login, on en sélectionne une et on se connecte.

ça a deux désavantages : on ne veut pas forcément que la liste des toutes les bases apparaissent (quand on donne accès à une des bases à un client, par exemple), et par ailleurs le lien envoyé dans les mails venant d'Odoo (exemple : mail suite à création d'un utilisateur, mail de changement de mot de passe, mass mailing, etc...) ne fonctionne pas (erreur 404 : page non trouvée).

La solution d'Odoo est donc de pré-sélectionner la base avant d'arriver sur la page de login. Seul moyen : lui dire d'extraire tout ou partie de l'URL et de sélectionner la base qui correspond. Pour ça il faut donc :

  • dans /etc/odoo/openerp-server.conf, modifier :
dbfilter = ^%d$
list_db = False

Le premier extrait le nom d'hôte (%d) de l'URL sans le domaine, le second désactive la liste des bases sur l'écran de login.

  • ensuite, créer un alias DNS qui contient le nom de la base. Par exemple, si la base créée s'appelle "mabase", créer un alias DNS "mabase.domaine.com" qui pointe vers le serveur.
  • déclarer ce même alias dans la configuration nginx :
    server_name odoo.domaine.com mabase.domaine.com ;

En appelant cette URL, Odoo extraiera "mabase", la sélectionnera automatiquement et proposera la page de login correspondante.


TODO : forcer https