[Update 2023] Installation d’Odoo 8 sur Ubuntu 20.04 ou Debian 11 avec et sans myVesta

Publié par David le

Mise à jour du système

sudo apt update &&
sudo apt dist-upgrade

Création de l’utilisateur odoo8, le domaine et l’arboresence

Avec myVesta

  • Créer simplement un utilisateur odoo8. Ceci créera l’arborescence /home/odoo8.
  • Créer le nom de domaine associé à l’utilisateur, ici ce sera nom_de_domaine_odoo8.com
  • Choisissez PHP-FPM-7.4 pour le nom de domaine
  • Créer une certificat SSL Let’s Encrypt ou renseignez le vôtre
    • Si vous avez une erreur 400 lors de la création de votre certicat Let’s Encrypt, voici une commande qui fonctionne bien sous myVesta
/usr/local/vesta/bin/v-add-letsencrypt-domain odoo8 nom_de_domaine_odoo8.com

Sans myVesta

sudo useradd -m -d /opt/odoo8 -U -r -s /bin/bash odoo8

Installation du serveur de base de donnée, Postgresql

Installer Postgresql avec myVesta

Suivre le tutoriel : https://bobcares.com/blog/setup-postgresql-on-linux-in-vesta/

Installer Postgresql sans myVesta

sudo apt install postgresql -y

Nous allons maintenant créer un nouvel utilisateur (odoo8) pour notre base de données

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

Choisissez un mot de passe pour cet utilisateur, ce sera le mot de passe d’accès base de donnée d’Odoo.

Installation de wkhtmltopdf

Pour pouvoir exporter des PDF, il faut installer un logiciel spécifique : wkhtmltopdf

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.4/wkhtmltox-0.12.4_linux-generic-amd64.tar.xz
tar -xvf wkhtmltox-0.12.4_linux-generic-amd64.tar.xz 
sudo cp ./wkhtmltox/bin/wkhtmltoimage /usr/bin/
sudo cp ./wkhtmltox/bin/wkhtmltopdf /usr/bin/
sudo sudo /opt/bitnami/ctlscript.sh restart

Vous pouvez avoir un problème lors de la génération des devis, des factures ou des bons de livraison. En effet, il peut manquer le logo ou le footer. Pour régler ce problème, dans Odoo 8 :

  • Settings > Technical > Parameters > System Parameters
    • web.base.url > Votre URL
    • report.url > http://127.0.0.1:8069 (ou votre port)

Source : https://www.odoo.com/fr_FR/forum/aide-1/how-to-change-the-value-of-web-base-url-to-get-the-correct-header-footer-css-82516

Installation de Python 2.7 et de pip2 sous Ubuntu 20.04 ou Debian 11

Seulement pour Ubuntu 20.04 :

sudo add-apt-repository universe

On installe les paquets de ce bon vieux Python 2

sudo apt update &&
sudo apt install python2 -y

Puis, on utilise curl pour télécharger le script get-pip.py et l’on installe pip2 pour récupérer les librairies nécessaires pour Odoo.

curl https://bootstrap.pypa.io/pip/2.7/get-pip.py --output get-pip.py &&
sudo python2 get-pip.py

On vérifie la bonne installation de pip2

pip2 --version

La réponse doit être

pip 20.3.4 from /usr/local/lib/python2.7/dist-packages/pip (python 2.7)

Source : 

https://linuxize.com/post/how-to-install-pip-on-ubuntu-20.04/

How to Install Pip 3 or 2 on Debian 11 Bullseye Linux

Installation du serveur Odoo

On crée le dossier des logs

sudo mkdir /var/log/odoo8/ &&
sudo chown odoo8: -R /var/log/odoo8/

Puis on installe Git

sudo apt install git -y

On change l’utilisateur bash par odoo8

sudo su - odoo8

On installe les librairies Python nécessaire grâce au requirements.txt

pip2 install -r https://raw.githubusercontent.com/odoo/odoo/8.0/requirements.txt

Si vous rencontrez des problèmes essayer d’installer la liste des librairies nécessaire manuellement (une à une)

pip2 install cups dateutils decorator feedparser gdata jinja2 \
mako mock passlib gevent pydot pyparsing reportlab requests \
simplejson unicodecsv unittest2 vatnumber vobject werkzeug xlwt babel \
decorator netplan image unittest2 reportlab mako Python-Chart pytz \
lxml psycopg2-binary pyyaml unittest2 python-chart psutil \
requests simplejson docutils python-openid pyPdf psycogreen html2text &&
pip2 install passlib==1.6.5 &&
pip2 install werkzeug==0.9.6

Source : https://github.com/odoo/odoo/issues/63802

On clone la branche d’Odoo 8 (on l’installe dans /opt/odoo8)

mkdir /opt/odoo8/odoo-server &&
cd /opt/odoo8/odoo-server &&
git clone https://www.github.com/odoo/odoo --depth 1 --branch 8.0 --single-branch .

Configuration d’Odoo

On copie le fichier de configuration par défaut dans la racine du répertoire

cp debian/openerp-server.conf odoo-server.conf &&
chown odoo8: odoo-server.conf &&
chmod 640 odoo-server.conf

Éditez le fichier de configuration et changer les lignes comme ci-dessous

nano odoo-server.conf
[options]
admin_passwd = admin
db_host = False
db_port = False
db_user = odoo8
db_password = False
addons_path = /opt/odoo8/odoo-server/addons
logfile = /var/log/odoo8/odoo-server.log

admin_passwd est le mot de passe principal (admin) d’Odoo (Pour gérer les bases de donnée)

Installer le script de démarrage

On quitte l’utilisateur odoo8

exit

Puis on édite le fichier de configuration systemctl

sudo nano /etc/systemd/system/odoo8.service

Éditez le fichier de configuration et changer les lignes comme ci-dessous

[Unit]
Description=Odoo 8 startup script
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo8
PermissionsStartOnly=true
User=odoo8
Group=odoo8
ExecStart=python2 /opt/odoo8/odoo-server/openerp-server -c /opt/odoo8/odoo-server/odoo-server.conf --load=web,web_kanban,letsencrypt
ExecStop=/bin/kill $MAINPID
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

Puis on démarre le service et on l’exécute au démarrage

sudo systemctl daemon-reload &&
sudo systemctl start odoo8.service &&
sudo systemctl enable odoo8

On vérifie l’état du système

sudo systemctl status odoo8

La sortie devrait ressembler à quelque chose comme ci-dessous, montrant que le service Odoo est actif et en cours d’exécution:

● odoo8.service - Odoo 8 startup script
     Loaded: loaded (/etc/systemd/system/odoo8.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2021-05-15 12:12:12 UTC; 1min 33s ago

Test du serveur Odoo

On regarde les logs

less /var/log/odoo8/odoo8-server.log

Et, si l’on ne constate pas d’erreurs, alors on accède à l’interface par l’URL http://IP_de_votre_serveur:8069

Configuration du serveur Apache2

Configuration du serveur Apache2 avec myVesta

Tout est fait automatiquement par le panel myVestaCP.

Il faut juste forcer le SSL en choisissant le template force-https-legacy pour le nom de domaine d’Odoo 8.

Une erreur 403/404 peut tout de même de produire ! Dans ce cas-là, il faut modifier le fichier

sudo nano /home/odoo8/conf/web/nom_de_domaine_odoo8.com.nginx.ssl.conf

et insérer cette configuration (ne pas oublier de changer ip_du_serveur et nom_de_domaine_odoo8) :

server {
    listen      ip_du_serveur:443 ssl http2;
    server_name nom_de_domaine_odoo8.com www.nom_de_domaine_odoo8.com;

    ssl_certificate      /home/odoo8/conf/web/ssl.nom_de_domaine_odoo8.com.pem;
    ssl_certificate_key  /home/odoo8/conf/web/ssl.nom_de_domaine_odoo8.com.key;
    error_log  /var/log/apache2/domains/nom_de_domaine_odoo8.com.error.log error;

    location / {
        proxy_pass      http://ip_du_serveur:8069;
        proxy_set_header Host $http_host;
        proxy_set_header X-Forwarded-Host $http_host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    }

    location /error/ {
        alias   /home/odoo8/web/nom_de_domaine_odoo8.com/document_errors/;
    }

    location @fallback {
        proxy_pass      http://ip_du_serveur:8069;
    }

    location ~ /\.ht    {return 404;}
    location ~ /\.env   {return 404;}
    location ~ /\.svn/  {return 404;}
    location ~ /\.git/  {return 404;}
    location ~ /\.hg/   {return 404;}
    location ~ /\.bzr/  {return 404;}

    disable_symlinks if_not_owner from=/home/odoo8/web/nom_de_domaine_odoo8.com/public_html;

    include /home/odoo8/conf/web/*nginx.nom_de_domaine_odoo8.com.conf_letsencrypt;
    include /home/odoo8/conf/web/snginx.nom_de_domaine_odoo8.com.conf*;
}

Ainsi que le fichier :

sudo nano /home/odoo8/conf/web/nom_de_domaine_odoo8.com.nginx.conf
server {
    listen      ip_du_serveur:80;
    server_name nom_de_domaine_odoo8.com www.nom_de_domaine_odoo8.com;
    location / {
        rewrite ^(.*) https://nom_de_domaine_odoo8.com$1 permanent;
    }
include /home/odoo8/conf/web/*nginx.nom_de_domaine_odoo8.conf_letsencrypt;
}

Ensuite, on redémarre nginx :

sudo service nginx restart

Configuration du serveur Apache2 sans myVesta

On installe Apache2 :

sudo apt install apache2

Et on active les modules proxy et proxy_http :

sudo a2enmod proxy proxy_http

Puis on insère la configuration d’Apache :

sudo nano /etc/apache2/sites-available/example.com.conf
Et on ajoute la configuration d’Odoo :
<VirtualHost *:80>

    ServerName example.com.conf
    ServerAlias example.com.conf
    Redirect permanent / https://example.com

    LogLevel warn
    ErrorLog /var/log/apache2/example.com.error.log
    CustomLog /var/log/apache2/example.com.access.log combined

    ProxyPass / http://127.0.0.1:8069/
    ProxyPassReverse / http://127.0.0.1:8069/

</VirtualHost>

On active le nom de domaine

sudo a2ensite example.com

Et on redémarre Apache2

sudo systemctl reload apache2

Erreur possible

Si vous rencontrez l’erreur ImportError: No module named wsgi dans /var/log/syslog :

sudo apt-get install apache2-dev

Source : OdooTricks

Catégories : Odoo

0 commentaire

Laisser un commentaire

Emplacement de l’avatar

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *