Поиск по сайту:

Как установить Odoo ERP 13 на CentOS 8


На этой странице

  1. Требования
  2. Начало работы
  3. Создать пользователя Odoo
  4. Установка и настройка PostgreSQL
  5. Установить Wkhtmltopdf
  6. Установка и настройка Odoo 13
  7. Создайте файл службы Systemd для Odoo 13.
  8. Настройка Nginx в качестве обратного прокси-сервера для Odoo 13
  9. Настройка брандмауэра
  10. Доступ к веб-интерфейсу Odoo 13
  11. Заключение

Odoo — это бесплатное и самое популярное программное обеспечение ERP с открытым исходным кодом, которое предлагает широкий спектр бизнес-приложений, включая управление взаимоотношениями с клиентами (CRM), воронку продаж, управление проектами, производство, выставление счетов, бухгалтерский учет, электронную коммерцию и многое другое. Это полнофункциональное веб-приложение, которое поможет вам поддерживать ERP в любом бизнесе. Odoo поставляется с 30 основными модулями и более чем 4500 модулями, созданными сообществом, которые помогут вам превратить его из небольшого магазина в корпорацию уровня предприятия.

В этом руководстве мы узнаем, как установить и настроить Odoo 13 с Nginx в качестве обратного прокси-сервера на сервере CentOS 8.

Требования

  • Сервер под управлением CentOS 8 с минимум 2 ГБ ОЗУ.
  • Действительное доменное имя указывает на IP-адрес вашего сервера. В этом уроке мы будем использовать домен exmaple.com.
  • На сервере настроен пароль root.

Начиная

Сначала обновите систему и установите репозиторий EPEL с помощью следующей команды:

dnf update
dnf install epel-release

Далее вам нужно будет установить некоторые инструменты и зависимости, необходимые для сборки Odoo в вашей системе.

Вы можете установить их все с помощью следующей команды:

dnf install python36 python36-devel git gcc wget nodejs libxslt-devel bzip2-devel openldap-devel libjpeg-devel freetype-devel

После установки всех пакетов можно переходить к следующему шагу.

Создать пользователя Odoo

Затем вам нужно будет создать нового системного пользователя с именем odoo и домашним каталогом /opt/odoo, используя следующую команду:

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

Как только вы закончите, вы можете перейти к следующему шагу.

Установите и настройте PostgreSQL.

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

dnf install postgresql postgresql-server postgresql-contrib

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

/usr/bin/postgresql-setup initdb

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

 * Initializing database in '/var/lib/pgsql/data'
 * Initialized, logs are in /var/lib/pgsql/initdb_postgresql.log

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

systemctl start postgresql
systemctl enable postgresql

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

systemctl status postgresql

Вы должны увидеть следующий вывод:

? postgresql.service - PostgreSQL database server
   Loaded: loaded (/usr/lib/systemd/system/postgresql.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:01:44 EST; 6s ago
  Process: 31805 ExecStartPre=/usr/libexec/postgresql-check-db-dir postgresql (code=exited, status=0/SUCCESS)
 Main PID: 31808 (postmaster)
    Tasks: 8 (limit: 12552)
   Memory: 16.5M
   CGroup: /system.slice/postgresql.service
           ??31808 /usr/bin/postmaster -D /var/lib/pgsql/data
           ??31809 postgres: logger process   
           ??31811 postgres: checkpointer process   
           ??31812 postgres: writer process   
           ??31813 postgres: wal writer process   
           ??31814 postgres: autovacuum launcher process   
           ??31815 postgres: stats collector process   
           ??31816 postgres: bgworker: logical replication launcher   

Затем вам нужно будет создать нового пользователя PostgreSQL с тем же именем, что и системный пользователь, как показано ниже:

su - postgres -c "createuser -s odoo"

Установить Wkhtmltopdf

Затем вам нужно будет установить в вашей системе инструмент wkhtmltopdf, чтобы Odoo мог печатать отчеты в формате PDF. Вы можете установить его с помощью следующей команды:

wget https://downloads.wkhtmltopdf.org/0.12/0.12.5/wkhtmltox-0.12.5-1.centos7.x86_64.rpm
dnf localinstall wkhtmltox-0.12.5-1.centos7.x86_64.rpm

После установки можно переходить к следующему шагу.

Установите и настройте Odoo 13

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

su - odoo

Затем загрузите последнюю версию Odoo 13 из репозитория Git с помощью команды git:

git clone https://www.github.com/odoo/odoo --depth 1 --branch 13.0 /opt/odoo/odoo13

Затем создайте новую виртуальную среду для экземпляра Odoo 13 с помощью следующей команды:

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

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

source odoo13-venv/bin/activate

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

(odoo13-venv) [ ~]$

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

pip3 install -r odoo13/requirements.txt

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

deactivate

Наконец, выйдите из пользователя Odoo с помощью следующей команды:

exit

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

mkdir /opt/odoo/odoo13-custom-addons
mkdir /var/log/odoo13
touch /var/log/odoo13/odoo.log

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

chown -R odoo:odoo /opt/odoo/odoo13-custom-addons
chown -R odoo:odoo /var/log/odoo13/

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

nano /etc/odoo.conf

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

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

Сохраните и закройте файл, когда закончите.

Создайте файл службы Systemd для Odoo 13

Затем вам нужно будет создать новый файл модуля systemd для Odoo 13, чтобы управлять службой Odoo.

Вы можете создать его с помощью следующей команды:

nano /etc/systemd/system/odoo13.service

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

[Unit]
Description=Odoo13
#Requires=postgresql-10.6.service
#After=network.target postgresql-10.6.service

[Service]
Type=simple
SyslogIdentifier=odoo13
PermissionsStartOnly=true
User=odoo
Group=odoo
ExecStart=/opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

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

systemctl daemon-reload

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

systemctl start odoo13
systemctl enable odoo13

Вы также можете проверить статус Odoo с помощью следующей команды:

systemctl status odoo13

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

? odoo13.service - Odoo13
   Loaded: loaded (/etc/systemd/system/odoo13.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:15:43 EST; 2s ago
 Main PID: 17022 (python3)
    Tasks: 4 (limit: 12552)
   Memory: 63.7M
   CGroup: /system.slice/odoo13.service
           ??17022 /opt/odoo/odoo13-venv/bin/python3 /opt/odoo/odoo13/odoo-bin -c /etc/odoo.conf

Dec 02 01:15:43 centos8 systemd[1]: Started Odoo13.

По умолчанию Odoo прослушивает порт 8069. Вы можете проверить это с помощью следующей команды:

netstat -plntu | grep 8069

Вы должны увидеть следующий вывод:

tcp        0      0 0.0.0.0:8069            0.0.0.0:*               LISTEN      17022/python3

Настройте Nginx в качестве обратного прокси-сервера для Odoo 13

Далее вам нужно будет установить и настроить Nginx в качестве обратного прокси-сервера для экземпляра Odoo 13.

Сначала установите веб-сервер Nginx с помощью следующей команды:

dnf install nginx

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

nano /etc/nginx/conf.d/odoo13.conf

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

upstream odoo {
 server 127.0.0.1:8069;
}
server {
    listen 80;
    server_name example.com;

    access_log /var/log/nginx/odoo13.access.log;
    error_log /var/log/nginx/odoo13.error.log;

        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;
    }

location ~* /web/static/ {
        proxy_cache_valid 200 90m;
        proxy_buffering on;
        expires 864000;
        proxy_pass http://odoo;
    }

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;
    gzip on;
}

Сохраните и закройте файл, когда закончите. Затем запустите службу Nginx и включите ее запуск после перезагрузки системы с помощью следующей команды:

systemctl start nginx
systemctl enable nginx

Вы можете проверить статус службы Nginx с помощью следующей команды:

systemctl status nginx

Вы должны увидеть следующий вывод:

? nginx.service - The nginx HTTP and reverse proxy server
   Loaded: loaded (/usr/lib/systemd/system/nginx.service; disabled; vendor preset: disabled)
   Active: active (running) since Mon 2019-12-02 01:25:15 EST; 6s ago
  Process: 17244 ExecStart=/usr/sbin/nginx (code=exited, status=0/SUCCESS)
  Process: 17241 ExecStartPre=/usr/sbin/nginx -t (code=exited, status=0/SUCCESS)
  Process: 17239 ExecStartPre=/usr/bin/rm -f /run/nginx.pid (code=exited, status=0/SUCCESS)
 Main PID: 17245 (nginx)
    Tasks: 3 (limit: 12552)
   Memory: 5.4M
   CGroup: /system.slice/nginx.service
           ??17245 nginx: master process /usr/sbin/nginx
           ??17246 nginx: worker process
           ??17247 nginx: worker process

Dec 02 01:25:15 centos8 systemd[1]: Starting The nginx HTTP and reverse proxy server...
Dec 02 01:25:15 centos8 nginx[17241]: nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
Dec 02 01:25:15 centos8 nginx[17241]: nginx: configuration file /etc/nginx/nginx.conf test is successful
Dec 02 01:25:15 centos8 systemd[1]: Started The nginx HTTP and reverse proxy server.

Настроить брандмауэр

Затем вам нужно будет разрешить службе Nginx через firewalld доступ к экземпляру Odoo 13 из удаленной системы.

Вы можете запустить следующую команду, чтобы разрешить службу Nginx через firewalld:

firewall-cmd --permanent --zone=public --add-service=nginx
firewall-cmd --reload

По умолчанию SELinux включен в CentOS 8. Поэтому вам нужно будет разрешить HTTP через SELinux. Вы можете разрешить это с помощью следующей команды:

setsebool -P httpd_can_network_connect on

Доступ к веб-интерфейсу Odoo 13

Теперь Odoo 13 установлен и настроен. Пришло время получить доступ к веб-интерфейсу Odoo 13.

Откройте веб-браузер и введите URL-адрес http://example.com. Вы будете перенаправлены на следующую страницу:

Теперь укажите свой мастер-пароль, имя базы данных, адрес электронной почты, пароль, страну и нажмите кнопку «Создать базу данных». Вы будете перенаправлены на страницу администрирования Odoo 13:

Заключение

В приведенном выше руководстве вы узнали, как установить и настроить Odoo 13 на сервере CentOS 8. Вы также узнали, как настроить Nginx в качестве обратного прокси-сервера для Odoo 13. Теперь вы можете настроить свой экземпляр Odoo 13 в соответствии с потребностями вашего бизнеса.