ذكري المظهر

كيفية نشر odoo 12 على أوبونتو 18.04

تثبيت توزيعة لينكس داخل وندوز

تثبيت توزيعة لينكس داخل وندوز

جدول المحتويات:

Anonim

Odoo هو برنامج الأعمال الأكثر شعبية الكل في واحد في العالم. إنه يوفر مجموعة من تطبيقات الأعمال بما في ذلك CRM ، والموقع الإلكتروني ، والتجارة الإلكترونية ، وإعداد الفواتير ، والمحاسبة ، والتصنيع ، والمستودعات ، وإدارة المشاريع ، والمخزون ، وأكثر من ذلك بكثير ، كلها متكاملة.

يمكن تثبيت Odoo بعدة طرق مختلفة. إن أسهل وأسرع طريقة لتثبيت Odoo هي باستخدام مستودعات APT الرسمية الخاصة بهم.

يغطي هذا البرنامج التعليمي الخطوات المطلوبة لتثبيت وتكوين Odoo 12 للإنتاج باستخدام مصدر Git وبيئة Python الافتراضية على نظام Ubuntu 18.04.

قبل ان تبدأ

سجل دخولك إلى جهاز Ubuntu كمستخدم sudo وقم بتحديث النظام إلى أحدث الحزم:

sudo apt update && sudo apt upgrade

تثبيت 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

قم بإنشاء مستخدم نظام جديد لـ Odoo باسم odoo12 باستخدام الدليل الرئيسي /opt/odoo12 باستخدام الأمر التالي:

sudo useradd -m -d /opt/odoo12 -U -r -s /bin/bash odoo12 يمكنك استخدام أي اسم لمستخدم Odoo طالما قمت بإنشاء مستخدم PostgreSQL بنفس الاسم.

تثبيت وتكوين بوستجرس

قم بتثبيت حزمة PostgreSQL من مستودعات أوبونتو الافتراضية:

sudo apt install postgresql

بمجرد اكتمال التثبيت ، قم بإنشاء مستخدم PostgreSQL بنفس اسم مستخدم النظام الذي تم إنشاؤه مسبقًا ، وفي حالتنا هذا هو odoo12 :

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

تثبيت Wkhtmltopdf

توفر حزمة wkhtmltox مجموعة من أدوات سطر الأوامر مفتوحة المصدر والتي يمكن أن تجعل HTML في PDF وتنسيقات الصور المختلفة. من أجل طباعة تقارير PDF ، ستحتاج إلى أداة wkhtmltopdf . الإصدار الموصى به لـ Odoo هو 0.12.1 وهو غير متوفر في مستودعات Ubuntu 18.04 الرسمية.

قم بتنزيل الحزمة باستخدام الأمر wget التالي:

wget

بمجرد اكتمال التنزيل ، قم بتثبيت الحزمة عن طريق الكتابة:

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

تثبيت وتكوين Odoo

سنقوم بتثبيت Odoo من مستودع جيثب داخل بيئة بيثون الافتراضية المعزولة.

قبل البدء في عملية التثبيت ، قم بالتغيير إلى المستخدم "odoo12":

sudo su - odoo12

ابدأ باستنساخ شفرة مصدر Odoo 12 من مستودع جيثب:

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

بمجرد تنزيل التعليمات البرمجية المصدر ، قم بإنشاء بيئة Python افتراضية جديدة لتثبيت Odoo 12:

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

بعد ذلك ، قم بتنشيط البيئة باستخدام الأمر التالي:

source odoo-venv/bin/activate

تثبيت جميع وحدات بايثون المطلوبة مع pip3:

pip3 install wheel pip3 install -r odoo/requirements.txt إذا واجهت أي أخطاء في الترجمة أثناء التثبيت ، فتأكد من تثبيت جميع التبعيات المطلوبة المدرجة في قسم " Before you begin .

قم بإلغاء تنشيط البيئة باستخدام الأمر التالي:

deactivate

إنشاء دليل جديد للإضافات المخصصة:

mkdir /opt/odoo12/odoo-custom-addons

العودة إلى مستخدم sudo الخاص بك:

exit

بعد ذلك ، قم بإنشاء ملف تكوين ، عن طريق نسخ ملف تكوين العينة المضمّن:

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

افتح الملف وقم بتحريره كما يلي:

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 إلى شيء أكثر أمانًا.

إنشاء ملف وحدة Systemd

لتشغيل Odoo كخدمة ، نحتاج إلى إنشاء ملف وحدة خدمة في الدليل /etc/systemd/system/ .

افتح محرر النصوص والصق التكوين التالي:

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 بوجود ملف وحدة جديد وبدء تشغيل خدمة Odoo عن طريق تشغيل:

sudo systemctl daemon-reload sudo systemctl start odoo12

تحقق من حالة الخدمة باستخدام الأمر التالي:

sudo systemctl status odoo12

يجب أن يبدو الإخراج كما يلي أدناه للإشارة إلى أن خدمة Odoo نشطة وتعمل.

* 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 تلقائيًا في وقت التمهيد:

sudo systemctl enable odoo12

sudo journalctl -u odoo12

اختبار التثبيت

افتح متصفحك واكتب: http://:8069 http://:8069

على افتراض نجاح التثبيت ، ستظهر شاشة مشابهة للشاشة التالية:

قم بتكوين Nginx كوكيل إنهاء SSL

تأكد من استيفاء الشروط التالية قبل المتابعة مع هذا القسم:

  • يشير اسم المجال إلى عنوان IP الخاص بالخادم العام. في هذا البرنامج التعليمي ، سوف نستخدم example.com .Nginx install.SSL شهادة لنطاقك. يمكنك تثبيت شهادة Let's Encrypt SSL المجانية.

خادم الويب الافتراضي Odoo يقدم حركة مرور عبر HTTP. لجعل نشر Odoo أكثر أمانًا ، سنقوم بتهيئة Nginx كبديل لإنهاء طبقة المقابس الآمنة (SSL) سيخدم حركة المرور عبر

وكيل إنهاء SSL هو خادم وكيل يعالج تشفير / فك تشفير SSL. هذا يعني أن وكيل الإنهاء لدينا (Nginx) سيقوم بمعالجة وفك تشفير اتصالات TLS الواردة (HTTPS) ، وسوف ينقل الطلبات غير المشفرة إلى خدمتنا الداخلية (Odoo) وبالتالي لن يتم تشفير حركة المرور بين Nginx و Odoo (HTTP).

يمنحك استخدام بروكسي عكسي الكثير من الفوائد ، مثل Load Balancing ، و SSL Termination ، و Caching ، و Compression ، وتقديم محتوى ثابت وأكثر من ذلك.

في هذا المثال ، سنقوم بتهيئة SSL Termination ، HTTP لإعادة توجيه HTTPS ، WWW إلى إعادة توجيه غير WWW ، تخزين مؤقت للملفات الثابتة وتمكين ضغط GZip.

افتح محرر النصوص الخاص بك وقم بإنشاء الملف التالي:

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 بنطاق Odoo وتعيين المسار الصحيح لملفات شهادة SSL. يتم إنشاء المقتطفات المستخدمة في هذا التكوين في هذا الدليل.

بمجرد الانتهاء ، أعد تشغيل خدمة Nginx باستخدام:

sudo systemctl restart nginx

بعد ذلك ، نحتاج إلى إخبار Odoo بأننا سنستخدم الوكيل. للقيام بذلك ، افتح ملف التكوين وأضف السطر التالي:

/etc/odoo12.conf

proxy_mode = True

أعد تشغيل خدمة Odoo لتصبح التغييرات نافذة المفعول:

sudo systemctl restart odoo12

في هذه المرحلة ، يتم تكوين الخادم الخاص بك ويمكنك الوصول إلى مثيل Odoo الخاص بك على: https://example.com

تغيير واجهة الربط

هذه الخطوة اختيارية ، لكنها ممارسة أمنية جيدة.

بشكل افتراضي ، يستمع خادم Odoo إلى المنفذ 8069 على جميع الواجهات. إذا كنت تريد تعطيل الوصول المباشر إلى مثيل Odoo الخاص بك ، يمكنك إما حظر المنفذ 8069 لجميع الواجهات العامة أو إجبار Odoo على الاستماع فقط على الواجهة المحلية.

في هذا الدليل ، سنقوم بتهيئة Odoo للاستماع فقط على 127.0.0.1 . افتح التكوين أضف السطرين التاليين في نهاية الملف:

/etc/odoo12.conf

xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1

احفظ ملف التكوين وأعد تشغيل خادم Odoo لتصبح التغييرات نافذة المفعول:

sudo systemctl restart odoo12

تمكين المعالجة المتعددة

بشكل افتراضي ، تعمل 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/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

أعد تشغيل خدمة Odoo لتصبح التغييرات نافذة المفعول:

sudo systemctl restart odoo12

سيتم استخدام بقية موارد النظام بواسطة الخدمات الأخرى التي تعمل على هذا النظام. في هذا الدليل ، قمنا بتثبيت Odoo جنبًا إلى جنب مع PostgreSQL و Nginx على نفس الخادم ووفقًا لإعدادك ، فقد يكون لديك أيضًا خدمات أخرى تعمل على الخادم الخاص بك.

استنتاج

مررتك هذه الدورة التعليمية عبر تثبيت Odoo 12 على Ubuntu 18.04 في بيئة بيثون الافتراضية باستخدام Nginx كوكيل عكسي. لقد تعلمت أيضًا كيفية تمكين المعالجة المتعددة وتحسين Odoo لبيئة الإنتاج.

قد ترغب أيضًا في مراجعة البرنامج التعليمي الخاص بنا حول كيفية إنشاء نسخ احتياطية تلقائية يومية لقواعد بيانات Odoo.

أوبونتو odoo postgresql بيثون pip nginx الوكيل SSL