Installer Odoo 8 ex openerp sur Centos 7, nginx, SSL

in #odoo7 years ago (edited)

Vous pouvez également utiliser Hebus pour installer automatiquement Odoo ici : INSTALLATION AUTOMATIQUE DE ODOO

Nous allons installer Odoo sur une nouvelle machine CENTOS 7 , dans un environnement virtuel depuis les sources Github.

Installation de Odoo :
1 : Installation de PostgreSQL depuis le repo officiel :

rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-7-x86_64/pgdg-centos93-9.3-1.noarch.rpm 
yum -y install postgresql93 postgresql93-server postgresql93-devel --disablerepo=* --enablerepo=pgdg93 
  1. Initialissation de la base de données et activation du service au redémarrage de la machine :

    /usr/pgsql-9.3/bin/postgresql93-setup initdb
    systemctl enable postgresql-9.3.service
    systemctl start postgresql-9.3

création de l’utilisateur odoo :

su - postgres -c "createuser -s odoo" 2> /dev/null || true 

installation des packages necessaires :

yum -y groupinstall "Development tools" 
yum -y install zlib-devel bzip2-devel openssl openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel 
libpcap-devel xz-devel git libpng libjpeg libXext curl xorg-x11-font-utils fontconfig python-virtualenv libevent-devel libxml2-
devel libxslt-devel openldap-devel openjpeg-devel freetype-devel libjpeg-turbo-devel libtiff-devel kernel-devel xorg-x11-fonts-
75dpi xorg-x11-fonts-Type1

Activer EPEL :

wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm 
rpm -ivh epel-release-7-5.noarch.rpm 


installation de wkhtmltopdf pour pouvoir imprimer des documents dans Odoo :

yum --enablerepo=epel install wkhtmltopdf 

wget http://downloads.sourceforge.net/wkhtmltopdf/wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

rpm -ivh wkhtmltox-0.12.2.1_linux-centos7-amd64.rpm

Installation de pip :

yum --enablerepo=epel install python-pip 

Clone de Odoo 8 depuis Github dans le répertoire /opt/odoo

git clone --branch 8.0 https://www.github.com/odoo/odoo /opt/odoo 

( pour faire un update de l’installation plus tard , il suffit de faire : git pull )

Création de l’environement virtuel pour Odoo:

useradd odoo 

chown -R odoo: /opt/odoo
su - odoo

Installation des packages nécessaires :

/bin/virtualenv odoo 

source odoo/bin/activate
PATH=$PATH:/usr/pgsql-9.3/bin
pip install -r /opt/odoo/requirements.txt
exit

Fichier de configuration et systemctl :

vi /etc/odoo-server.conf 

Ensuite insérer ceci dans le fichier :

[options] 
admin_passwd = admin 
db_host = False 
db_port = False 
db_user = odoo 
db_password = False 
addons_path = /opt/odoo/addons 
without-demo=all 
no-xmlrpc = True 
no-xmlrpcs = True 
no-netrpc = True 
log_db = False 
log_handler = ['['["[\':INFO\']"]']'] 
log_level = info 
logfile = False 
login_message = False 
logrotate = True 
syslog = False

Pour systemctl :

vi /usr/lib/systemd/system/odoo.service


[Unit] 
Description=Odoo 8.0 ERP and CRM server 
After=postgresql-9.3.service 
[Service] 
Type=simple 
User=odoo 
Group=odoo 
ExecStart=/home/odoo/odoo/bin/python /opt/odoo/openerp-server --config=/etc/odoo-server.conf 
[Install] 
WantedBy=multi-user.target 

installation de firewalld pour les images cloud CENTOS :

 yum install firewalld
service firewalld start

Ouverture du port 8069 ( si vous installez pas nginx ! )

 firewall-cmd --zone=public --add-port=8069/tcp --permanent 
firewall-cmd --reload 

Si Nginx va être installé :

firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --reload

Enfin démarer Odoo

systemctl enable odoo.service 
systemctl start odoo 

Si vous avec ouvert le port 8069 Odoo est accessible à : http://<adresse_ip_de_votre_serveur>:8069

Installation de Nginx :
yum install nginx
systemctl enable nginx

création du répertoir pour le certificat ssl :

mkdir /etc/nginx/ssl
cd /etc/nginx/ssl

Pour les certificat approuvé par une autoritée :
a) génération du CSR :

openssl req -new -newkey rsa:2048 -nodes -out VOTRE_NOM_DE_DOMAINE.csr -keyout VOTRE_NOM_DE_DOMAINE.key -subj 
"/C=INTIALES_DU_PAYS/ST=REGION /O=VOTRE_ORGANISATION SPRL/CN=VOTRE.NOMDE.DOMAINE"

vous pouvez également en généré un à l’aide de cet outil openssl

b) création du PEM

Une fois que vous avez reçu votre certificat en retour de l’autorité signataire, copié le contenu du fichier VOTRE_NOM_DE_DOMAINE.pem que vous avez reçu de leur part dans :

vi /etc/nginx/ssl/VOTRE_NOM_DE_DOMAINE.pem

ensuite créer le fichier de configuration Nginx :

vi /etc/nginx/conf.d/votresiteodoo.conf

et insérez y :

upstream oddo {
   server 127.0.0.1:8069;
}

server {
    listen      443 default;
    server_name VOTRE_NOM_DE_DOMAINE.COM;

exemple :

server_name odoo.com;

access_log  /var/log/nginx/oddo.access.log;
error_log   /var/log/nginx/oddo.error.log;

ssl on;
#### Il s'agit du nom des certificats SSL créer précédement 
ssl_certificate     /etc/nginx/ssl/VOTRE_NOM_DE_DOMAINE.PEM;
ssl_certificate_key /etc/nginx/ssl/VOTRE_NOM_DE_DOMAINE.key;
keepalive_timeout   60;

ssl_ciphers             HIGH:!ADH:!MD5;
ssl_protocols           SSLv3 TLSv1;
ssl_prefer_server_ciphers on;

proxy_buffers 16 64k;
proxy_buffer_size 128k;

location / {
    proxy_pass  http://oddo;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    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 https;
}

location ~* /web/static/ {
    proxy_cache_valid 200 60m;
    proxy_buffering on;
    expires 864000;
    proxy_pass http://oddo;
}

}

server {
listen 80;
server_name VOTRE_NOM_DE_DOMAINE.COM;

exemple :

server_name odoo.com;

add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$ https://$host$request_uri? permanent;

}

service nginx restart

Pour les certificat self signed :
cd /etc/nginx/ssl
openssl genrsa -des3 -passout pass:x -out server.pass.key 2048
openssl rsa -passin pass:x -in server.pass.key -out server.key
rm server.pass.key
openssl req -new -key server.key -out server.csr
openssl x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

ensuite créer le fichier de configuration Nginx :

vi /etc/nginx/conf.d/votresiteodoo.conf

et insérez y :

upstream oddo {
server 127.0.0.1:8069;
}

server {
listen 443 default;
server_name VOTRE_NOM_DE_DOMAINE.COM;

exemple :

server_name odoo.com;

access_log  /var/log/nginx/oddo.access.log;
error_log   /var/log/nginx/oddo.error.log;

ssl on;
ssl_certificate     /etc/nginx/ssl/server.crt;
ssl_certificate_key /etc/nginx/ssl/server.key;
keepalive_timeout   60;

ssl_ciphers             HIGH:!ADH:!MD5;
ssl_protocols           SSLv3 TLSv1;
ssl_prefer_server_ciphers on;

proxy_buffers 16 64k;
proxy_buffer_size 128k;

location / {
    proxy_pass  http://oddo;
    proxy_next_upstream error timeout invalid_header http_500 http_502 http_503 http_504;
    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 https;
}

location ~* /web/static/ {
    proxy_cache_valid 200 60m;
    proxy_buffering on;
    expires 864000;
    proxy_pass http://oddo;
}

}

server {
listen 80;
server_name VOTRE_NOM_DE_DOMAINE.COM;

exemple :

server_name odoo.com;

add_header Strict-Transport-Security max-age=2592000;
rewrite ^/.*$ https://$host$request_uri? permanent;

}

service nginx restart

Pour tout le monde :
Odoo est accessible à : https://<adresse_ip_de_votre_serveur>