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