Как установить Odoo 18 на AlmaLinux 9

Odoo предоставляет множество приложений, включая бухгалтерский учет, управление складами, CRM и электронную коммерцию. Такая универсальность делает его предпочтительным вариантом для предприятий любого размера. В этом руководстве вы узнаете, как установить Odoo 18 на AlmaLinux 9, что позволит вам получить полностью рабочий экземпляр Odoo на вашей системе Alma Linux. Тщательно следуйте каждому шагу и обращайтесь к этому руководству при необходимости.

Необходимые условия:

  • AlmaLinux 9 VPS
  • Не менее 2 ГБ оперативной памяти
  • SSH root-доступ или системный пользователь с привилегиями sudo

Шаг 1. Обновление системных пакетов

Для начала войдите на ваш Alma Linux 9 VPS, используя SSH:

ssh root@IP_Address -p Port_number

Замените IP_Address и Port_number на фактический IP-адрес вашего сервера и номер порта SSH. При необходимости замените root на имя пользователя вашей учетной записи sudo.

После входа в систему необходимо убедиться, что все пакеты ОС AlmaLinux, установленные на сервере, обновлены. Это можно сделать, выполнив следующие команды:

dnf update && dnf upgrade

Шаг 2. Установите зависимости:

После этого установите необходимые зависимости на ваш Сервер. Выполните следующую команду для установки этих зависимостей:

dnf install git gcc redhat-rpm-config libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel curl unzip openssl-devel wget yum-utils make libffi-devel zlib-devel tar

Шаг 3. Включите репозиторий PowerTools

Репозиторий PowerTools необходим для установки модуля psycopg2, который требуется Odoo для подключения к PostgreSQL. Вы можете активировать его, выполнив следующую команду:

dnf config-manager --set-enabled crb

Шаг 4. Установите Python 3.12:

Для работы Odoo 18 требуется Python 3.10 или более поздняя версия. Загрузите исходный код последней версии Python 3.12 – 3.12.7. Используйте следующую команду:

wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz

Вывод:

wget https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz
--2024-11-09 13:25:20--  https://www.python.org/ftp/python/3.12.7/Python-3.12.7.tgz
Resolving www.python.org (www.python.org)... 151.101.0.223, 151.101.64.223, 151.101.128.223, ...
Connecting to www.python.org (www.python.org)|151.101.0.223|:443... connected.
HTTP request sent, awaiting response... 200 OK
Length: 27016272 (26M) [application/octet-stream]
Saving to: Python-3.12.7.tgz
Python-3.12.7.tgz                                                              100%[==============================================================================================================================================================================================>]  25.76M  67.5MB/s    in 0.4s    
2024-11-09 13:25:21 (67.5 MB/s) - Python-3.12.7.tgz saved [27016272/27016272]

Затем извлеките загруженный файл с помощью следующей команды:

tar xvf Python-3.12.7.tgz

После извлечения перейдите в папку установки Python и выполните следующие команды:

cd Python-3.12.7
./configure --with-system-ffi --with-computed-gotos --enable-loadable-sqlite-extensions

Этот шаг настроит установку Python и сконфигурирует его для компиляции.

Далее мы скомпилируем и установим исходный код с помощью команды make. Используйте следующие команды:

make -j ${nproc} 
make altinstall

После завершения установки проверьте версию Python с помощью следующей команды:

python3.12 -V

Вы должны получить следующий результат:

python3.12 -V
Python 3.12.7

Шаг 5. Установите PostgreSQL:

Odoo использует PostgreSQL в качестве системы баз данных и требует версию 12.0 или более позднюю. Поэтому вам нужно добавить официальный репозиторий PostgreSQL для системы Alma Linux, выполнив следующую команду:

dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

Теперь установите последнюю версию PostgreSQL, выполнив следующую команду:

dnf install -y postgresql17-server postgresql17 postgresql17-devel

После завершения установки инициализируйте базу данных PostgreSQL:

/usr/pgsql-17/bin/postgresql-17-setup initdb

Затем запустите и включите службу PostgreSQL с помощью следующей команды. Эта команда запустит PostgreSQL и настроит его на автоматический запуск во время загрузки.

systemctl enable postgresql-17 && systemctl start postgresql-17

После установки PostgreSQL создайте нового пользователя PostgreSQL для Odoo с помощью следующей команды:

su - postgres -c "createuser -s odoo18"

Шаг 6. Установите Wkhtmltopdf:

Чтобы облегчить печать в Odoo 18, вам понадобится wkhtmltopdf версии выше 0.12.5. Wkhtmltopdf – это инструмент командной строки, который преобразует HTML-контент в формат PDF с помощью Qt WebKit. Чтобы установить wkhtmltopdf на сервер Alma Linux, выполните следующую команду:

dnf install -y https://github.com/wkhtmltopdf/packaging/releases/download/0.12.6.1-2/wkhtmltox-0.12.6.1-2.almalinux9.x86_64.rpm

После завершения установки вы можете проверить версию с помощью следующей команды::

wkhtmltopdf --version

Вывод:

wkhtmltopdf --version
wkhtmltopdf 0.12.6.1 (with patched qt)

Шаг 7. Установка и настройка Odoo 18 на AlmaLinux 9

Мы будем настраивать экземпляр Odoo 18, используя специальную учетную запись пользователя системы. Для этого создадим новую системную учетную запись odoo18 с помощью следующей команды.

useradd -m -d /opt/odoo18 -U -r -s /bin/bash odoo18

Далее заходим под пользователем odoo18 и клонируем репозиторий Odoo 18 с GitHub:

su - odoo18
git clone https://www.github.com/odoo/odoo --depth 1 --branch 18.0 /opt/odoo18/odoo

Далее создайте новую виртуальную среду python для Odoo 18 следующей командой:

python3.12 -m venv odoo18-venv

Затем активируйте виртуальную среду:

source odoo18-venv/bin/activate

Затем установите все необходимые зависимости Python с помощью следующей команды:

pip3 install wheel 
pip3 install -r odoo/requirements.txt

Теперь вы можете деактивировать виртуальную среду и создать новую директорию для загрузки ваших пользовательских дополнений Odoo:

deactivate
mkdir /opt/odoo18/custom-addons

После завершения установки Odoo выйдите из системы под пользователем odoo18 и создайте каталог журнала Odoo.

exit
mkdir /var/log/odoo18

Обязательно установите права для пользователя Odoo:

chown -R odoo18: /var/log/odoo18/

Далее создайте файл конфигурации Odoo с помощью следующей команды:

nano /etc/odoo18.conf

Скопируйте и вставьте следующее содержимое в файл конфигурации Odoo:

[options]
admin_passwd = StrongPassword
db_host = False
db_port = False
db_user = odoo18
db_password = False
xmlrpc_port = 8069
logfile = /var/log/odoo18/odoo.log
addons_path = /opt/odoo18/odoo/addons,/opt/odoo18/custom-addons

Обязательно обновите значение ключа StrongPassword, указанное выше, на более надежный пароль. Он используется в качестве главного пароля Odoo, необходимого для создания, удаления и восстановления баз данных.

Шаг 8. Создание файла службы Odoo Systemd

Теперь, когда Odoo установлен и настроен, для его запуска, перезапуска или остановки необходимо создать файл службы systemd. Вы можете создать его с помощью следующей команды:

nano /etc/systemd/system/odoo18.service

Добавьте следующие строки:

[Unit]
Description=Odoo18
Requires=postgresql-17.service
After=network.target postgresql-17.service
[Service]
Type=simple
SyslogIdentifier=odoo18
PermissionsStartOnly=true
User=odoo18
Group=odoo18
ExecStart=/opt/odoo18/odoo18-venv/bin/python3 /opt/odoo18/odoo/odoo-bin -c /etc/odoo18.conf
StandardOutput=journal+console
[Install]
WantedBy=multi-user.target

Сохраните и закройте файл, затем перезагрузите демон systemd, чтобы применить изменения:

systemctl daemon-reload

Далее запустите и включите службу Odoo 18 с помощью следующей команды. Эта команда запустит Odoo 18 и настроит его на автоматический запуск во время загрузки.

systemctl start odoo18 && systemctl enable odoo18

Проверьте, правильно ли запущена служба Odoo 18, с помощью следующей команды:

systemctl status odoo18

Если служба запущена правильно, ее вывод должен быть похож на следующий:

systemctl status odoo18
● odoo18.service - Odoo18
     Loaded: loaded (/etc/systemd/system/odoo18.service; enabled; preset: disabled)
     Active: active (running) since Sat 2024-11-09 14:10:21 CST; 2s ago
   Main PID: 21474 (python3)
      Tasks: 1 (limit: 23191)
     Memory: 65.8M
        CPU: 1.939s
     CGroup: /system.slice/odoo18.service
             └─21474 /opt/odoo18/odoo18-venv/bin/python3 /opt/odoo18/odoo/odoo-bin -c /etc/odoo18.conf

Вы можете получить доступ к бэкенду Odoo, используя URL http://YOUR_SERVER_IP:8069. Вы должны увидеть следующую страницу:

Шаг 9. Настройка обратного прокси

Если вы хотите использовать доменное имя вместо IP-адреса вашего сервера, вам потребуется веб-сервер. В этом руководстве мы установим и используем Nginx. Выполните следующую команду для установки nginx:

dnf install -y nginx

Далее создайте блок сервера Nginx:

nano /etc/nginx/conf.d/odoo18.conf

Добавьте следующие строки:

upstream odoo {
  server 127.0.0.1:8069;
}
upstream odoochat {
  server 127.0.0.1:8072;
}
map $http_upgrade $connection_upgrade {
  default upgrade;
  ''      close;
}
server {
  listen 80;
  server_name odoo.mydomain.com;
  proxy_read_timeout 720s;
  proxy_connect_timeout 720s;
  proxy_send_timeout 720s;
  access_log /var/log/nginx/odoo.access.log;
  error_log /var/log/nginx/odoo.error.log;
  location /websocket {
    proxy_pass http://odoochat;
    proxy_set_header Upgrade $http_upgrade;
    proxy_set_header Connection $connection_upgrade;
    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;
  }
  location / {
    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;
    proxy_redirect off;
    proxy_pass http://odoo;
  }
  gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
  gzip on;
}

Обязательно обновите odoo.mydomain.com на ваше доменное имя.

Сохраните и закройте файл, затем перезагрузите службу nginx, чтобы применить изменения:

systemctl reload nginx

Теперь вы можете получить доступ к Odoo, используя свое доменное имя на сайте http://odoo.mydomain.com, и начать работу над проектом. Для получения более подробной информации о Odoo 18, его возможностях и настройке, обратитесь к официальной документации.

Зарубин Иван Эксперт по Linux и Windows

Парашютист со стажем. Много читаю и слушаю подкасты. Люблю посиделки у костра, песни под гитару и приближающиеся дедлайны. Люблю путешествовать.

Похожие статьи

Комментарии (0)