How To Install Odoo 12 on Ubuntu 18.04
جدول المحتويات:
- تثبيت المتطلبات الأساسية
- إنشاء مستخدم النظام
- تثبيت وتكوين بوستجرس
- تثبيت Wkhtmltopdf
- تثبيت وتكوين Odoo 13
- إنشاء ملف وحدة Systemd
- اختبار التثبيت
- تكوين Nginx كوكيل إنهاء SSL
- تغيير واجهة الربط
- تمكين المعالجة المتعددة
- استنتاج
Odoo عبارة عن مجموعة شائعة مفتوحة المصدر من تطبيقات الأعمال. إنه يوفر مجموعة من التطبيقات ، بما في ذلك CRM ، التجارة الإلكترونية ، منشئ مواقع الويب ، الفواتير ، المحاسبة ، التصنيع ، المستودعات ، إدارة المشاريع ، المخزون ، وأكثر من ذلك بكثير ، كلها متكاملة.
يمكن تثبيت Odoo بطرق متعددة حسب حالة الاستخدام والتقنيات المتاحة. أسهل وأسرع طريقة لتثبيت Odoo هي استخدام مستودعات Odoo APT الرسمية.
يتيح لك تثبيت Odoo في بيئة افتراضية ، أو النشر كحاوية Docker ، الحصول على مزيد من التحكم في إعداد النظام ، وتشغيل إصدارات Odoo متعددة على نفس النظام.
في هذا الدليل ، سننقلك إلى تثبيت ونشر Odoo 13 داخل بيئة بيثون الافتراضية على Ubuntu 18.04. سنقوم بتنزيل Odoo من مستودع Github الخاص بهم وسنستخدم Nginx كوكيل عكسي.
تثبيت المتطلبات الأساسية
تسجيل الدخول إلى أوبونتو الخاص بك كمستخدم sudo وتحديث ذاكرة التخزين المؤقت 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 بنفس الاسم.
تثبيت وتكوين بوستجرس
يستخدم 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
، وهو غير متوفر في مستودعات Ubuntu 18.04 الافتراضية.
قم بتنزيل الحزمة باستخدام الأمر wget التالي:
wget
بمجرد اكتمال التنزيل ، قم بتثبيت الحزمة عن طريق الكتابة:
sudo apt install./wkhtmltox_0.12.5-1.bionic_amd64.deb
تثبيت وتكوين Odoo 13
كما ذكرنا من قبل ، سنقوم بتثبيت Odoo من المصدر داخل بيئة افتراضية معزولة بيثون.
أولاً ، قم بالتغيير إلى المستخدم "odoo13":
sudo su - odoo13
استنساخ شفرة المصدر Odoo 13 من جيثب:
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
تثبيت جميع وحدات بايثون المطلوبة مع 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
/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
إلى شيء أكثر أمانًا.
إنشاء ملف وحدة Systemd
افتح محرر النص الخاص بك وقم بإنشاء ملف وحدة خدمة يسمى
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
أخبر systemd بوجود ملف وحدة جديد:
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 ، استخدم الأمر أدناه:
اختبار التثبيت
افتح متصفحك واكتب:
http://:8069
http://:8069
على افتراض نجاح التثبيت ، ستظهر شاشة مشابهة للشاشة التالية:

تكوين Nginx كوكيل إنهاء SSL
خادم الويب الافتراضي Odoo يقدم حركة مرور عبر HTTP. لجعل نشر Odoo أكثر أمانًا ، سنقوم بتهيئة Nginx كبديل لإنهاء طبقة المقابس الآمنة (SSL) سيخدم حركة المرور عبر
وكيل إنهاء SSL هو خادم وكيل يعالج تشفير / فك تشفير SSL. هذا يعني أن وكيل الإنهاء (Nginx) سيقوم بمعالجة وفك تشفير اتصالات TLS الواردة (HTTPS) ، ونقل الطلبات غير المشفرة إلى الخدمة الداخلية (Odoo). لن يتم تشفير حركة المرور بين Nginx و Odoo (HTTP).
يمنحك استخدام بروكسي عكسي الكثير من الفوائد ، مثل Load Balancing ، و SSL Termination ، و Caching ، و Compression ، وتقديم محتوى ثابت ، والمزيد.
تأكد من استيفاء الشروط التالية قبل المتابعة مع هذا القسم:
- يشير اسم المجال إلى عنوان IP الخاص بالخادم العام. سنستخدم
example.com.Nginx install.SSL شهادة لنطاقك. يمكنك تثبيت شهادة Let's Encrypt SSL المجانية.
افتح محرر النص الخاص بك وقم بإنشاء / تحرير كتلة خادم المجال:
sudo nano /etc/nginx/sites-enabled/example.com
يقوم التكوين التالي بإعداد SSL Termination ، HTTP to 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
تغيير واجهة الربط
هذه الخطوة اختيارية ، لكنها ممارسة أمنية جيدة.
بشكل افتراضي ، يستمع خادم Odoo إلى المنفذ
8069
على جميع الواجهات. لتعطيل الوصول المباشر إلى مثيل Odoo ، يمكنك إما حظر المنفذ
8069
لجميع الواجهات العامة أو إجبار Odoo على الاستماع فقط على الواجهة المحلية.
سنقوم بتهيئة Odoo للاستماع فقط على
127.0.0.1
. افتح التكوين أضف السطرين التاليين في نهاية الملف:
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1
احفظ ملف التكوين وأعد تشغيل خادم Odoo لتصبح التغييرات نافذة المفعول:
تمكين المعالجة المتعددة
بشكل افتراضي ، تعمل Odoo في وضع multithreading. بالنسبة لعمليات نشر الإنتاج ، يوصى بالتغيير إلى خادم المعالجة المتعددة لأنه يزيد من الاستقرار ، ويستخدم موارد النظام بشكل أفضل.
لتمكين المعالجة المتعددة ، تحتاج إلى تحرير تكوين Odoo وتعيين عدد غير صفري من العمليات المنفذة. يتم حساب عدد العمال بناءً على عدد مراكز وحدة المعالجة المركزية في النظام وذاكرة RAM المتوفرة.
وفقًا لوثائق Odoo الرسمية لحساب عدد العمال وحجم ذاكرة RAM المطلوبة ، يمكنك استخدام الصيغ والافتراضات التالية:
حساب عدد العمال
- العدد الأقصى النظري للعامل = (system_cpus * 2) + 11 عامل يمكنه تقديم ~ = 6 مستخدمين متزامنين
ذاكرة الوصول العشوائي حجم الحساب
- سوف نعتبر أن 20 ٪ من جميع الطلبات هي طلبات ثقيلة ، و 80 ٪ منها أخف وزنا. تستخدم الطلبات الثقيلة حوالي 1 غيغابايت من ذاكرة الوصول العشوائي بينما تستخدم الطلبات الأخف حوالي 150 ميغابايت من 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 نوى من وحدة المعالجة المركزية و 8 جيجابايت من ذاكرة الوصول العشوائي و 30 من مستخدمي Odoo المتزامنين.
-
30 users / 6 = **5**(5 هو العدد النظري للعمال المطلوبين)(4 * 2) + 1 = **9**(9 هو العدد الأقصى النظري للعاملين)
استنادًا إلى الحساب أعلاه ، يمكنك استخدام 5 عمال + عامل واحد لعامل cron وهو ما مجموعه 6 عمال.
حساب استهلاك ذاكرة RAM بناءً على عدد العمال:
-
RAM = 6 * ((0.8*150) + (0.2*1024)) ~= 2 GB of RAM
يظهر الحساب أن تثبيت Odoo سيحتاج إلى حوالي 2 جيجابايت من ذاكرة الوصول العشوائي.
للتبديل إلى وضع المعالجة المتعددة ، افتح ملف التكوين وإلحاق القيم المحسوبة:
/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 في بيئة بيثون الافتراضية باستخدام Nginx كوكيل عكسي. لقد أوضحنا لك أيضًا كيفية تمكين المعالجة المتعددة وتحسين Odoo لبيئة الإنتاج.
قد ترغب أيضًا في مراجعة البرنامج التعليمي الخاص بنا حول كيفية إنشاء نسخ احتياطية تلقائية يومية لقواعد بيانات Odoo.
أوبونتو odoo postgresql بيثون pip nginx الوكيل SSLكيفية نشر odoo 11 على أوبونتو 18.04
يغطي هذا الدليل الخطوات اللازمة لتثبيت وتكوين Odoo للإنتاج باستخدام Git source وبيئة Python الافتراضية على نظام Ubuntu 18.04.
كيفية نشر odoo 12 على أوبونتو 18.04
يغطي هذا البرنامج التعليمي الخطوات المطلوبة لتثبيت وتكوين Odoo 12 للإنتاج باستخدام مصدر Git وبيئة Python الافتراضية على نظام Ubuntu 18.04.
كيفية تثبيت odoo 11 على أوبونتو 16.04
Odoo هي واحدة من برامج الأعمال الأكثر شعبية في العالم. يغطي هذا الدليل الخطوات اللازمة لتثبيت وتكوين Odoo باستخدام مصدر Git وبيئة Python الافتراضية على Ubuntu 16.04







