آموزش نصب Odoo 13 در اوبونتو 18.04 - وان سرور آکـادمی
آموزش نصب Odoo 13 در اوبونتو 18.04
آموزش نصب Odoo 13 در اوبونتو 18.04

آموزش نصب Odoo 13 در اوبونتو 18.04

زمان تقریبی مطالعه: 8 دقیقه

آموزش نصب Odoo 13 در اوبونتو 18.04

Odoo یک مجموعه منبع آزاد از برنامه های تجاری است. این برنامه طیف وسیعی از برنامه ها ، از جمله CRM ، تجارت الکترونیکی ، سازنده وب سایت ، صورتحساب ، حسابداری ، ساخت ، انبار ، مدیریت پروژه ، موجودی و موارد دیگر ، همه را یکپارچه ارائه می دهد. در این آموزش نحوه نصب Odoo 13 در اوبونتو 18.04 را به شما آموزش خواهیم داد.

Odoo بسته به مورد استفاده و فناوری های موجود می تواند به چندین روش نصب شود. آسانترین و سریعترین راه برای نصب Odoo استفاده از مخازن رسمی Odoo APT است.

نصب Odoo در یک محیط مجازی یا استقرار به عنوان Docker به شما امکان می دهد تا کنترل بیشتری بر روی تنظیم سیستم داشته باشید و چندین نسخه Odoo را بر روی همان سیستم اجرا کنید.

در این مطلب به شما نحوه نصب Odoo 13 در یک محیط مجازی Python در اوبونتو 18.04 را آموزش خواهیم داد. ما Odoo را از مخزن Github آنها بارگیری می کنیم و از Nginx به عنوان یک پروکسی معکوس استفاده خواهیم کرد.

نصب پیش نیازها

به عنوان کاربر sudo به Ubuntu خود وارد شوید و حافظه کش Apt را به روز کنید:

sudo apt update

Git ، Pip ، Node.js و ابزارهای مورد نیاز برای ساخت وابستگی 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 با هوم دایرکتوری /opt/odoo13 :

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

می توانید نام کاربر را هر چیزی که می خواهید تنظیم کنید ، تا زمانی که یک کاربر PostgreSQL با همین نام ایجاد کنید.

نصب و پیکربندی PostgreSQL

Odoo از PostgreSQL بعنوان پشتیبان پایگاه داده استفاده می کند. برای نصب PostgreSQL دستور زیر را اجرا کنید:

sudo apt install postgresql

پس از اتمام نصب ، یک کاربر PostgreSQL با همان نام کاربر سیستم که قبلاً ایجاد شده است ایجاد کنید ، در مورد ما که odoo13 است:

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

نصب Wkhtmltopdf

بسته wkhtmltox مجموعه ای از ابزارهای خط فرمان منبع باز را ارائه می دهد که می توانند HTML را به PDF و قالب های مختلف تصویر تبدیل کنند. برای اینکه بتوانید گزارشات PDF را چاپ کنید ، باید ابزار wkhtmltopdf را نصب کنید. نسخه پیشنهادی شده برای Odoo نسخه 0.12.5 است که در مخازن پیش فرض اوبونتو 18.04 موجود نیست.

بسته را با استفاده از دستور wget زیر بارگیری کنید:

wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb

پس از اتمام بارگیری ، بسته را با تایپ کردن دستور زیر نصب کنید:

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

یک راز بزرگ درمورد 90 درصد هاستینگ های ایرانی اورسل کردن بیش از حد است که باعث افت کیفیت سرورها میشود.

وان سرور با ارائه دسترسی های مختلف این امکان را به شما خواهد داد که تمامی منابع سرورتان را مدیریت و بررسی کنید.

برای خرید سرور مجازی با منابع کاملا اختصاصی و گارانتی 100% برگشت وجه کلیک کنید.

نصب و پیکربندی 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

یک دایرکتوری جدید ایجاد خواهیم کرد که افزونه های شخص ثالث را در خود جای دهد.

mkdir /opt/odoo13/odoo-custom-addons

بعداً این دایرکتوری را به پارامتر addons_path اضافه خواهیم کرد. این پارامتر لیستی از دایرکتوری هایی را که Odoo در جستجوی ماژول ها است ، تعریف می کند.

بازگشت به کاربر sudo:

exit

یک پرونده پیکربندی با محتوای زیر ایجاد کنید:

sudo nano /etc/odoo13.conf
[options]
; 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
[Unit]
Description=Odoo13
Requires=postgresql.service
After=network.target postgresql.service

[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

[Install]
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://<your_domain_or_IP_address>:8069

با فرض اینکه نصب موفقیت آمیز باشد ، صفحه نمایش شبیه به موارد زیر ظاهر می شود:

آموزش نصب Odoo 13 در اوبونتو 18.04

پیکربندی Nginx به عنوانSSL Termination Proxy

وب سرور پیش فرض Odoo در حال انتقال ترافیک از طریق HTTP است. برای ایمن سازی استقرار Odoo ، Nginx را به عنوان یک SSL Termination Proxy پیکربندی می کنیم که به ترافیک HTTPS کمک می کند.

SSL Termination Proxy سرور پروکسی است که رمزگذاری / رمزگشایی SSL را به عهده دارد. این بدان معنی است که Termination Proxy (Nginx) اتصالات TLS ورودی (HTTPS) را پردازش و رمزگشایی می کند و درخواست های رمز نشده را به سرویس داخلی (Odoo) منتقل می کند. ترافیک بین Nginx و Odoo رمزگذاری نمی شود (HTTP).

استفاده از یک پروکسی معکوس مزایای بسیاری از قبیل Loading Balancing ، خاتمه SSL ، ذخیره سازی ، فشرده سازی ، ارائه محتوای استاتیک و موارد دیگر را به شما می دهد.

قبل از ادامه این بخش اطمینان حاصل کنید که پیش نیازهای زیر را رعایت کرده اید:

  • نام دامنه که به IP سرور عمومی شما اشاره دارد. ما از example.com استفاده خواهیم کرد.
  • Nginx نصب شده است .
  • گواهی SSL برای دامنه شما. می توانید مجوز رایگان Letry Encrypt SSL را نصب کنید .

در ادامه…

ویرایشگر متن خود را باز کرده و بلوک سرور دامنه را ایجاد و ویرایش کنید:

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

پیکربندی زیر تنظیم SSL Termination ، تغییر مسیر HTTP به HTTPS ، تغییر مسیر WWW به بدونWWW ، ذخیره پرونده های استاتیک و فشرده سازی GZip را ذخیره می کند .

# 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

تغییر رابط اتصال

این مرحله اختیاری است ، اما یک عمل امنیتی خوب است.

به طور پیش فرض ، سرور 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 برای محاسبه تعداد کارها و اندازه حافظه رم مورد نیاز ، می توانید از فرمول ها و فرضیات زیر استفاده کنید:

محاسبه شماره فعالیت ها

  • تعداد نظری حداکثر فعالیت ها= (system_cpus * 2) + 1
  • 1 فعالیت می تواند تقریبا 6 کاربر همزمان ارائه دهد
  • فعالیت کرون نیز به CPU احتیاج دارند

محاسبه اندازه حافظه رم

  • ما در نظر خواهیم گرفت که 20٪ از کلیه درخواستها درخواستهای سنگین و 80٪ سبکتر هستند. درخواست های سنگین از حدود 1 گیگابایت رم استفاده می کنند در حالی که سبک تر آنها از حدود 150 مگابایت رم استفاده می کنند
  • RAM مورد نیاز = number_of_workers * ( (light_worker_ratio * light_worker_ram_estimation) + (heavy_worker_ratio * heavy_worker_ram_estimation) )

اگر نمی دانید چند CPU روی سیستم خود دارید ، از دستور grep زیر استفاده کنید:

grep -c ^processor /proc/cpuinfo

بیایید بگوییم که شما سیستمی با 4 هسته CPU و 8 گیگابایت حافظه رم و 30 کاربر همزمان Odoo دارید.

  • 30 users / 6 = **5** (5 تعداد نظری فعالیت های مورد نیاز است)
  • (4 * 2) + 1 = **9** (9 حداکثر تعداد نظری کارفعالیت ها است)

براساس محاسبه فوق می توانید برای فعالیت های کرن 5 فعالیت + 1 فعالیت استفاده کنید که در مجموع 6 فعالیت هستند.

میزان مصرف حافظه RAM را بر اساس تعداد کارگران محاسبه کنید:

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

محاسبه نشان می دهد که نصب Odoo به حدود 2 گیگابایت رم نیاز دارد.

برای تغییر به حالت چند پردازشی ، پرونده پیکربندی را باز کنید و مقادیر محاسبه شده را اضافه کنید:

/etc/odoo13.conf

xmlrpc_interface = 127.0.0.1
netrpc_interface = 127.0.0.1

سرویس Odoo را برای شروع به کار مجدداً راه اندازی کنید:

sudo systemctl restart odoo13

بقیه منابع سیستم توسط سرویسهای دیگری که روی این سیستم کار می کنند استفاده می شود. در این راهنما ، Odoo را به همراه PostgreSQL و Nginx در همان سرور نصب کردیم. بسته به تنظیمات شما ممکن است سایر سرویسها روی سرور خود نیز اجرا شوند.

نتیجه

این آموزش شما را در نصب Odoo 13 در اوبونتو 18.04 در یک محیط مجازی Python با استفاده از Nginx به عنوان یک پروکسی معکوس راهنمایی کردیم. ما همچنین به شما نشان داده ایم که چگونه می توانید قابلیت چند پردازش را فعال کنید و چگونه Odoo را برای یک محیط تولید بهینه کنید.

Rate this post