Android

Ubuntu 18.04'te Odoo 12 nasıl dağıtılır

2 месяца с Ubuntu 18.04 LTS - так ли она хороша?

2 месяца с Ubuntu 18.04 LTS - так ли она хороша?

İçindekiler:

Anonim

Odoo, dünyanın en popüler hepsi bir arada iş yazılımıdır. CRM, web sitesi, e-Ticaret, faturalandırma, muhasebe, imalat, depo, proje yönetimi, envanter ve çok daha fazlasını içeren sorunsuz bir şekilde entegre edilmiş bir dizi iş uygulaması sunar.

Odoo birkaç farklı şekilde kurulabilir. Odoo'yu kurmanın en kolay ve en hızlı yolu, resmi APT depolarını kullanmaktır.

Bu eğitici, Ubuntu 18.04 sisteminde Git kaynağı ve Python sanal ortamını kullanarak üretim için Odoo 12'yi kurmak ve yapılandırmak için gereken adımları kapsar.

Sen başlamadan önce

Bir sudo kullanıcısı olarak Ubuntu makinenize giriş yapın ve sistemi en son paketlere güncelleyin:

sudo apt update && sudo apt upgrade

Git, Pip, Node.js ve Odoo bağımlılıkları oluşturmak için gerekli araçları yükleyin:

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 kullanıcısı oluştur

Aşağıdaki komutu kullanarak odoo12 için ana dizin /opt/odoo12 ile odoo12 adlı yeni bir sistem kullanıcısı oluşturun:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 Aynı ada sahip bir PostgreSQL kullanıcısı oluşturduğunuz sürece Odoo kullanıcınız için herhangi bir ad kullanabilirsiniz.

PostgreSQL'i Kurma ve Yapılandırma

Ubuntu'nun varsayılan depolarından PostgreSQL paketini kurun:

sudo apt install postgresql

Yükleme tamamlandıktan sonra, önceden oluşturulmuş sistem kullanıcısıyla aynı ada sahip bir PostgreSQL kullanıcısı oluşturun, bizim durumumuzda odoo12 :

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

Wkhtmltopdf Yükle

wkhtmltox paketi, HTML'yi PDF'ye ve çeşitli görüntü formatlarına dönüştürebilen bir dizi açık kaynak komut satırı aracı sağlar. PDF raporlarını yazdırmak için wkhtmltopdf aracına ihtiyacınız olacaktır. Odoo için önerilen sürüm, resmi Ubuntu 18.04 depolarında bulunmayan 0.12.1 .

Aşağıdaki wget komutunu kullanarak paketi indirin:

wget

İndirme işlemi tamamlandıktan sonra paketi şunu yazarak yükleyin:

sudo apt install./wkhtmltox_0.12.1.3-1~bionic_amd64.deb

Odoo'yu Yükleme ve Yapılandırma

Odoo'yu, yalıtılmış bir Python sanal ortamında GitHub deposundan kuracağız.

Kurulum işlemine başlamadan önce “odoo12” kullanıcısına geçin:

sudo su - odoo12

GitHub deposundan Odoo 12 kaynak kodunu klonlayarak başlayın:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo

Kaynak kodu indirildikten sonra, Odoo 12 kurulumu için yeni bir Python sanal ortamı oluşturun:

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

Ardından, aşağıdaki komutla ortamı etkinleştirin:

source odoo-venv/bin/activate

Gerekli tüm Python modüllerini pip3 ile kurun:

pip3 install wheel pip3 install -r odoo/requirements.txt Yükleme sırasında herhangi bir derleme hatasıyla karşılaşırsanız, Before you begin bölümünde listelenen tüm bağımlılıkları yüklediğinizden emin olun.

Aşağıdaki komutu kullanarak ortamı devre dışı bırakın:

deactivate

Özel eklentiler için yeni bir dizin oluşturun:

mkdir /opt/odoo12/odoo-custom-addons

Sudo kullanıcınıza geri dönün:

exit

Ardından, birlikte verilen örnek yapılandırma dosyasını kopyalayarak bir yapılandırma dosyası oluşturun:

sudo cp /opt/odoo12/odoo/debian/odoo.conf /etc/odoo12.conf

Dosyayı açın ve aşağıdaki gibi düzenleyin:

sudo nano /etc/odoo12.conf /etc/odoo12.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo12 db_password = False addons_path = /opt/odoo12/odoo/addons, /opt/odoo12/odoo-custom-addons my_admin_passwd daha güvenli bir şeye değiştirmeyi unutmayın.

Systemd Birim Dosyası Oluşturma

Odoo'yu bir hizmet olarak çalıştırmak için /etc/systemd/system/ dizininde bir hizmet birimi dosyası oluşturmamız gerekir.

Metin düzenleyicinizi açın ve aşağıdaki yapılandırmayı yapıştırın:

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

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

Systemd'e yeni bir birim dosyasının bulunduğunu bildirin ve Odoo hizmetini çalıştırarak başlatın:

sudo systemctl daemon-reload sudo systemctl start odoo12

Aşağıdaki komutla servis durumunu kontrol edin:

sudo systemctl status odoo12

Çıktı, Odoo hizmetinin etkin ve çalışır durumda olduğunu gösteren aşağıdaki gibi görünmelidir.

* odoo12.service - Odoo12 Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: enabled) Active: active (running) since Tue 2018-10-09 14:15:30 PDT; 3s ago Main PID: 24334 (python3) Tasks: 4 (limit: 2319) CGroup: /system.slice/odoo12.service `-24334 /opt/odoo12/odoo-venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf

Odoo hizmetinin önyükleme zamanında otomatik olarak başlatılmasını sağlayın:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

Kurulumu Test Edin

Tarayıcınızı açın ve http://:8069 http://:8069

Kurulumun başarılı olduğu varsayıldığında, aşağıdakine benzer bir ekran görünecektir:

Nginx'i SSL Sonlandırma Proxy'si olarak yapılandırma

Bu bölüme devam etmeden önce aşağıdaki önkoşulları karşıladığınızdan emin olun:

  • Genel sunucu IP'nizi gösteren alan adı. Bu eğitimde alan adınız için example.com .Nginx yüklü.SSL sertifikasını kullanacağız. Ücretsiz Let's Encrypt SSL sertifikası yükleyebilirsiniz.

Varsayılan Odoo web sunucusu HTTP üzerinden trafik yayınlıyor. Odoo dağıtımımızı daha güvenli hale getirmek için Nginx'i, HTTPS üzerinden trafiği sunacak bir SSL sonlandırma proxy'si olarak yapılandıracağız.

SSL sonlandırma proxy'si, SSL şifrelemesini / şifresini çözen bir proxy sunucusudur. Bu, sonlandırma proxy sunucumuzun (Nginx) gelen TLS bağlantılarını (HTTPS) işleyeceği ve şifresini çözeceği ve Nginx ile Odoo arasındaki trafiğin şifrelenmemesi için (HTTP) şifrelenmemiş istekleri dahili hizmetimize (Odoo) ileteceği anlamına gelir.

Ters proxy kullanmak, Yük Dengeleme, SSL Sonlandırma, Önbellekleme, Sıkıştırma, Statik İçerik Sunma ve daha pek çok avantaj sağlar.

Bu örnekte SSL Sonlandırmayı, HTTP'den HTTPS'ye yeniden yönlendirmeyi, WWW'den WWW'ye olmayan yeniden yönlendirmeyi yapılandıracağız, statik dosyaları önbelleğe alacak ve GZip sıkıştırmasını etkinleştireceğiz.

Metin düzenleyicinizi açın ve aşağıdaki dosyayı oluşturun:

sudo nano /etc/nginx/sites-enabled/example.com /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'u Odoo alan adınızla değiştirmeyi ve SSL sertifika dosyalarına doğru yolu ayarlamayı unutmayın. Bu yapılandırmada kullanılan snippet'ler bu kılavuzda oluşturulur.

İşiniz bittiğinde, Nginx hizmetini aşağıdakilerle yeniden başlatın:

sudo systemctl restart nginx

Sonra, Odoo'ya proxy kullanacağımızı söylemeliyiz. Bunu yapmak için yapılandırma dosyasını açın ve aşağıdaki satırı ekleyin:

/etc/odoo12.conf

proxy_mode = True

Değişikliklerin geçerli olması için Odoo hizmetini yeniden başlatın:

sudo systemctl restart odoo12

Bu noktada sunucunuz yapılandırılır ve Odoo örneğinize şu adresten erişebilirsiniz: https://example.com

Ciltleme arayüzünü değiştirme

Bu adım isteğe bağlıdır, ancak iyi bir güvenlik uygulamasıdır.

Varsayılan olarak, Odoo sunucusu tüm arabirimlerde 8069 numaralı bağlantı noktasını dinler. Odoo örneğinize doğrudan erişimi devre dışı bırakmak istiyorsanız, tüm genel arabirimler için 8069 bağlantı noktasını engelleyebilir veya Odoo'yu yalnızca yerel arabirimde dinlemeye zorlayabilirsiniz.

Bu kılavuzda Odoo'yu yalnızca 127.0.0.1 dinleyecek şekilde yapılandıracağız. Yapılandırmayı açın, dosyanın sonuna aşağıdaki iki satırı ekleyin:

/etc/odoo12.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

Yapılandırma dosyasını kaydedin ve değişikliklerin geçerli olması için Odoo sunucusunu yeniden başlatın:

sudo systemctl restart odoo12

Çoklu İşlemeyi Etkinleştir

Varsayılan olarak, Odoo çoklu kullanım modunda çalışır. Üretim dağıtımları için, kararlılığı artırdığı ve sistem kaynaklarını daha iyi kullanabildiği için çok işlemcili sunucuya geçmeniz önerilir. Çoklu işlemeyi etkinleştirmek için Odoo yapılandırmasını düzenlememiz ve sıfırdan farklı çalışan işlemi ayarlamamız gerekir.

Çalışan sayısı, sistemdeki CPU çekirdeklerinin sayısına ve kullanılabilir RAM belleğine göre hesaplanır.

Çalışan sayısını ve gerekli RAM bellek boyutunu hesaplamak için resmi Odoo belgelerine göre aşağıdaki formülleri ve varsayımları kullanacağız:

İşçi numarası hesaplama

  • teorik maksimum işçi sayısı = (system_cpus * 2) + 11 işçi ~ = 6 eşzamanlı kullanıcıya hizmet verebilir

RAM bellek boyutu hesaplama

  • Tüm taleplerin% 20'sinin ağır talepler, % 80'inin daha hafif talepler olduğunu düşüneceğiz. Ağır istekler yaklaşık 1 GB RAM kullanıyor, daha hafif olanlar ise yaklaşık 150 MB RAM kullanıyor.Neded RAM = number_of_workers number_of_workers * ((light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation))

grep -c ^processor /proc/cpuinfo

4 CPU çekirdeği, 8 GB RAM belleği ve 30 eşzamanlı Odoo kullanıcısı olan bir sistemimiz olduğunu varsayalım.

  • 30 users / 6 = **5** (5 teorik işçi sayısı gereklidir) (4 * 2) + 1 = **9** (9 teorik maksimum işçi sayısı)

Yukarıdaki hesaplamaya dayanarak, toplam 6 işçi olan cron işçisi için 5 işçi + 1 işçi kullanabiliriz.

RAM bellek tüketimini çalışanların sayısına göre hesaplayın:

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

Yukarıdaki hesaplama bize Odoo kurulumumuzun yaklaşık 2GB RAM'e ihtiyacı olacağını gösteriyor.

Çoklu işlem moduna geçmek için yapılandırma dosyasını açın ve aşağıdaki satırları ekleyin:

/etc/odoo12.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

Değişikliklerin geçerli olması için Odoo hizmetini yeniden başlatın:

sudo systemctl restart odoo12

Sistem kaynaklarının geri kalanı, bu sistemde çalışan diğer hizmetler tarafından kullanılacaktır. Bu kılavuzda Odoo'yu PostgreSQL ve Nginx ile birlikte aynı sunucuya kurduk ve kurulumunuza bağlı olarak sunucunuzda çalışan başka servisler de olabilir.

Sonuç

Bu eğitim, Nginx'i ters proxy olarak kullanan bir Python sanal ortamında Ubuntu 18.04 üzerine Odoo 12 kurulumunda size yol gösterdi. Ayrıca, çoklu işlemeyi nasıl etkinleştireceğinizi ve Odoo'yu üretim ortamı için nasıl optimize edeceğinizi öğrendiniz.

Ayrıca, Odoo veritabanlarınızın otomatik günlük yedeklemelerinin nasıl oluşturulacağı ile ilgili eğiticimizi kontrol etmek isteyebilirsiniz.

ubuntu odoo postgresql python pip nginx proxy ssl