前提

OS:Ubuntu 20.04LTS

Odoo:14旗舰版

数据库:Postgres13.0

*数据库和Odoo安装在一台服务器

系统设置

  1. 为了Log日志时间好看,进行系统时区设置
# 查看可用时区
timedatectl list-timezones
# 设置本地时区
sudo timedatectl set-timezone Asia/Singapore
# 查看效果
timedatectl
# 重启服务
sudo reboot
  1. 安装数据库Postgres
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list.d/pgdg.list'
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get -y install postgresql-13
# 默认会使用系统时区
  • 查看安装结果
# 查看服务启动情况
service postgresql status
# 查看监听端口
ss -nlt | grep 5432
  • 添加数据库的Odoo用户
# 创建用户:odoo
sudo -u postgres createuser -s -i -d -r -l -w odoo
# 设置密码:odoo
sudo -u postgres psql -c "ALTER ROLE odoo WITH PASSWORD 'odoo';"
# 测试是否可以链接
psql -h 127.0.0.1 -U odoo -d postgres
# 进入后查看odoo用户权限(必须有创建数据库权限initdb)
\du
  • 配置数据库
sudo vi /etc/postgresql/13/main/postgresql.conf
# 日志保存天数设置
log_rotation_age = 7d
# 时区确认
log_timezone = 'Asia/Singapore'
timezone = 'Asia/Singapore'
  1. 安装Nginx
deb https://nginx.org/packages/ubuntu/ focal nginx
deb-src https://nginx.org/packages/ubuntu/ focal nginx
sudo apt update
sudo apt install nginx
# 查看服务
sudo systemctl status nginx
  1. 安装Odoo
sudo apt-get install -y --no-install-recommends ./wkhtmltox.deb
sudo rm -rf /var/lib/apt/lists/* wkhtmltox.deb
  • 安装pip和其他pip包
sudo apt-get install -y --no-install-recommends \
ca-certificates \
curl \
dirmngr \
fonts-roboto \
gnupg \
libssl-dev \
node-less \
npm \
python3-num2words \
python3-pdfminer \
python3-pip \
python3-phonenumbers \
python3-pyldap \
python3-qrcode \
python3-renderpm \
python3-setuptools \
python3-slugify \
python3-vobject \
python3-watchdog \
python3-xlrd \
python3-xlwt \
xz-utils
sudo pip install --upgrade pip
# 不更新二维码生成或者图片上传会失败
sudo pip install reportlab --upgrade
# 前台渲染用
sudo npm install -g less
# 进入root权限
sudo su
# 尝试安装,如果失败进行apt包安装
dpkg -i odoo_e22222.deb
# 上面失败后,执行这步会安装相关包
apt-get install -f
# 再次安装
dpkg -i odoo_e22222.deb
  • 配置Odoo
sudo vi /etc/odoo/odoo.conf
# 设置自己开发插件位置
addons_path = /mnt/addons
# 设置前端后台操作密码
admin_passwd = xxxxx
# 设置Session等静态文件保存路径
data_dir = /var/lib/odoo
# 设置数据库链接
db_host = localhost
db_maxconn = 64
db_name = False
db_password = odoo
db_port = 5432
db_template = template1
db_user = odoo
# 超时时间设置
limit_time_cpu = 360
limit_time_real = 720
limit_time_real_cron = -1
# 是否显示DB列表(生产环境建议关闭)
list_db = True
# log配置
log_db = False
log_db_level = warning
log_handler = :INFO
log_level = debug_rpc
logrotate = True
# 多worker会使用
longpolling_port = 8072
# 后台自动处理同时执行个数
max_cron_threads = 3
# 是否有代理
proxy_mode = False
# 启动服务时候初期化模块
server_wide_modules = base,web,web_kanban_gauge
# 测试配置
test_commit = False
test_enable = False
test_file = False
test_report_directory = False
translate_modules = ['all']
unaccent = False
# 不加载测试数据
without_demo = False
# 多线程使用。计算方式:服务器cpu 内核数*2- 自动处理个数
workers = 4
# API链接设置,参考另一篇
xmlrpc = True
xmlrpc_interface =
xmlrpc_port = 8069
  1. Log保存期限设置
# 系统日志配置
sudo vi /etc/logrotate.d/rsyslog
# Nginx日志配置
sudo vi /etc/logrotate.d/nginx
# Odoo日志配置
sudo vi /etc/logrotate.d/odoo
# Postgres日志配置
sudo vi /etc/logrotate.d/postgresql-common
  • 设置内容如下
# 修改保存期
rotate 14
# 修改保存格式
dateext
dateformat _%Y-%m-%d
  1. Nginx设置
  • 参考Odoo例子配置,主要转发到8069和8072端口
#odoo server
upstream odoo {
server 127.0.0.1:8069;
}
upstream odoochat {
server 127.0.0.1:8072;
} # http -> https
server {
listen 80;
server_name odoo.mycompany.com;
rewrite ^(.*) https://$host$1 permanent;
} server {
listen 443 ssl;
server_name odoo.mycompany.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/ssl/nginx/server.crt;
ssl_certificate_key /etc/ssl/nginx/server.key;
ssl_session_timeout 30m;
ssl_protocols TLSv1.2;
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_prefer_server_ciphers off; # 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;
}

Odoo 服务器搭建备忘的更多相关文章

  1. 云效(阿里云)流水线 + nginx + uWsgi + flask + python3 基础环境搭建 --备忘

    一.开发环境搭建 1.安装python3 yum -y groupinstall "Development tools" yum -y install zlib-devel bzi ...

  2. 嵌入式Linux环境搭建备忘

    嵌入式Linux开发平台搭建步骤: 1.安装宿主机Linux系统 如果选用最新的Linux发行版,应改主意其他软件是否能很好的兼容. 2.安装交叉编译器 交叉编译器的版本很多,一般到芯片厂家官网下载官 ...

  3. LAMP 环境搭建备忘 -- Linux的安装(一)

    LAMP指的是 Linux + Apatch + MySQL / MariaDB + PHP/Perl/Python 一套搭建网站服务器的开源软件组合.工作原理图如下: 下面开始环境搭建 1 Linu ...

  4. django项目环境搭建备忘

    由于使用python3,所以尽量为每个项目配置虚拟环境来管理各个项目的=. 新建一个项目文件夹,进入该路径 python3 -m venv ll_env 然后激活虚拟环境 source ll_env/ ...

  5. Centos7 Redis3.0 集群搭建备忘

    (要让集群正常工作至少需要3个主节点,在这里我们要创建6个redis节点,其中三个为主节点,三个为从节点,对应的redis节点的ip和端口对应关系如下) 127.0.0.1:7000 127.0.0. ...

  6. LAMP环境搭建备忘 -- MariaDB 安装(三)

    因为 MySQL 的一些原因,在 Linux 平台上的开源数据库渐渐被 MariaDB 取代. MariaDB 安装命令如下图 安装成功后,接下来就启动这个数据库服务 我们还需要对数据库做一些初始化的 ...

  7. LAMP环境搭建备忘 -- Apache、pHp 安装 (二)

    上一篇 Linux 已经安装好了,我们选择了 CentOS 7 的最小化安装,即没有图形界面,并且我们在安装时设置了网络连接即能够连上外部网络,还设置了 root 密码.下面我们要在此基础上继续安装 ...

  8. UE4 ios环境搭建备忘

    1.windows.mac安装证书 2.安装xcode .app -- 路径可以拖入 sudo gem install xcodeproj 3.错误处理 Setting up Mono Running ...

  9. SSO之CAS备忘

    http://blog.chinaunix.net/uid-28380443-id-4740103.html 自己负责的公司基于CAS单点登录平台架构已经上线运行,很多细节的东西是时候备忘一下了,开源 ...

随机推荐

  1. 动态规划优化算法——wqs二分 and 折线优化

    坑先扔着,督促自己以后来补!!!

  2. idea使用技巧、心得1

    0.安装idea之后的准备 (1) 永久快乐使用:在我的博客搜索安装idea关键词既可 (2) 取消更新: (3) idea 官网的关于idea的使用手册:https://www.jetbrains. ...

  3. [使用多仓库解决] idea maven 下载源码出现:Cannot download sources Sources not found for: xxx

    根本原因 依赖托管仓库的库存不足.有的仓库,就是没有团队上传这个依赖.所以多加几个镜像源,总有一个仓库能找到. 解决方案 修改 maven 默认配置文件 "C:\Users\<user ...

  4. 你如何在 Java 中获取线程堆栈?

    kill -3 [java pid] 不会在当前终端输出,它会输出到代码执行的或指定的地方去.比如,kill -3 tomcat pid, 输出堆栈到 log 目录下. Jstack [java pi ...

  5. 什么是通知(Advice)?

    特定 JoinPoint 处的 Aspect 所采取的动作称为 Advice.Spring AOP 使用一 个 Advice 作为拦截器,在 JoinPoint "周围"维护一系列 ...

  6. RocketMQ实现分布式事务

    相关文章:http://www.uml.org.cn/zjjs/201810091.asp(深入理解分布式事务,高并发下分布式事务的解决方案) 三种分布式事务: 1.基于XA协议的两阶段提交 2.消息 ...

  7. Java 中应该使用什么数据类型来代表价格?

    如果不是特别关心内存和性能的话,使用 BigDecimal,否则使用预定义精度的 double 类型.

  8. 遇到的问题之“解决tomcat中文乱码问题”

    方案1:在server.xml中添加了 URIEncoding="UTF-8" 属性 路径:C:\stop\apache-tomcat-8.5.69\conf 修改内容 如若方案1 ...

  9. printf()函数压栈a++与++a的输出

    printf()中a++与++a的输出问题 在C语言中有个很常用的函数printf(),使用时从右向左压栈,也就是说在printf("%d %d %d %d\n",a,a++,++ ...

  10. 给大家补充一个结构体的例子:下面TwoNumber就是一个形式上的结构体

    给大家补充一个结构体的例子:下面TwoNumber就是一个形式上的结构体: class TwoNumber {     int num1;     int num2; } public class T ...