在Ubuntu 22.04系统上安装和配置Odoo 15的步骤

本文介绍在Ubuntu 22.04系统上安装和配置Odoo 15的详细步骤。

简介

Odoo是一个开源的基于web的业务应用程序套件,由单个控制台管理。Odoo上提供了一系列业务应用程序,包括开源CRM、网站生成器、电子商务、仓库管理、项目管理、计费和会计、销售点、人力资源、营销、制造、采购管理等。

Odoo业务应用程序可以作为独立应用程序安装和使用,但它们也可以无缝集成,因此在安装多个应用程序时,您可以获得功能齐全的开源ERP。

安装和配置Odoo 15的详细步骤

步骤1:更新Ubuntu 22.04系统

我们总是从系统更新和升级所有已安装的软件包开始安装:

sudo apt update

sudo apt upgrade -y

等待更新所有程序包,然后重新启动系统。当有内核更新时,这是必要的:

[ -f /var/run/reboot-required ] && sudo reboot -f

步骤2:安装PostgreSQL数据库服务器

Odoo需要存储数据的数据库服务器。我们将在Ubuntu 22.04上游存储库上安装PostgreSQL服务器的默认版本。

安装Ubuntu存储库中可用的默认版本。运行:

sudo apt install postgresql postgresql-client -y

安装后,将启动数据库服务:

$ systemctl status postgresql*

postgresql@12-main.service - PostgreSQL Cluster 12-main

Loaded: loaded (/lib/systemd/system/postgresql@.service; enabled-runtime; vendor preset: enabled)

Active: active (running)

步骤3:在Ubuntu 22.04上必需安装有wkhtmltopdf新版本

wkhtmltopdf是打印报表所必需的,因为它将html转换为pdf。Ubuntu存储库中可用的wkhtmltopdf版本不支持页眉和页脚,因此不用作直接依赖项。要安装新版本,请参考https://www.hmxthome.com/linux/4879.html一文里面的内容。

步骤4:在Ubuntu 22.04上安装Odoo 15

导入APT repo GPG密钥:

curl  -fsSL https://nightly.odoo.com/odoo.key|sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/odoo.gpg

添加Odoo deb存储库,以便您可以在Ubuntu Linux系统上安装Odoo 15:

echo "deb http://nightly.odoo.com/15.0/nightly/deb/ ./" | sudo tee /etc/apt/sources.list.d/odoo.list

更新并在Ubuntu系统上安装Odoo 15:

sudo apt update

sudo apt install odoo

同意开始安装,会输出如下信息:

The following NEW packages will be installed:

  docutils-common fonts-font-awesome fonts-inconsolata fonts-roboto-unhinted graphviz libann0 libcairo2 libcdt5 libcgraph6 libdatrie1 libgd3 libgraphite2-3

  libgts-0.7-5 libgvc6 libgvpr2 libharfbuzz0b libice6 libimagequant0 libjbig0 libjpeg8 libjs-jquery libjs-underscore liblab-gamut1 liblcms2-2 libpango-1.0-0

  libpangocairo-1.0-0 libpangoft2-1.0-0 libpathplan4 libpixman-1-0 libsass1 libsm6 libthai-data libthai0 libtiff5 libwebp6 libwebpdemux2 libwebpmux3 libxaw7

  libxcb-render0 libxcb-shm0 libxmu6 libxpm4 libxt6 odoo python-babel-localedata python3-aiohttp python3-appdirs python3-async-timeout python3-babel python3-bs4

  python3-cached-property python3-dateutil python3-decorator python3-defusedxml python3-docutils python3-feedparser python3-freezegun python3-gevent

  python3-greenlet python3-html2text python3-isodate python3-libsass python3-lxml python3-mako python3-mock python3-multidict python3-ofxparse python3-passlib

  python3-pbr python3-pil python3-polib python3-psutil python3-psycopg2 python3-pydot python3-pyparsing python3-pypdf2 python3-qrcode python3-reportlab

  python3-reportlab-accel python3-requests-toolbelt python3-roman python3-soupsieve python3-stdnum python3-suds python3-tz python3-usb python3-vobject

  python3-werkzeug python3-xlrd python3-xlsxwriter python3-xlwt python3-yarl python3-zeep sgml-base xml-core

0 upgraded, 95 newly installed, 0 to remove and 0 not upgraded.

Need to get 87.3 MB of archives.

After this operation, 665 MB of additional disk space will be used.

Do you want to continue? [Y/n] y

在Ubuntu 22.04上安装Odoo后,该服务将自动启动:

$ systemctl status odoo

odoo.service - Odoo Open Source ERP and CRM

Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled)

Active: active (running)

将服务设置为在每次系统重新启动时启动:

$ sudo systemctl enable --now odoo

enabled

服务在端口8069上启动。这可以使用以下命令进行确认:

$ ss -tunelp | grep 8069

tcp   LISTEN  0       128                  0.0.0.0:8069           0.0.0.0:*      uid:113 ino:1906251 sk:d <->

步骤5:为Odoo系统配置Nginx代理

在Ubuntu系统上安装Nginx web服务器:

sudo apt -y install vim nginx

Nginx代理配置有两种情况,使用HTTPS和流量未通过安全连接提供时。在本节中,我们将考虑这两种设置。

1、为Odoo设置Nginx HTTP代理

为odoo创建新的配置文件:

sudo vim /etc/nginx/conf.d/odoo.conf

修改此配置代码段以适合您的设置:

# Odoo Upstreams

upstream odooserver {

 server 127.0.0.1:8069;

}

server {

    listen 80;

    server_name erp.computingforgeeks.com;

    access_log /var/log/nginx/odoo_access.log;

    error_log /var/log/nginx/odoo_error.log;

    # Proxy settings

    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 $scheme;

    proxy_set_header X-Real-IP $remote_addr;

    # Request for root domain

    location / {

       proxy_redirect off;

       proxy_pass http://odooserver;

    }

    # Cache static files

    location ~* /web/static/ {

        proxy_cache_valid 200 90m;

        proxy_buffering on;

        expires 864000;

        proxy_pass http://odooserver;

    }

    # Gzip

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;

    gzip on;

}

在本例中,我的服务域是erp.computingorgeeks.com,请将其替换为与Odoo一起使用的正确域。外部访问也需要有效的DNS记录。

检查配置语法:

$ sudo nginx  -t

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok

nginx: configuration file /etc/nginx/nginx.conf test is successful

如果设置正常,请重新启动nginx服务:

sudo systemctl restart nginx

重新启动时不会遇到任何错误:

$ systemctl status nginx

nginx.service - A high performance web server and a reverse proxy server

Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)

Active: active (running)

2、在Nginx上为Odoo使用Let's Encrypt SSL证书

始终建议对生产部署使用SSL加密。Let's Encrypt是一个免费的SSL产品,您可以在安装中使用。

安装certbot工具:

sudo apt-get update

sudo apt-get install certbot

获取让我们为您的域加密SSL证书:

#停止nginx服务

sudo systemctl stop nginx

#将域和电子邮件地址保存为变量

export DOMAIN="erp.computingforgeeks.com"

export EMAIL="myemail@computingforgeeks.com"

#请求Let's Encrypt SSL证书

sudo /usr/bin/certbot certonly --standalone -d ${DOMAIN} --preferred-challenges http --agree-tos -n -m ${EMAIL} --keep-until-expiring

如果执行成功,将打印出证书和链文件的路径,具体可以在输出的信息中看到详情。

创建cron以续订证书:

$ sudo crontab -e

15 3 * * * /usr/bin/certbot renew --pre-hook "systemctl stop nginx" --post-hook "systemctl start nginx"

创建Nginx配置文件:

sudo vim /etc/nginx/conf.d/odoo.conf

修改以下内容并添加到文件中:

# Odoo Upstreams

upstream odooserver {

 server 127.0.0.1:8069;

}

# http to https redirection

server {

    listen 80;

    server_name erp.computingforgeeks.com;

    return 301 https://erp.computingforgeeks.com$request_uri;

}

server {

    listen 443 ssl;

    server_name erp.computingforgeeks.com;

    access_log /var/log/nginx/odoo_access.log;

    error_log /var/log/nginx/odoo_error.log;

   # SSL

    ssl_certificate /etc/letsencrypt/live/erp.computingforgeeks.com/fullchain.pem;

    ssl_certificate_key /etc/letsencrypt/live/erp.computingforgeeks.com/privkey.pem;

    ssl_trusted_certificate /etc/letsencrypt/live/erp.computingforgeeks.com/chain.pem;

    # Proxy settings

    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 $scheme;

    proxy_set_header X-Real-IP $remote_addr;

    # Request for root domain

    location / {

       proxy_redirect off;

       proxy_pass http://odooserver;

    }

    # Cache static files

    location ~* /web/static/ {

        proxy_cache_valid 200 90m;

        proxy_buffering on;

        expires 864000;

        proxy_pass http://odooserver;

    }

    # Gzip Compression

    gzip_types text/css text/less text/plain text/xml application/xml application/json application/javascript;

    gzip on;

}

别忘了用域名替换erp.computingorgeeks.com。

重新启动Nginx:

sudo systemctl restart nginx

步骤6:访问Odoo Web界面

从Web浏览器访问域名上的Odoo网页:

在Ubuntu 22.04系统上安装和配置Odoo 15的步骤

输入创建数据库所需的详细信息。单击创建数据库后,您将被重定向到管理页面,从该页面可以安装Odoo业务应用程序:

在Ubuntu 22.04系统上安装和配置Odoo 15的步骤

如果您配置了https,则应通过安全隧道加载页面,即由原来的http改成https访问:

在Ubuntu 22.04系统上安装和配置Odoo 15的步骤

至此,在Ubuntu 22.04 Linux操作系统上安装和配置Odoo 15全部完成了。

栏目相关文章