Android

Πώς να εγκαταστήσετε το odoo 13 στο ubuntu 18.04

Download-εγκατάσταση του "Συλλογή φωτογραφιών του Windows Live"

Download-εγκατάσταση του "Συλλογή φωτογραφιών του Windows Live"

Πίνακας περιεχομένων:

Anonim

Η Odoo είναι μια δημοφιλής σουίτα εφαρμογών για επιχειρήσεις. Προσφέρει μια σειρά εφαρμογών, όπως το CRM, το ηλεκτρονικό εμπόριο, τον οικοδόμο ιστοτόπων, τη χρέωση, τη λογιστική, την κατασκευή, την αποθήκη, τη διαχείριση έργου, το απόθεμα και πολλά άλλα, όλα αυτά ενσωματώνονται άψογα.

Το Odoo μπορεί να εγκατασταθεί με πολλούς τρόπους ανάλογα με τη χρήση και τις διαθέσιμες τεχνολογίες. Ο ευκολότερος και ταχύτερος τρόπος για να εγκαταστήσετε το Odoo είναι η χρήση των επίσημων αποθετηρίων Odoo APT.

Η εγκατάσταση του Odoo σε ένα εικονικό περιβάλλον ή η ανάπτυξη ως δοχείο Docker σας επιτρέπει να έχετε περισσότερο έλεγχο της ρύθμισης του συστήματος και να εκτελείτε πολλαπλές εκδόσεις Odoo στο ίδιο σύστημα.

Σε αυτόν τον οδηγό, θα σας καθοδηγήσουμε στην εγκατάσταση και εγκατάσταση του Odoo 13 μέσα σε ένα εικονικό περιβάλλον Python στο Ubuntu 18.04. Θα μεταφορτώσουμε Odoo από το αποθετήριο Github και θα χρησιμοποιήσουμε το Nginx ως αντίστροφη πληρεξούσιο.

Εγκατάσταση Προϋποθέσεων

Συνδεθείτε στο Ubuntu σας ως χρήστης sudo και ενημερώστε την cache Apt:

sudo apt update

Εγκαταστήστε τα Git, Pip, Node.js και τα εργαλεία που απαιτούνται για την κατασκευή dependencies Odoo:

sudo apt install git python3-pip build-essential wget python3-dev python3-venv python3-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3-setuptools node-less

Δημιουργία χρήστη συστήματος

Δημιουργήστε έναν χρήστη συστήματος που θα τρέξει Odoo, ονομάζεται odoo13 με τον κατάλογο home /opt/odoo13 :

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

Μπορείτε να ορίσετε το όνομα του χρήστη σε οτιδήποτε θέλετε, αρκεί να δημιουργήσετε έναν χρήστη PostgreSQL με το ίδιο όνομα.

Εγκατάσταση και ρύθμιση παραμέτρων PostgreSQL

Το Odoo χρησιμοποιεί την PostgreSQL ως back-end της βάσης δεδομένων. Για να εγκαταστήσετε την PostgreSQL εκτελέστε την ακόλουθη εντολή:

sudo apt install postgresql

Μόλις ολοκληρωθεί η εγκατάσταση, δημιουργήστε έναν χρήστη PostgreSQL με το ίδιο όνομα με τον χρήστη που δημιουργήθηκε στο παρελθόν, στην περίπτωση που είναι odoo13 :

sudo su - postgres -c "createuser -s odoo13"

Εγκατάσταση του Wkhtmltopdf

Το πακέτο wkhtmltox παρέχει ένα σύνολο εργαλείων γραμμής εντολών ανοιχτού κώδικα που μπορούν να αποδώσουν HTML σε PDF και σε διάφορες μορφές εικόνας. Για να μπορέσετε να εκτυπώσετε αναφορές PDF, θα χρειαστεί να εγκαταστήσετε το εργαλείο wkhtmltopdf . Η συνιστώμενη έκδοση για το 0.12.5 είναι 0.12.5 , η οποία δεν είναι διαθέσιμη στις προεπιλεγμένες αποθήκες του Ubuntu 18.04.

Κατεβάστε το πακέτο χρησιμοποιώντας την ακόλουθη εντολή wget:

wget

Μόλις ολοκληρωθεί η λήψη, εγκαταστήστε το πακέτο πληκτρολογώντας:

sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb

Εγκατάσταση και διαμόρφωση του Odoo 13

Όπως προαναφέρθηκε, θα εγκαταστήσουμε το Odoo από την πηγή μέσα σε ένα απομονωμένο εικονικό περιβάλλον Python.

Πρώτα, αλλάξτε στο χρήστη "odoo13":

sudo su - odoo13

Κλωνοποιήστε τον πηγαίο κώδικα Odoo 13 από το GitHub:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo13/odoo

Μόλις ολοκληρωθεί η λήψη, δημιουργήστε ένα νέο εικονικό περιβάλλον Python για το Odoo:

cd /opt/odoo13 python3 -m venv odoo-venv

Ενεργοποιήστε το περιβάλλον με την ακόλουθη εντολή:

source odoo-venv/bin/activate

Εγκαταστήστε όλες τις απαιτούμενες λειτουργικές μονάδες Python με το pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt Εάν αντιμετωπίσετε κάποιο σφάλμα κατά τη διάρκεια της εγκατάστασης, βεβαιωθείτε ότι έχουν εγκατασταθεί όλες οι απαιτούμενες εξαρτήσεις που αναφέρονται στην ενότητα Installing Prerequisites .

Αφού γίνει, απενεργοποιήστε το περιβάλλον πληκτρολογώντας:

deactivate

Θα δημιουργήσουμε ένα νέο κατάλογο που θα κρατά τα addons τρίτου μέρους.

mkdir /opt/odoo13/odoo-custom-addons

Αργότερα, θα προσθέσουμε αυτόν τον κατάλογο στην παράμετρο addons_path . Αυτή η παράμετρος καθορίζει μια λίστα με καταλόγους όπου η Odoo αναζητά μονάδες.

Επιστρέψτε στο χρήστη sudo:

exit

Δημιουργήστε ένα αρχείο ρυθμίσεων με το ακόλουθο περιεχόμενο:

sudo nano /etc/odoo13.conf /etc/odoo13.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo13 db_password = False addons_path = /opt/odoo13/odoo/addons, /opt/odoo13/odoo-custom-addons Μην ξεχάσετε να αλλάξετε το my_admin_passwd σε κάτι πιο ασφαλές.

Δημιουργία αρχείου συστημικής μονάδας

Ανοίξτε το πρόγραμμα επεξεργασίας κειμένου και δημιουργήστε ένα αρχείο μονάδας υπηρεσιών που ονομάζεται odoo13.service με το ακόλουθο περιεχόμενο:

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

Description=Odoo13 Requires=postgresql.service After=network.target postgresql.service Type=simple SyslogIdentifier=odoo13 PermissionsStartOnly=true User=odoo13 Group=odoo13 ExecStart=/opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf StandardOutput=journal+console WantedBy=multi-user.target

Ειδοποιήστε ότι υπάρχει ένα νέο αρχείο μονάδας:

sudo systemctl daemon-reload

Ξεκινήστε την υπηρεσία Odoo και ενεργοποιήστε την εκκίνηση από την εκκίνηση εκτελώντας:

sudo systemctl enable --now odoo13

Επαληθεύστε την κατάσταση της υπηρεσίας:

sudo systemctl status odoo13

Η έξοδος θα πρέπει να φαίνεται κάπως παρακάτω, υποδεικνύοντας ότι η υπηρεσία Odoo είναι ενεργή και λειτουργεί.

● odoo13.service Loaded: loaded (/etc/systemd/system/odoo13.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2019-10-19 20:06:23 UTC; 3s ago Main PID: 1860 (python3) Tasks: 4 (limit: 2362) CGroup: /system.slice/odoo13.service └─1860 /opt/odoo13/odoo-venv/bin/python3 /opt/odoo13/odoo/odoo-bin -c /etc/odoo13.conf

Για να δείτε τα μηνύματα που καταγράφηκαν από την υπηρεσία Odoo, χρησιμοποιήστε την παρακάτω εντολή:

sudo journalctl -u odoo13

Δοκιμή της εγκατάστασης

Ανοίξτε το πρόγραμμα περιήγησης και πληκτρολογήστε: http://:8069 http://:8069

Αν υποτεθεί ότι η εγκατάσταση είναι επιτυχής, θα εμφανιστεί μια οθόνη παρόμοια με την ακόλουθη:

Διαμόρφωση του Nginx ως διακομιστή μεσολάβησης SSL τερματισμού

Ο προεπιλεγμένος διακομιστής ιστού Odoo εξυπηρετεί την επισκεψιμότητα μέσω HTTP. Για να καταστήσουμε την ανάπτυξη της Odoo πιο ασφαλή, θα διαμορφώσουμε το Nginx ως διακομιστή μεσολάβησης τερματισμού SSL που θα εξυπηρετήσει την επισκεψιμότητα μέσω

Ο διακομιστής μεσολάβησης τερματισμού SSL είναι ένας διακομιστής μεσολάβησης που διαχειρίζεται την κρυπτογράφηση / αποκρυπτογράφηση SSL. Αυτό σημαίνει ότι ο διακομιστής μεσολάβησης τερματισμού (Nginx) επεξεργάζεται και αποκρυπτογραφεί τις εισερχόμενες συνδέσεις TLS (HTTPS) και μεταδίδει τα μη κρυπτογραφημένα αιτήματα στην εσωτερική υπηρεσία (Odoo). Η κυκλοφορία μεταξύ Nginx και Odoo δεν θα κρυπτογραφηθεί (HTTP).

Χρησιμοποιώντας έναν αντίστροφο διακομιστή μεσολάβησης, μπορείτε να απολαύσετε πολλά πλεονεκτήματα όπως η εξισορρόπηση φορτίου, ο τερματισμός SSL, η προσωρινή αποθήκευση, η συμπίεση, το στατικό περιεχόμενο που εξυπηρετεί και πολλά άλλα.

Βεβαιωθείτε ότι πληρούνται οι ακόλουθες προϋποθέσεις πριν συνεχίσετε με αυτήν την ενότητα:

  • Το όνομα τομέα που δείχνει στον δημόσιο διακομιστή IP σας. Θα χρησιμοποιήσουμε το example.com .Nginx πιστοποιητικό. SSL για τον τομέα σας. Μπορείτε να εγκαταστήσετε ένα δωρεάν Πιστοποιητικό SSL SSL.

Ανοίξτε τον επεξεργαστή κειμένου και δημιουργήστε / επεξεργαστείτε το μπλοκ διακομιστή τομέα:

sudo nano /etc/nginx/sites-enabled/example.com

Η ακόλουθη διαμόρφωση ρυθμίζει τον τερματισμό SSL, την ανακατεύθυνση HTTP σε HTTPS, την ανακατεύθυνση WWW σε μη-WWW, την προσωρινή αποθήκευση των στατικών αρχείων και την ενεργοποίηση της συμπίεσης GZip.

/etc/nginx/sites-enabled/example.com

# Odoo servers upstream odoo { server 127.0.0.1:8069; } upstream odoochat { server 127.0.0.1:8072; } # HTTP -> HTTPS server { listen 80; server_name www.example.com example.com; include snippets/letsencrypt.conf; return 301 https://example.com$request_uri; } # WWW -> NON WWW server { listen 443 ssl http2; server_name www.example.com; ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; return 301 https://example.com$request_uri; } server { listen 443 ssl http2; server_name example.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Proxy headers proxy_set_header X-Forwarded-Host $host; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header X-Real-IP $remote_addr; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; # log files access_log /var/log/nginx/odoo.access.log; error_log /var/log/nginx/odoo.error.log; # Handle longpoll requests location /longpolling { proxy_pass http://odoochat; } # Handle / requests location / { proxy_redirect off; proxy_pass http://odoo; } # Cache static files location ~* /web/static/ { proxy_cache_valid 200 90m; proxy_buffering on; expires 864000; proxy_pass http://odoo; } # Gzip gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript; gzip on; } Μην ξεχάσετε να αντικαταστήσετε το example.com με τον τομέα Odoo και να ορίσετε τη σωστή διαδρομή στα αρχεία πιστοποιητικών SSL. Τα αποσπάσματα που χρησιμοποιούνται σε αυτή τη διαμόρφωση δημιουργούνται σε αυτόν τον οδηγό.

Αφού τελειώσετε, κάντε επανεκκίνηση της υπηρεσίας Nginx:

sudo systemctl restart nginx

Στη συνέχεια, πρέπει να πούμε στον Odoo να χρησιμοποιεί το πληρεξούσιο. Για να το κάνετε αυτό, ανοίξτε το αρχείο ρυθμίσεων και προσθέστε την ακόλουθη γραμμή:

/etc/odoo13.conf

proxy_mode = True

Κάντε επανεκκίνηση της υπηρεσίας Odoo για να εφαρμοστούν οι αλλαγές:

sudo systemctl restart odoo13

Σε αυτό το σημείο, διαμορφώνεται ο αντίστροφος διακομιστής μεσολάβησης και μπορείτε να αποκτήσετε πρόσβαση στο στιγμιότυπο Odoo στη https://example.com : https://example.com

Αλλαγή της διεπαφής δέσμευσης

Αυτό το βήμα είναι προαιρετικό, αλλά είναι μια καλή πρακτική ασφάλειας.

Από προεπιλογή, ο διακομιστής Odoo ακούει τη θύρα 8069 σε όλες τις διεπαφές. Για να απενεργοποιήσετε την άμεση πρόσβαση στην παράμετρο Odoo, μπορείτε είτε να αποκλείσετε τη θύρα 8069 για όλες τις δημόσιες διεπαφές είτε να αναγκάσετε την Odoo να ακούσει μόνο την τοπική διεπαφή.

Θα ρυθμίσουμε το Odoo να ακούει μόνο στο 127.0.0.1 . Ανοίξτε τη διαμόρφωση προσθέστε τις ακόλουθες δύο γραμμές στο τέλος του αρχείου:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Αποθηκεύστε το αρχείο ρυθμίσεων και κάντε επανεκκίνηση του διακομιστή Odoo για να εφαρμοστούν οι αλλαγές:

sudo systemctl restart odoo13

Ενεργοποίηση της πολλαπλής επεξεργασίας

Από προεπιλογή, ο Odoo εργάζεται στη λειτουργία multithreading. Για την ανάπτυξη της παραγωγής, συνιστάται η μετάβαση στον εξυπηρετητή πολλαπλών επεξεργασιών καθώς αυξάνει τη σταθερότητα και βελτιώνει τη χρήση των πόρων του συστήματος.

Για να ενεργοποιήσετε την πολλαπλή επεξεργασία, πρέπει να επεξεργαστείτε τη διαμόρφωση Odoo και να ορίσετε μη μηδενικό αριθμό διαδικασιών εργαζομένων. Ο αριθμός των εργαζομένων υπολογίζεται βάσει του αριθμού πυρήνων της CPU στο σύστημα και της διαθέσιμης μνήμης RAM.

Σύμφωνα με την επίσημη τεκμηρίωση Odoo για τον υπολογισμό του αριθμού των εργαζομένων και του απαιτούμενου μεγέθους μνήμης RAM, μπορείτε να χρησιμοποιήσετε τους παρακάτω τύπους και υποθέσεις:

Υπολογισμός αριθμού εργαζομένων

  • Θεωρητικός μέγιστος αριθμός εργαζομένων = (system_cpus * 2) + 11 εργαζόμενος μπορεί να εξυπηρετήσει ~ = 6 ταυτόχρονους χρήστεςCron οι εργαζόμενοι επίσης απαιτούν CPU

Υπολογισμός μεγέθους μνήμης RAM

  • Θα θεωρήσουμε ότι το 20% όλων των αιτήσεων είναι βαριά αιτήματα και το 80% είναι ελαφρύτερα. Τα βαριά αιτήματα χρησιμοποιούν περίπου 1 GB μνήμης RAM ενώ τα ελαφρύτερα χρησιμοποιούν περίπου 150 MB μνήμης RAMNeeded RAM = number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

Ας υποθέσουμε ότι έχετε ένα σύστημα με 4 πυρήνες CPU, 8 GB μνήμης RAM και 30 ταυτόχρονους χρήστες Odoo.

  • 30 users / 6 = **5** (5 είναι ο θεωρητικός αριθμός των εργαζομένων που χρειάζονται) (4 * 2) + 1 = **9** (9 είναι ο θεωρητικός μέγιστος αριθμός εργαζομένων)

Με βάση τον παραπάνω υπολογισμό, μπορείτε να χρησιμοποιήσετε 5 εργαζόμενους + 1 εργαζόμενο για το cron worker που είναι συνολικά 6 εργαζόμενοι.

Υπολογίστε την κατανάλωση μνήμης RAM με βάση τον αριθμό των εργαζομένων:

  • RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM

Ο υπολογισμός δείχνει ότι η εγκατάσταση Odoo θα χρειαστεί περίπου 2 GB RAM.

Για να μεταβείτε στη λειτουργία πολλαπλών επεξεργασιών, ανοίξτε το αρχείο ρυθμίσεων και προσθέστε τις υπολογισμένες τιμές:

/etc/odoo13.conf

limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 workers = 5

Κάντε επανεκκίνηση της υπηρεσίας Odoo για να εφαρμοστούν οι αλλαγές:

sudo systemctl restart odoo13

Οι υπόλοιποι πόροι του συστήματος θα χρησιμοποιηθούν από άλλες υπηρεσίες που εκτελούνται σε αυτό το σύστημα. Σε αυτόν τον οδηγό, εγκαταστήσαμε τον Odoo μαζί με τις PostgreSQL και Nginx στον ίδιο διακομιστή. Ανάλογα με τη ρύθμισή σας, ενδέχεται να έχετε και άλλες υπηρεσίες που εκτελούνται στον διακομιστή σας.

συμπέρασμα

Αυτό το σεμινάριο σας οδήγησε στην εγκατάσταση του Odoo 13 στο Ubuntu 18.04 σε ένα εικονικό περιβάλλον Python χρησιμοποιώντας το Nginx ως αντίστροφη πληρεξούσιο. Σας έδειξα επίσης πώς μπορείτε να ενεργοποιήσετε την πολυεπεξεργασία και να βελτιστοποιήσετε το Odoo για ένα περιβάλλον παραγωγής.

Μπορεί επίσης να θέλετε να ελέγξετε το σεμινάριό μας σχετικά με τον τρόπο δημιουργίας αυτόματων καθημερινών αντιγράφων ασφαλείας των βάσεων δεδομένων Odoo.

ubuntu odoo postgresql πύθωνα pip nginx proxy ssl