Linux

Инсталирайте Odoo 14 на CentOS 8

Инсталирайте Odoo 14 на CentOS 8

Odoo е най-популярният бизнес софтуер "всичко в едно" в света. Той предлага редица бизнес приложения, включително CRM, уебсайт, електронна търговия, фактуриране, счетоводство, производство, склад, управление на проекти, инвентаризация и много други, всички безпроблемно интегрирани.

Odoo може да се инсталира по различни начини, в зависимост от случая на употреба и наличните технологии. Най-лесният и бърз начин за инсталиране на Odoo е чрез използване на официалните хранилища на Odoo APT.

Инсталирането на Odoo във виртуална среда или внедряването като контейнер на Docker ви дава по-голям контрол над приложението и ви позволява да стартирате множество екземпляри на Odoo в една и съща система.

Тази статия обяснява как да инсталирате и разположите Odoo 14 във виртуална среда на Python на CentOS 8. Ще изтеглим Odoo от официалното хранилище на GitHub и ще използваме Nginx като обратен прокси.

Инсталиране на предпоставки #

Odoo е написан на Python. Първата стъпка е да инсталирате Python 3, Git, pip и всички библиотеки и инструменти, необходими за изграждането на Odoo от източника:

sudo dnf инсталиране на python3 python3-devel git gcc sassc redhat-rpm-config libxslt-devel \ bzip2-devel openldap-devel libjpeg-devel freetype-devel

Създаване на системен потребител

Изпълнението на Odoo под root потребителя не е разрешено, тъй като представлява риск за сигурността. Създайте нов системен потребител и група с домашна директория / opt / odoo която ще стартира услугата Odoo:

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

Можете да назовете потребителя, каквото искате; просто се уверете, че сте създали потребител на PostgreSQL със същото име.

Инсталиране и конфигуриране на PostgreSQL #

Odoo използва PostgreSQL като back-end на базата данни. Ще инсталираме PostgreSQL 12 от стандартните хранилища CentOS 8:

sudo dnf install @postgresql: 12

След като инсталацията приключи, създайте нов клъстер на база данни PostgreSQL:

sudo postgresql-setup initdb

Активирайте и стартирайте услугата PostgreSQL:

sudo systemctl enable --now postgresql

Създайте потребител на PostgreSQL със същото име като предишния създаден системен потребител. В този пример, т.е odoo14:

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

Инсталиране на Wkhtmltopdf #

wkhtmltopdf е набор от инструменти с команден ред с отворен код за изобразяване на HTML страници в PDF и различни формати на изображения. За да отпечатате PDF отчети в Odoo, ще трябва да инсталирате wkhtmltox пакет. Препоръчителната версия за Odoo е версия 0.12.5, които могат да бъдат изтеглени и инсталирани от Github:

sudo dnf инсталиране https: // github.com / wkhtmltopdf / wkhtmltopdf / releases / download / 0.12.5 / wkhtmltox-0.12.5-1.centos8.x86_64.об / мин

Инсталиране и конфигуриране на Odoo 14 #

Ще инсталираме Odoo от източника в изолирана виртуална среда на Python.

Първо, преминете към потребител “odoo14”:

sudo su - odoo14

Клонирайте изходния код на Odoo 14 от хранилището на Odoo GitHub:

git clone https: // www.github.com / odoo / odoo - дълбочина 1 - клон 14.0 / opt / odoo14 / odoo

Придвижете се до / opt / odoo14 директория и създайте нова виртуална среда на Python за инсталацията на Odoo:

cd / opt / odoo14python3 -m venv venv

Активирайте околната среда с помощта на източник команда:

източник venv / bin / активиране

Инсталирайте необходимите модули на Python:

pip3 install -r odoo / изисквания.текст
Ако срещнете някаква грешка при компилацията по време на инсталацията, уверете се, че всички необходими зависимости са изброени в Инсталиране на предпоставки раздел са инсталирани.

След като приключите, деактивирайте околната среда, като напишете:

деактивирайте

Създайте нова директория за персонализираните добавки:

mkdir / opt / odoo14 / odoo-custom-addons

Ще добавим тази директория към addons_path параметър. Този параметър дефинира списък с директории, в които Odoo търси модули.

Върнете се обратно към вашия sudo потребител:

изход

Създайте конфигурационен файл със следното съдържание:

sudo nano / etc / odoo14.конф
/ etc / odoo14.конф
[опции] admin_passwd = superadmin_passwd db_host = False db_port = False db_user = odoo14 db_password = False addons_path = / opt / odoo14 / odoo / addons, / opt / odoo14 / odoo-custom-addons 

Запазете и затворете файла.

Не забравяйте да смените superadmin_passwd към нещо по-сигурно.

Създаване на Systemd Unit #

Отворете вашия текстов редактор и създайте файл с услуга, наречен odoo14.обслужване със следното съдържание:

sudo nano / etc / systemd / system / odoo14.обслужване

Поставете следното съдържание:

/ etc / systemd / system / odoo14.обслужване
[Единица] Описание = Odoo14 Изисква = postgresql.услуга After = мрежа.целеви postgresql.услуга [услуга] Тип = прост SyslogIdentifier = odoo14 PermissionsStartOnly = вярно Потребител = odoo14 Група = odoo14 ExecStart = / opt / odoo14 / venv / bin / python3 / opt / odoo14 / odoo / odoo-bin -c / etc / odoo14.conf StandardOutput = journal + console [Install] WantedBy = multi-user.мишена 

Уведомете systemd, че съществува нов файл с единица:

sudo systemctl daemon-reload

Стартирайте и активирайте услугата Odoo:

sudo systemctl enable --now odoo14

Проверете дали Odoo работи със следната команда:

sudo systemctl статус odoo14

Резултатът трябва да изглежда по следния начин, показвайки, че услугата Odoo е активна и работи:

● odoo14.услуга - Odoo14 Заредено: заредено (/ etc / systemd / system / odoo14.обслужване; активиран; предварително зададена от доставчика: деактивирана) Активна: активна (работи) от понеделник 2020-11-02 20:12:24 UTC; Преди 3 секунди .. 

За да видите съобщенията, регистрирани от услугата Odoo, използвайте следната команда:

sudo journalctl -u odoo14

Тествайте инсталацията #

Отворете браузъра си и напишете: http: //: 8069

Ако приемем, че инсталацията е успешна, ще се появи екран, подобен на следния:

Ако не можете да осъществите достъп до страницата, уверете се, че сте порт 8069 е отворен във вашата защитна стена:

sudo firewall-cmd --permanent --zone = public --add-port = 8069 / tcpsudo firewall-cmd --reload

Конфигуриране на Nginx като SSL терминален прокси номер

По подразбиране уеб сървърът Odoo обслужва трафик през HTTP. За да направим екземпляра на Odoo по-сигурен, ще конфигурираме Nginx като SSL терминален прокси сървър, който ще обслужва трафика през HTTPS.

Прекратяването на SSL прокси е прокси сървър, който обработва SSL криптирането / декриптирането. Това означава, че терминалният прокси (Nginx) ще обработва и дешифрира входящите TLS връзки (HTTPS) и ще предава некриптираните заявки на вътрешната услуга (Odoo). Трафикът между Nginx и Odoo няма да бъде криптиран (HTTP).

Използването на обратен прокси ви дава много предимства като балансиране на натоварването, прекратяване на SSL, кеширане, компресия, обслужване на статично съдържание и други.

Уверете се, че сте изпълнили следните предпоставки, преди да продължите с този раздел:

Отворете вашия текстов редактор и създайте / редактирайте блока на сървъра на домейн:

sudo nano / etc / nginx / conf.г / пример.com

Следващата конфигурация настройва SSL Прекратяване, HTTP към HTTPS пренасочване, WWW към не-WWW пренасочване, кеширане на статичните файлове и активиране на GZip компресия.

/ etc / nginx / conf.г / пример.com
# Odoo сървъри нагоре по веригата odoo сървър 127.0.0.1: 8069;  нагоре по веригата odoochat сървър 127.0.0.1: 8072;  # HTTP -> HTTPS сървър слушане 80; име на сървър www.пример.com пример.com; включва фрагменти / letsencrypt.conf; върнете 301 https: // пример.com $ request_uri;  # WWW -> НЕ WWW сървър слушане 443 ssl http2; име на сървър www.пример.com; ssl_certificate / etc / letsencrypt / live / example.com / пълна верига.пем; ssl_certificate_key / etc / letsencrypt / live / example.com / privkey.пем; ssl_trusted_certificate / etc / letsencrypt / live / example.com / верига.пем; включва фрагменти / ssl.conf; върнете 301 https: // пример.com $ request_uri;  сървър слушане 443 ssl http2; пример за име на сървър.com; proxy_read_timeout 720s; proxy_connect_timeout 720s; proxy_send_timeout 720s; # Прокси заглавки proxy_set_header X-Forwarded-Host $ host; proxy_set_header X-Forwarded-For $ proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $ схема; proxy_set_header X-Real-IP $ remote_addr; # SSL параметри ssl_certificate / etc / letsencrypt / live / example.com / пълна верига.пем; ssl_certificate_key / etc / letsencrypt / live / example.com / privkey.пем; ssl_trusted_certificate / etc / letsencrypt / live / example.com / верига.пем; включва фрагменти / ssl.conf; включва фрагменти / letsencrypt.conf; # регистрационни файлове access_log / var / log / nginx / odoo.достъп.дневник; error_log / var / log / nginx / odoo.грешка.дневник; # Обработвайте искания за longpoll местоположение / longpolling proxy_pass http: // odoochat;  # Обработка / заявки за местоположение / прокси_редирект изключен; proxy_pass http: // odoo;  # Кеширане на статични файлове местоположение ~ * / web / static / proxy_cache_valid 200 90m; proxy_buffering на; изтича 864000; proxy_pass http: // odoo;  # Gzip gzip_types text / css text / less text / обикновен текст / xml application / xml application / json application / javascript; gzip на;  
Не забравяйте да замените примера.com с вашия Odoo домейн и задайте правилния път към SSL файловете за сертификати. Фрагментите, използвани в тази конфигурация, са създадени в това ръководство .

След като приключите, рестартирайте услугата Nginx:

sudo systemctl рестартирайте nginx

След това трябва да кажем на Odoo да използва проксито. За целта отворете конфигурационния файл и добавете следния ред:

/ etc / odoo14.конф
proxy_mode = Вярно 

Рестартирайте услугата Odoo, за да влязат в сила промените:

sudo systemctl рестартирайте odoo14

На този етап обратният прокси е конфигуриран и можете да получите достъп до вашия екземпляр на Odoo на https: // пример.com.

Промяна на свързващия интерфейс #

Тази стъпка не е задължителна, но е добра практика за сигурност.

По подразбиране сървърът Odoo слуша порт 8069 на всички интерфейси. За да деактивирате директния достъп до екземпляра Odoo, можете да блокирате порта 8069 за всички публични интерфейси или принудете Odoo да слуша само на локалния интерфейс.

Ще конфигурираме Odoo да слуша само на 127.0.0.1. Отворете конфигурацията, добавете следните два реда в края на файла:

/ etc / odoo14.конф
xmlrpc_interface = 127.0.0.1 netrpc_interface = 127.0.0.1 

Запазете конфигурационния файл и рестартирайте Odoo сървъра, за да влязат в сила промените:

sudo systemctl рестартирайте odoo14

Активиране на мултипроцесинг #

По подразбиране Odoo работи в многопоточен режим. За производствени разгръщания се препоръчва да преминете към многопроцесорния сървър, тъй като той увеличава стабилността и прави по-добро използване на системните ресурси.

За да активирате многопроцесорната обработка, трябва да редактирате конфигурацията на Odoo и да зададете ненулев брой работни процеси. Броят на работниците се изчислява въз основа на броя ядра на процесора и наличната RAM.

Според официалната документация на Odoo, за да изчислите броя на работниците и необходимия размер на RAM паметта, можете да използвате следните формули и предположения:

Изчисляване на броя на работниците

Изчисляване на размера на RAM паметта

Ако не знаете колко процесора имате във вашата система, използвайте следното grep команда:

grep -c ^ процесор / proc / cpuinfo

Да предположим, че имате система с 4 процесорни ядра, 8 GB RAM памет и 30 едновременни потребители на Odoo.

Въз основа на изчислението по-горе, можете да използвате 5 работници + 1 работник за cron работник, общо 6 работници.

Изчислете потреблението на RAM въз основа на броя на работещите:

Изчислението показва, че инсталацията на Odoo ще се нуждае от около 2 GB RAM.

За да превключите в многопроцесорен режим, отворете конфигурационния файл и добавете изчислените стойности:

/ etc / odoo14.конф
limit_memory_hard = 2684354560 limit_memory_soft = 2147483648 limit_request = 8192 limit_time_cpu = 600 limit_time_real = 1200 max_cron_threads = 1 работници = 5 

Рестартирайте услугата Odoo, за да влязат в сила промените:

sudo systemctl рестартирайте odoo14

Останалите системни ресурси ще бъдат използвани от други услуги, които работят в тази система. В това ръководство инсталирахме Odoo заедно с PostgreSQL и Nginx на същия сървър. В зависимост от вашата настройка може да имате и други услуги, работещи на вашия сървър.

Заключение №

Тази статия ви преведе през инсталацията на Odoo 14 на CentOS 8 във виртуална среда на Python, използвайки Nginx като обратен прокси. Също така ви показахме как да активирате многообработка и да оптимизирате Odoo за производствена среда.

Можете също така да проверите нашия урок за това как да създавате автоматични ежедневни архиви на бази данни Odoo .

Ако имате въпроси, не се колебайте да оставите коментар по-долу.

Как да промените левия и десния бутон на мишката на компютър с Windows 10
Напълно нормално е всички устройства на компютърни мишки да са ергономично проектирани за десничари. Но има налични устройства за мишка, които са спец...
Емулирайте кликванията на мишката, като задържите курсора на мишката с кликаща мишка в Windows 10
Използването на мишка или клавиатура в неправилна поза при прекомерна употреба може да доведе до много здравословни проблеми, включително напрежение, ...
Добавете жестове на мишката към Windows 10, като използвате тези безплатни инструменти
През последните години компютрите и операционните системи значително се развиха. Имаше време, когато потребителите трябваше да използват команди за на...