
Odoo — самое популярное в мире комплексное программное обеспечение для бизнеса. Оно предлагает широкий спектр бизнес-приложений, включая CRM, веб-сайт, электронную коммерцию, выставление счетов, бухгалтерский учет, производство, склад, управление проектами, инвентаризацию и многое другое, — все они легко интегрируются.
В этом руководстве мы покажем вам, как установить Odoo 12 из исходного кода в виртуальной среде Python на машине CentOS 7.
Предпосылки
Прежде чем приступить к выполнению инструкций, убедитесь, что вы вошли в систему как пользователь с привилегиями sudo .
Установка Python 3.6 и зависимостей Odoo
Мы установим пакеты Python 3.6 из репозитория Software Collections (SCL).
Включив SCL, вы получите доступ к новым версиям языков программирования и сервисов, которые недоступны в основных репозиториях.
Включите репозитории EPEL и SCL с помощью следующей команды:
sudo yum install epel-release centos-release-scl
После включения репозиториев установите Python 3.6 и все инструменты, необходимые для сборки зависимостей Odoo:
sudo yum install rh-python36 git gcc wget nodejs-less libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel
Во время установки вам будет предложено принять ключи GPG.
Создать пользователя Odoo
Создайте нового системного пользователя и группу с домашним каталогом /opt/odoo , которые будут запускать службу Odoo:
sudo useradd -m -U -r -d /opt/odoo12 -s /bin/bash odoo12
Вы можете назвать пользователя как угодно, просто не забудьте создать пользователя PostgreSQL с таким же именем.
Установка и настройка PostgreSQL
На момент написания этой статьи последней версией PostgreSQL, доступной в репозиториях CentOS, была PostgreSQL версии 9.2, которая официально не поддерживается Odoo.
Мы установим PostgreSQL 10 из официальных репозиториев PostgreSQL.
Начните с включения репозитория PostgreSQL:
sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-2.noarch.rpm
Установите сервер PostgreSQL и создайте новый кластер баз данных PostgreSQL:
sudo yum install postgresql10-server postgresql10-develsudo /usr/pgsql-10/bin/postgresql-10-setup initdb
После завершения установки включите и запустите службу PostgreSQL:
sudo systemctl enable postgresql-10sudo systemctl start postgresql-10
Создайте пользователя PostgreSQL с тем же именем, что и у ранее созданного системного пользователя, в нашем случае odoo12 :
sudo su - postgres -c "createuser -s odoo12"
Установить Wkhtmltopdf
Пакет wkhtmltox предоставляет набор инструментов командной строки с открытым исходным кодом, которые позволяют преобразовывать HTML в PDF и различные форматы изображений. Для печати PDF-отчётов вам понадобится инструмент wkhtmltopdf . Рекомендуемая версия Odoo — 0.12.1 , которая отсутствует в официальных репозиториях CentOS 7.
Загрузите рекомендуемую версию с помощью следующей команды wget :
wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.1/wkhtmltox-0.12.1_linux-centos7-amd64.rpm
После завершения загрузки установите пакет rpm , введя:
sudo yum localinstall wkhtmltox-0.12.1_linux-centos7-amd64.rpm
Установка и настройка Odoo 12
Перед началом процесса установки убедитесь, что вы переключились на пользователя «odoo12»:
sudo su - odoo12
Начните с клонирования исходного кода Odoo 12 из репозитория Odoo GitHub:
git clone https://www.github.com/odoo/odoo --depth 1 --branch 12.0 /opt/odoo12/odoo
Включаем коллекции программного обеспечения, чтобы мы могли получить доступ к бинарным файлам Python 3.6:
scl enable rh-python36 bash
Создайте новую виртуальную среду Python для установки Odoo с помощью:
cd /opt/odoo12python3 -m venv venv
Активируйте среду:
source venv/bin/activate
Установите все необходимые модули Python:
pip3 install -r odoo/requirements.txt
Если во время установки у вас возникли ошибки компиляции, убедитесь, что вы установили все необходимые зависимости, перечисленные в разделе Install Python 3.6 and Odoo Dependencies .
После завершения установки деактивируйте среду с помощью следующей команды:
deactivate
Создайте новый каталог для пользовательских дополнений:
mkdir /opt/odoo12/odoo-custom-addons
Вернитесь к своему пользователю sudo:
exit
Затем откройте текстовый редактор и создайте следующий файл конфигурации:
sudo nano /etc/odoo12.conf
/etc/odoo12.conf
[options] ; This is the password that allows database operations: admin_passwd = superadmin_passwd db_host = False db_port = False db_user = odoo12 db_password = False addons_path = /opt/odoo12/odoo/addons, /opt/odoo12/odoo-custom-addons
Сохраните и закройте файл.
Не забудьте изменить superadmin_passwd на более безопасный.
Создайте файл модуля systemd
Для запуска Odoo как сервиса мы создадим unit-файл.
Откройте текстовый редактор и создайте файл с именем odoo12.service внутри каталога /etc/systemd/system/ :
sudo nano /etc/systemd/system/odoo12.service
Вставьте следующее содержимое:
/etc/systemd/system/odoo12.service
[Unit] Description = Odoo12 Requires = postgresql-10.service After = network.target postgresql-10.service [Service] Type = simple SyslogIdentifier = odoo12 PermissionsStartOnly = true User = odoo12 Group = odoo12 ExecStart = /usr/bin/scl enable rh-python36 -- /opt/odoo12/venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf StandardOutput = journal+console [Install] WantedBy = multi-user.target
Сохраните файл и закройте редактор.
Сообщите Systemd о создании нового файла модуля:
sudo systemctl daemon-reload
Запустите и включите службу Odoo, выполнив:
sudo systemctl enable odoo12sudo systemctl start odoo12
Проверить состояние службы можно с помощью следующей команды:
sudo systemctl status odoo12
● odoo12.service - Odoo12 Loaded: loaded (/etc/systemd/system/odoo12.service; disabled; vendor preset: disabled) Active: active (running) since Tue 2018-10-30 16:35:09 UTC; 6s ago Main PID: 24649 (scl) CGroup: /system.slice/odoo12.service ├─24649 /usr/bin/scl enable rh-python36 -- /opt/odoo12/venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf ├─24650 /bin/bash /var/tmp/scldyaa9h └─24653 /opt/odoo12/venv/bin/python3 /opt/odoo12/odoo/odoo-bin -c /etc/odoo12.conf
Если вы хотите просмотреть сообщения, зарегистрированные службой Odoo, вы можете использовать следующую команду:
sudo journalctl -u odoo12
Тест установки
Откройте браузер и введите: http://
Если установка прошла успешно, появится экран, подобный следующему:

Если вы не можете получить доступ к странице, вероятно, ваш брандмауэр блокирует порт 8069 .
Чтобы открыть необходимый порт, используйте следующие команды:
sudo firewall-cmd --permanent --zone=public --add-port=8069/tcpsudo firewall-cmd --reload
Заключение
В этом руководстве вы узнаете, как установить Odoo 12 на CentOS 7 в виртуальной среде Python.
Вы также можете ознакомиться с нашим руководством о том, как создавать автоматические ежедневные резервные копии баз данных Odoo .
Если у вас возникнут какие-либо проблемы, оставьте комментарий ниже.
centos odoo postgresql python pip Не используете CentOS 7?
Выберите другую ОС: убунту 18.04
Связанные руководства