本教程适用于以下操作系统版本

  • Debian 12 (Bookworm)
  • Debian 11 (Bullseye)

本页内容

  • 环境要求
  • 步骤 1 - 配置防火墙规则
  • 步骤 2 - 分配主机名
  • 步骤 3 - 安装并配置 PostgreSQL 配置基于主机的认证 配置 PostgreSQL 监听地址 启用并启动 PostgreSQL 服务
  • 步骤 4 - 安装 Odoo 安装依赖项并准备安装 下载 Odoo 文件 搭建 Virtualenv Python 环境 安装 Python 依赖项 安装 Python 软件包
  • 步骤 5 - 配置 Odoo 创建 Odoo 服务 为 Odoo 创建日志目录 设置文件权限 启动 Odoo 服务器
  • 步骤 6 - 安装并配置 Nginx
  • 步骤 7 - 安装 SSL
  • 步骤 8 - 配置 Nginx
  • 步骤 9 - 启动 Odoo
  • 结语
  • 配置基于主机的认证
  • 配置 PostgreSQL 监听地址
  • 启用并启动 PostgreSQL 服务
  • 安装依赖项并准备安装
  • 下载 Odoo 文件
  • 搭建 Virtualenv Python 环境
  • 安装 Python 依赖项
  • 安装 Python 软件包
  • 创建 Odoo 服务
  • 为 Odoo 创建日志目录
  • 设置文件权限
  • 启动 Odoo 服务器

Odoo(前身为 OpenERP)是一套自托管的开源应用套件,包含超过 10,000 个面向各类业务需求的应用,涵盖 CRM、电子商务、会计、库存、项目管理和销售点(POS)等。这些应用完全集成,并通过统一的 Web 界面进行访问。

本教程将介绍如何在 Debian 12 服务器上安装 Odoo 16。

环境要求

  • 一台最低 2GB 内存、基于 Debian 12 的服务器,用于托管 Odoo 技术栈。
  • 第二台最低 2GB 内存、基于 Debian 12 的服务器,用于托管 PostgreSQL 数据库。不过你也可以将数据库与 Odoo 安装在同一台服务器上;但对于生产环境,强烈建议将其安装在独立的服务器上。你也可以从任意提供商处选择任何托管的数据库方案。
  • 内存需求取决于使用该技术栈的并发用户数量。关于如何计算系统需求的详细指南,可以在 Odoo 的官方文档中找到。
  • 保持你的系统处于最新状态。$ sudo apt update $ sudo apt upgrade
  • 两台服务器上均拥有 sudo 权限的非 root 用户。
  • 你的系统需要安装以下几个软件包。$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y 其中部分软件包可能已经在你的系统中安装。

一台最低 2GB 内存、基于 Debian 12 的服务器,用于托管 Odoo 技术栈。

第二台最低 2GB 内存、基于 Debian 12 的服务器,用于托管 PostgreSQL 数据库。不过你也可以将数据库与 Odoo 安装在同一台服务器上;但对于生产环境,强烈建议将其安装在独立的服务器上。你也可以从任意提供商处选择任何托管的数据库方案。

内存需求取决于使用该技术栈的并发用户数量。关于如何计算系统需求的详细指南,可以在 Odoo 的官方文档中找到。

保持你的系统处于最新状态。

$ sudo apt update
$ sudo apt upgrade

两台服务器上均拥有 sudo 权限的非 root 用户。

你的系统需要安装以下几个软件包。

$ sudo apt install wget curl nano ufw software-properties-common dirmngr apt-transport-https gnupg2 ca-certificates lsb-release debian-archive-keyring unzip -y

其中部分软件包可能已经在你的系统中安装。

步骤 1 - 配置防火墙规则

在本教程中,我们假设你在两台服务器上都已经安装了 ufw 防火墙。

检查防火墙状态。

$ sudo ufw status

你应该会看到类似如下的输出。

Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

在 Odoo 服务器上,我们需要开放 22、80、443、6010、5432 和 8069 端口。其中 22 用于 SSH,80 用于 HTTP,443 用于 HTTPS,6010 用于 Odoo 通信,5432 由 PostgreSQL 使用,8069 用于 Odoo 服务器应用。

运行以下命令以在 Odoo 服务器上开放所需端口。

$ sudo ufw allow 6010,5432,8069,8072/tcp
$ sudo ufw allow http
$ sudo ufw allow https

检查防火墙状态。

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
80/tcp                     ALLOW       Anywhere
443                        ALLOW       Anywhere
5432,6010,8069,8072/tcp    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
80/tcp (v6)                ALLOW       Anywhere (v6)
443 (v6)                   ALLOW       Anywhere (v6)
5432,6010,8069,8072/tcp (v6) ALLOW     Anywhere (v6)

在 PostgreSQL 服务器上,我们需要开放 22、6010 和 5432 端口。使用以下命令开放这些端口。

$ sudo ufw allow 6010/tcp
$ sudo ufw allow 5432/tcp

步骤 2 - 分配主机名

你可以使用服务器的 IP 地址,或者在可用的情况下使用其完全限定域名(FQDN)。在本教程中,我们将使用 FQDN,为此需要在两台服务器上分别设置主机名。

在 Odoo 服务器上,打开 /etc/hosts 文件。

$ sudo nano /etc/hosts

确保其内容如下面所示。

127.0.0.1 	localhost
127.0.0.1	odoo.yourdomain.com		odoo
10.1.1.10	postgresql.yourdomain.com	postgresql

在 PostgreSQL 服务器上,打开该文件并确保其内容如下面所示。

127.0.0.1 	localhost
127.0.0.1	postgresql.yourdomain.com	postgresql
10.1.2.10	odoo.yourdomain.com		odoo

按 Ctrl + X 关闭编辑器,并在提示保存文件时按 Y。

步骤 3 - 安装并配置 PostgreSQL

Debian 12 默认随附 PostgreSQL 15,我们将安装该版本。在 PostgreSQL 服务器上运行以下命令。

$ sudo apt install postgresql-15 postgresql-server-dev-15

接下来,我们需要创建一个名为 odoo 的数据库用户。系统会提示你为该角色设置密码。请输入一个你自选的强密码。

$ sudo -u postgres createuser odoo -U postgres -dP

选项 -u 以 postgres 用户身份执行命令。

选项 -U 指定用于连接的用户名。

选项 -d 授予用户创建数据库的权限。

选项 -p 提示输入新用户的密码。

配置基于主机的认证

我们需要赋予 PostgreSQL 服务连接 Odoo 服务器的权限。

首先,停止 PostgreSQL 服务。

$ sudo systemctl stop postgresql

打开文件 /etc/postgresql/15/main/pg_hba.conf 进行编辑。

$ sudo nano /etc/postgresql/15/main/pg_hba.conf

在文件末尾粘贴如下一行。

host		all		odoo		odoo.yourdomain.com		md5

这一行授予 odoo 用户连接本服务器上所有数据库的权限。你也可以不使用 all 关键字,而是具体指定数据库的名称。

按 Ctrl + X 关闭编辑器,并在提示保存文件时按 Y。

配置 PostgreSQL 监听地址

接下来,我们需要允许数据库服务器监听远程连接。打开文件 /etc/postgresql/15/main/postgresql.conf 进行编辑。

$ sudo nano /etc/postgresql/15/main/postgresql.conf

将 listen_addresses 这一行从

#listen_addresses = 'localhost' # what IP address(es) to listen on;

改为

#From CONNECTIONS AND AUTHENTICATION Section
listen_addresses = '*'

* 表示监听所有的 IP 地址。你可以将其改为你的 odoo 实例的 IP 地址。

按 Ctrl + X 关闭编辑器,并在提示保存文件时按 Y。

启用并启动 PostgreSQL 服务

既然配置已完成,现在可以启动并启用 PostgreSQL 服务了。

$ sudo systemctl enable postgresql --now

步骤 4 - 安装 Odoo

安装依赖项并准备安装

在 Odoo 服务器上创建一个新系统用户,用于管理 Odoo 进程。

$ sudo adduser --system --home=/opt/odoo --group odoo

安装 Odoo 16 部署所需的系统依赖项。

 $ sudo apt install python3-pip python3-suds python3-all-dev python3-venv python3-dev python3-setuptools python3-tk libxml2-dev libxslt1-dev libevent-dev libsasl2-dev libldap2-dev pkg-config libtiff5-dev libjpeg62-turbo-dev libjpeg-dev zlib1g-dev libfreetype6-dev liblcms2-dev liblcms2-utils libwebp-dev tcl8.6-dev tk8.6-dev libyaml-dev xfonts-75dpi libpq-dev git libzip-dev libopenjp2-7-dev

安装 Nodejs。Debian 12 随附 Node 18.x,这是 Nodejs 当前的 LTS 版本。不过,我们将使用官方的 Nodesource 软件源来安装。

下载并导入 Nodesource GPG 密钥。

$ sudo apt-get install -y ca-certificates curl gnupg
$ sudo mkdir -p /etc/apt/keyrings
$ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg

创建系统软件源。

$ NODE_MAJOR=18
$ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_$NODE_MAJOR.x nodistro main" | sudo tee /etc/apt/sources.list.d/nodesource.list

更新系统软件源列表。

$ sudo apt update

安装 Nodejs。

$ sudo apt install nodejs

确认 Node 版本。

$ node --version
v18.17.1

使用 Node 安装 Less CSS 软件包。如果你使用的是从右向左排版的界面语言,还需安装 rtlcss 软件包。

$ sudo npm install -g less rtlcss

安装 wkhtmltopdf。它可以作为 Debian 系统软件包获取。

$ sudo apt install wkhtmltopdf

检查已安装的 wkhtmltopdf 版本。

$ wkhtmltopdf --version
wkhtmltopdf 0.12.6

下载 Odoo 文件

将 Odoo 的 Github 仓库克隆到你的系统。

$ sudo git clone https://github.com/odoo/odoo.git --depth 1 --branch 16.0 --single-branch /opt/odoo

就本教程而言,我们将把 Odoo 复制到 /opt/odoo 目录,并从该目录进行安装。

搭建 Virtualenv Python 环境

此步骤是可选的,但建议使用,因为为 Odoo 创建独立的 Python 虚拟环境有助于避免与操作系统的 Python 模块产生冲突,尤其是在进行系统升级时。

为此,我们将使用 virtualenv。

  • 为 Odoo 创建一个新的 virtualenv 环境。$ python3 -m venv /home//odoo-env
  • 激活虚拟环境。我们在系统用户的主目录下创建环境,你也可以自由选择任何你喜欢的路径。$ source /home//odoo-env/bin/activate
  • 更新 PIP 以防万一。(odoo-env) $ pip3 install --upgrade pip
  • 在虚拟环境中安装 Python 的 wheel。$ pip3 install wheel

为 Odoo 创建一个新的 virtualenv 环境。

$ python3 -m venv /home/<username>/odoo-env

激活虚拟环境。我们在系统用户的主目录下创建环境,你也可以自由选择任何你喜欢的路径。

$ source /home/<username>/odoo-env/bin/activate

更新 PIP 以防万一。

(odoo-env) $ pip3 install --upgrade pip

在虚拟环境中安装 Python 的 wheel。

$ pip3 install wheel

安装 Python 依赖项

安装 Odoo 16 所需的 Python 依赖项。

$ pip3 install -r /opt/odoo/requirements.txt

依赖项的安装需要一些时间,请耐心等待。

通过查看已安装的 Python 模块列表,确认依赖项是否已正确安装。

$ pip3 list
Package           Version
----------------- ---------
appdirs           1.4.4
attrs             23.1.0
Babel             2.9.1
beautifulsoup4    4.12.2
cached-property   1.5.2
certifi           2023.7.22
cffi              1.15.1
chardet           4.0.0
cryptography      3.4.8
decorator         4.4.2
defusedxml        0.7.1
docopt            0.6.2
docutils          0.16
ebaysdk           2.1.5
freezegun         0.3.15
gevent            22.10.2
greenlet          2.0.2
idna              2.10
isodate           0.6.1
Jinja2            3.1.2
libsass           0.20.1
lxml              4.9.2
MarkupSafe        2.1.2
num2words         0.5.9
ofxparse          0.21
passlib           1.7.4
Pillow            9.4.0
pip               23.2.1
polib             1.1.0
psutil            5.9.4
psycopg2          2.9.5
pyasn1            0.5.0
pyasn1-modules    0.3.0
pycparser         2.21
pydot             1.4.2
pyOpenSSL         20.0.1
pyparsing         3.1.1
PyPDF2            2.12.1
pyserial          3.5
python-dateutil   2.8.1
python-ldap       3.4.0
python-stdnum     1.16
pytz              2023.3
pyusb             1.2.1
qrcode            6.1
reportlab         3.6.12
requests          2.25.1
requests-file     1.5.1
requests-toolbelt 1.0.0
setuptools        66.1.1
six               1.16.0
soupsieve         2.5
urllib3           1.26.5
vobject           0.9.6.1
Werkzeug          2.0.2
wheel             0.41.2
xlrd              1.2.0
XlsxWriter        1.1.2
xlwt              1.3.0
zeep              4.0.0
zope.event        5.0
zope.interface    6.0

退出 Python 虚拟环境。

$ deactivate

安装 Python 软件包

Odoo 16 还需要一些额外的 Python 软件包,这些软件包列在 /opt/odoo/debian/control 文件中。切换到 /opt/odoo 目录。

$ cd /opt/odoo

运行以下命令以安装所需的 Python 软件包。

$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y

步骤 5 - 配置 Odoo

复制默认的 Odoo 配置文件以创建新配置。

$ sudo cp /opt/odoo/debian/odoo.conf /etc/odoo-server.conf

打开该文件进行编辑。

$ sudo nano /etc/odoo-server.conf

编辑该文件,使其内容如下面所示。

[options]
; This is the password that allows database operations:
admin_passwd = admin
db_host = postgresql.yourdomain.com
db_port = False
db_user = odoo
db_password = odoo_password
addons_path = /opt/odoo/addons
xmlrpc_port = 8069
default_productivity_apps = True

按 Ctrl + X 关闭编辑器,并在提示保存文件时按 Y。

选项 admin_passwd 是允许在 Odoo 图形界面中执行管理操作的密码。请务必选择一个安全的密码。

选项 db_host 是 PostgreSQL 服务器的 FQDN 或 IP 地址。

选项 db_port 设置为 false,因为使用的是 PostgreSQL 默认的 5432 端口。如果你想使用其他端口,需要更新该值。

选项 db_user 是 PostgreSQL 用户的名称。

选项 db_password 是我们在 PostgreSQL 服务器上先前创建的 PostgreSQL 'odoo' 用户密码。

选项 addons_path 是默认的插件(Addons)路径。你也可以添加自定义的插件路径,多个路径之间用逗号分隔。

选项 xmlrpc_port 是 Odoo 监听的端口。

选项 default_productivity_apps 确保默认的生产力应用(即 Employees、Email Marketing、Project 和 Surveys)保持启用。这四个应用是 Odoo 社区版的默认应用。在企业版中,还可以默认启用额外的生产力应用,包括 Appointments、Knowledge、Planning 和 Sign。

创建 Odoo 服务

为了确保 Odoo 在系统重启后仍能持续运行,我们需要为其创建一个服务。

创建文件 /lib/systemd/system/odoo-server.service 并打开进行编辑。

$ sudo nano /lib/systemd/system/odoo-server.service

在其中粘贴如下代码。

[Unit]
Description=Odoo Open Source ERP and CRM
After=network.target

[Service]
Type=simple
SyslogIdentifier=odoo-server
User=odoo
Group=odoo
ExecStart=python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/ --logfile /var/log/odoo/odoo-server.log
WorkingDirectory=/opt/odoo/
StandardOutput=journal+console
KillMode=mixed

[Install]
WantedBy=multi-user.target

将 /home/ 替换为你安装 Python 虚拟环境时选择的路径。

按 Ctrl + X 关闭编辑器,并在提示保存文件时按 Y。

为 Odoo 创建日志目录

$ sudo mkdir /var/log/odoo

设置文件权限

设置 odoo-server.service 文件的权限,使其仅能被 Odoo 用户读取或执行。

$ sudo chmod 755 /lib/systemd/system/odoo-server.service
$ sudo chown odoo: /lib/systemd/system/odoo-server.service

设置 Python 环境、Odoo 安装目录以及日志目录的所属权。

$ sudo chown -R odoo: /opt/odoo/
$ sudo chown -R odoo: /home/<username>/odoo-env
$ sudo chown -R odoo: /var/log/odoo

限制 Odoo 配置文件的访问权限。

$ sudo chown odoo: /etc/odoo-server.conf
$ sudo chmod 640 /etc/odoo-server.conf

启动 Odoo 服务器

启动并启用 Odoo 服务器。

$ sudo systemctl start odoo-server
$ sudo systemctl enable odoo-server

检查服务器状态。

$ sudo systemctl status odoo-server
? odoo-server.service - Odoo Open Source ERP and CRM
     Loaded: loaded (/lib/systemd/system/odoo-server.service; enabled; preset: enabled)
     Active: active (running) since Mon 2023-09-04 14:19:38 UTC; 27s ago
   Main PID: 8954 (python3)
      Tasks: 4 (limit: 2315)
     Memory: 131.1M
        CPU: 1.625s
     CGroup: /system.slice/odoo-server.service
             ??8954 python3 /opt/odoo/odoo-bin --config=/etc/odoo-server.conf --addons-path=/opt/odoo/addons/ --logfile /var/log/odoo/odoo-server.log

Sep 04 14:19:38 odoo systemd[1]: Started odoo-server.service - Odoo Open Source ERP and CRM.

在浏览器中打开 URL http://:8069 或 http://odoo.yourdomain.com:8069。如果一切正常,你应该会看到 Odoo 的数据库创建界面。

在 Debian 12 上安装 Odoo 16 ERP 软件

填写所有字段。勾选 Demo Data(演示数据)字段以使用示例数据填充数据库,然后点击 Create database(创建数据库)按钮。

接下来,会显示一个可供选择的应用列表。

首次创建数据库时,插件页面的加载需要一些时间,因此不要刷新页面。

步骤 6 - 安装并配置 Nginx

Debian 12 随附的 Nginx 版本较旧。要安装最新版本,你需要下载官方的 Nginx 软件源。

导入 Nginx 的签名密钥。

$ curl https://nginx.org/keys/nginx_signing.key | gpg --dearmor \
    | sudo tee /usr/share/keyrings/nginx-archive-keyring.gpg >/dev/null

添加 Nginx 稳定版的软件源。

$ echo "deb [signed-by=/usr/share/keyrings/nginx-archive-keyring.gpg] \
http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list

更新系统软件源。

$ sudo apt update

安装 Nginx。

$ sudo apt install nginx

验证安装。在 Debian 系统上,以下命令需要使用 sudo 才能运行。

$ sudo nginx -v
nginx version: nginx/1.24.0

启动 Nginx。

$ sudo systemctl start nginx

检查服务状态。

$ sudo systemctl status nginx
? nginx.service - nginx - high performance web server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; preset: enabled)
     Active: active (running) since Tue 2023-09-05 06:29:17 UTC; 1s ago
       Docs: https://nginx.org/en/docs/
    Process: 13958 ExecStart=/usr/sbin/nginx -c /etc/nginx/nginx.conf (code=exited, status=0/SUCCESS)
   Main PID: 13959 (nginx)
      Tasks: 2 (limit: 2315)
     Memory: 1.7M
        CPU: 10ms
     CGroup: /system.slice/nginx.service
             ??13959 "nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf"
             ??13960 "nginx: worker process"

步骤 7 - 安装 SSL

我们需要安装 Certbot 来生成由 Let's Encrypt 提供的免费 SSL 证书。

你可以使用 Debian 的软件源安装 Certbot,也可以使用 Snapd 工具获取最新版本。我们将使用 Snapd 版本。

Debian 12 默认未安装 Snapd。安装 Snapd 软件包。

$ sudo apt install snapd

运行以下命令,以确保你的 Snapd 版本是最新的。

$ sudo snap install core
$ sudo snap refresh core

安装 Certbot。

$ sudo snap install --classic certbot

使用以下命令,通过创建指向 /usr/bin 目录的符号链接,确保 Certbot 命令可以运行。

$ sudo ln -s /snap/bin/certbot /usr/bin/certbot

验证 Certbot 是否正常工作。

$ certbot --version
certbot 2.6.0

生成证书。我们还需要创建一份 DHParams 证书。

$ sudo certbot certonly --nginx --agree-tos --no-eff-email --staple-ocsp --preferred-challenges http -m 
[email protected]
 -d odoo.yourdomain.com

生成 Diffie-Hellman 密钥交换证书。

$ sudo openssl dhparam -dsaparam -out /etc/ssl/certs/dhparam.pem 4096

检查 Certbot 续期调度服务。

$ sudo systemctl list-timers

你会发现 snap.certbot.renew.service 是计划运行的服务之一。

NEXT                        LEFT          LAST                        PASSED        UNIT                      ACTIVATES
.....
Sun 2023-02-26 06:32:00 UTC 9h left       Sat 2023-02-25 18:04:05 UTC 2h 59min ago  snap.certbot.renew.timer  snap.certbot.renew.service
Sun 2023-02-26 06:43:20 UTC 9h left       Sat 2023-02-25 10:49:23 UTC 10h ago       apt-daily-upgrade.timer   apt-daily-upgrade.service
Sun 2023-02-26 09:00:06 UTC 11h left      Sat 2023-02-25 20:58:06 UTC 5min ago      apt-daily.timer           apt-daily.service

对续期过程进行一次空运行(dry run),以检查 SSL 续期是否正常工作。

$ sudo certbot renew --dry-run

如果没有看到任何错误,说明一切就绪。你的证书将自动续期。

步骤 8 - 配置 Nginx

要通过 Nginx 运行 Odoo,我们需要让 Odoo 在 localhost 上运行。为此,先停止 Odoo 服务。

$ sudo systemctl stop odoo-server

打开 Odoo 服务器配置文件。

$ sudo nano /etc/odoo-server.conf

向其中添加如下几行。

xmlrpc_interface = 127.0.0.1
proxy_mode = True

为 Odoo 创建 Nginx 配置文件。

$ sudo nano /etc/nginx/conf.d/odoo.conf

粘贴如下代码。

#odoo server
upstream odoo {
 server 127.0.0.1:8069;
}
upstream odoochat {
 server 127.0.0.1:8072;
}

# http -> https
server {
   listen 80;
   listen [::]:80;
   server_name odoo.yourdomain.com;
   return 301 https://$host$request_uri;
}

server {
 listen 443 ssl http2;
 listen [::]:443 ssl http2;
 server_name odoo.yourdomain.com;

 proxy_read_timeout 720s;
 proxy_connect_timeout 720s;
 proxy_send_timeout 720s;

 # Add Headers for odoo proxy mode
 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;

 # SSL parameters
 ssl_certificate /etc/letsencrypt/live/odoo.yourdomain.com/fullchain.pem;
 ssl_certificate_key /etc/letsencrypt/live/odoo.yourdomain.com/privkey.pem;
 ssl_trusted_certificate /etc/letsencrypt/live/odoo.yourdomain.com/chain.pem;
 
 ssl_session_timeout 1d;
 ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
 ssl_session_tickets off;
 
 ssl_protocols TLSv1.2 TLSv1.3;
 ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
 ssl_ecdh_curve X25519:prime256v1:secp384r1:secp521r1;
 ssl_prefer_server_ciphers off;
 ssl_stapling on;
 ssl_stapling_verify on;
 ssl_dhparam /etc/ssl/certs/dhparam.pem;

 # log
 access_log /var/log/nginx/odoo.access.log;
 error_log /var/log/nginx/odoo.error.log;

 # Redirect longpoll requests to odoo longpolling port
 location /longpolling {
 proxy_pass http://odoochat;
 }

 # Redirect requests to odoo backend server
 location / {
   proxy_redirect off;
   proxy_pass http://odoo;
 }

 # common gzip
 gzip_types text/css text/scss text/plain text/xml application/xml application/json application/javascript;
 gzip on;
}

按 Ctrl + X 关闭编辑器,并在提示保存文件时按 Y。

打开文件 /etc/nginx/nginx.conf 进行编辑。

$ sudo nano /etc/nginx/nginx.conf

在 include /etc/nginx/conf.d/*.conf; 这一行之前添加如下一行。

server_names_hash_bucket_size  64;

按 Ctrl + X 保存文件,并在提示时输入 Y。

测试 Nginx 配置。

$ sudo nginx -t

如果没有看到任何错误,说明配置没有问题。重启 Nginx 服务器。

$ sudo systemctl restart nginx

步骤 9 - 启动 Odoo

现在一切已配置就绪,我们可以再次启动 Odoo 服务器了。

$ sudo systemctl start odoo-server

在浏览器中通过 https://odoo.yourdomain.com 访问 Odoo。你将看到前面描述过的界面。输入所需信息以创建数据库,随后会被重定向到 Odoo 登录页面。

在 Debian 12 上安装 Odoo 16 ERP 软件

输入上一步中使用的凭据登录 Odoo ERP,随后会跳转到如下所示的仪表盘页面。该页面会预填充演示数据。如果你在数据库创建页面没有勾选演示数据选项,你将看到一个不同且更简洁的仪表盘。

在 Debian 12 上安装 Odoo 16 ERP 软件

从此你便可以开始使用 Odoo 来管理你的业务了。

结语

至此,我们在 Debian 12 服务器上安装 Odoo 的教程就结束了。如果你有任何问题,请在下方评论区留言。