Android

Ubuntu 18.04'te Odoo 11 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.

Gerekli kullanım durumuna bağlı olarak Odoo'yu kurmanın birkaç yolu vardır. Odoo'yu kurmanın en kolay ve en hızlı yolu, resmi APT depolarını kullanmaktır.

Bu kılavuz, Ubuntu 18.04 sisteminde Git kaynağı ve Python sanal ortamını kullanarak üretim için Odoo'yu kurmak ve yapılandırmak için gerekli adımları kapsar.

Sen başlamadan önce

Ubuntu makinenize sudo kullanıcısı olarak 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

Odoo hizmetini çalıştıracak giriş dizini /opt/odoo ile yeni bir sistem kullanıcısı ve grubu oluşturun.

sudo useradd -m -d /opt/odoo -U -r -s /bin/bash odoo Kullanıcıyı istediğiniz gibi adlandırabilirsiniz, sadece aynı ada sahip bir postgres kullanıcısı oluşturduğunuzdan emin olun.

PostgreSQL'i kurun ve yapılandırın

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

sudo apt install postgresql

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

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

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 GitHub deposundan yalıtılmış bir Python sanal ortamı içine kuracağız, böylece sürümler ve güncellemeler üzerinde daha fazla kontrole sahip olabiliriz.

Kurulum işlemine başlamadan önce odoo kullanıcısına odoo emin olun.

sudo su - odoo

odoo kullanıcısı olarak oturum açtığınızı doğrulamak için aşağıdaki komutu kullanabilirsiniz:

whoami

Şimdi kurulum işlemiyle başlayabiliriz. İlk önce odoo'yu GitHub deposundan klonlayın:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0 /opt/odoo/odoo11

  • Farklı bir Odoo sürümü yüklemek istiyorsanız, --branch anahtarından sonra sürüm numarasını değiştirin. Dizini istediğiniz gibi adlandırabilirsiniz, örneğin odoo11 yerine alan odoo11 adını kullanabilirsiniz.

Odoo 11 örneği için yeni bir sanal ortam oluşturmak üzere çalıştırın:

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

aşağıdaki komutla ortamı etkinleştirin:

source odoo11-venv/bin/activate

ve pip3 ile gerekli tüm Python modüllerini kurun:

pip3 install wheel pip3 install -r odoo11/requirements.txt

pip3 , Python paketlerini kurmak ve yönetmek için bir araçtır.

Kurulum tamamlandıktan sonra ortamı devre dışı bırakın ve aşağıdaki komutları kullanarak sudo kullanıcısına geri dönün:

deactivate

exit

sudo mkdir /opt/odoo/odoo11-custom-addons sudo chown odoo: /opt/odoo/odoo11-custom-addons

Ardından, bir yapılandırma dosyası oluşturmamız gerekiyor, sıfırdan yeni bir tane oluşturabilir veya dahil edilen yapılandırma dosyasını kopyalayabiliriz:

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

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

/etc/odoo11.conf

; This is the password that allows database operations: admin_passwd = my_admin_passwd db_host = False db_port = False db_user = odoo db_password = False addons_path = /opt/odoo/odoo11/addons; If you are using custom modules; addons_path = /opt/odoo/odoo11/addons, /opt/odoo/odoo11-custom-addons my_admin_passwd daha güvenli bir şeye değiştirmeyi ve özel modüller kullanıyorsanız addons_path ayarını değiştirmeyi unutmayın.

Systemd birim dosyası oluşturma

Odoo'yu bir hizmet olarak çalıştırmak için, /etc/systemd/system/ dizininde aşağıdaki içeriğe sahip bir odoo11.service birim dosyası oluşturacağız:

/etc/systemd/system/odoo11.service

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

Systemd'e yeni bir birim dosyası oluşturduğumuzu bildirin ve şu işlemleri yaparak Odoo hizmetini başlatın:

sudo systemctl daemon-reload sudo systemctl start odoo11

Servis durumunu aşağıdaki komutla kontrol edebilirsiniz:

sudo systemctl status odoo11

● odoo11.service - Odoo11 Loaded: loaded (/etc/systemd/system/odoo11.service; disabled; vendor preset: enabled) Active: active (running) since Thu 2018-05-03 21:23:08 UTC; 3s ago Main PID: 18351 (python3) Tasks: 4 (limit: 507) CGroup: /system.slice/odoo11.service └─18351 /opt/odoo/odoo11-venv/bin/python3 /opt/odoo/odoo11/odoo-bin -c /etc/odoo11.conf

ve herhangi bir hata yoksa, Odoo hizmetinin önyükleme zamanında otomatik olarak başlatılmasını sağlayabilirsiniz:

sudo systemctl enable odoo11

sudo journalctl -u odoo11

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

  • Genel sunucu IP'nizi gösteren bir alan adınız var. Bu öğreticide example.com kullanacağız. Bu talimatları izleyerek Nginx yüklü. Alanınız için bir SSL sertifikanız var. Bu talimatları izleyerek ücretsiz bir 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.

Odoo'ya bir proxy kullanacağımızı, yapılandırma dosyasını açacağımızı ve aşağıdaki satırı ekleyeceğimizi söylemeliyiz:

/etc/odoo11.conf

proxy_mode = True

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

sudo systemctl restart odoo11

Nginx'i proxy olarak kullanmak bize birkaç 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.

/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

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, bu nedenle Odoo örneğinize doğrudan erişimi devre dışı bırakmak isterseniz, tüm genel arabirimler için 8069 numaralı 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 dinlemeye zorlayacağız, Odoo yapılandırmasını açarak dosyanın sonuna aşağıdaki iki satırı ekleyin:

/etc/odoo11.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 odoo

Çoklu iş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

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/odoo11.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 odoo11

Sistem kaynaklarının geri kalanı makinemizde ç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 kadar! Bu eğitim, Nginx'i ters proxy olarak kullanan bir Python sanal ortamında Ubuntu 18.04 üzerine Odoo 11 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