网传 odoo 是最牛逼的开源 ERP 程序,相比于钉钉、飞书、企业微信以及其第三方提供的 ERP 程序,它没有人数的限制,也没有使用数据量的限制,可以说只要你能部署它、熟悉它、使用它,没有任何限制。

Linux Ubuntu 20 系统部署 odoo 16 开源 ERP 程序 第5张插图

odoo 16 部署记录

将 Ubuntu 系统升级到最新

sudo apt-get update 
sudo apt-get upgrade

安装 Postgresql 数据库

sudo apt-get install postgresql

安装 Odoo 开源程序

wget https://nightly.odoocdn.com/16.0/nightly/deb/odoo_16.0.latest_all.deb

安装 Odoo 及其依赖包

sudo dpkg -i odoo_16.0.latest_all.deb

上述命令执行后会提示缺少依赖包错误,请按下面命令安装需要的依赖包

sudo apt-get -f install

至此,odoo 16 安装完毕已经运行,并通过5432端口连接到了PostgreSql数据库,已开始监听8069端口,理论上输入IP:8069即可访问。

检查测试
你也可通过以下脚本验证是否可正常访问,正常访问将返回 200。

sudo wget http://127.0.0.1:8069

如果你的 Ubuntu 系统有防火墙或者安全组保护,请开放 8069 端口以供其他 Web 用户访问。开启防火墙命令如下:

sudo ufw allow 8069/tcp

程序启动/停止/重启

odoo 启动/停止/重启

sudo service odoo start/stop/restart

Postgresql 启动/停止/重启

sudo service postgresql start/stop/restart

查看服务是否启动

查看 Odoo 服务进程

sudo ps auxww | grep -i odoo

查看 PostgreSql 服务进程

sudo ps auxww | grep -i postgresql

或者

sudo lsof -i:8069

程序安装目录结构
用以下命令,查看 PostgreSQL:

sudo ps auxww | grep -i postgresql

运行结果

/usr/lib/postgresql/12/bin/postgres -D /var/lib/postgresql/12/main -c config_file=/etc/postgresql/12/main/postgresql.conf

运行文件:/usr/lib/postgresql/12/bin/postgres
数据文件:/var/lib/postgresql/12/main
配置文件:/etc/postgresql/12/main/postgresql.conf
用以下命令,查看 Odoo:

sudo ps auxww | grep -i odoo

运行结果

/usr/bin/python3 /usr/bin/odoo --config /etc/odoo/odoo.conf --logfile /var/log/odoo/odoo-server.log

运行文件:/usr/bin/python3 /usr/bin/odoo
配置文件:/etc/odoo/odoo.conf
日志文件:/var/log/odoo/odoo-server.log

使用 Nginx 反代默认端口访问

如果你不需要使用默认 80 端口,那么这个你可以跳过,直接使用 8069 端口访问即可。

更新源

sudo apt-get update

下载 Nginx 环境

sudo apt-get install nginx

当提示 Do you want to continue(是否继续)?,输入 y 后回车继续。

等待 1 分钟左右,即完成安装,你可以直接在浏览器输入 IP 地址测试是否安装成功,如果出现下图所示内容,则表示安装没有问题。

Linux Ubuntu 20 系统部署 odoo 16 开源 ERP 程序 第6张插图

设置 Nginx 反代参数

修改 Odoo 默认访问端为 8069 为 80 端口,常用的文本编辑是 vim

sudo vi /etc/nginx/site-available/default

输入上方指令查看访问 nginx 的默认配置,当然,你也可以用任何方式编辑该文件。

server {
    server_name odoo.dujin.org          
    # 此处用域名节点来作为 server_name 标识
    listen 80; 

    location / {
        proxy_pass http://127.0.0.1:8069;   
        # 此处实现80端口对8069端口的代理(测试环境配置本句也可)
        proxy_set_header Host $host:80;
        # 配置是改变http的请求头, Host请求的主机名(生产环境建议配置)
        proxy_set_header X-Real-IP $remote_addr;        
        # 请求的真实IP(生产环境建议配置)
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        # 请求是由谁发起的(生产环境建议配置)
    }
}

重启 Nginx 服务使用配置生效

sudo service nginx reload

这样你就可以不用输入 8069 端口,而是直接输入 IP 地址或者域名访问你自己部署的 odoo 程序了。

Linux Ubuntu 20 系统部署 odoo 16 开源 ERP 程序 第7张插图