部署前准备

  • 创建一个系统用户:odoo14并设置密码(牢记):
    在这里插入图片描述

  • 我是用docker 创建的ubuntu 容器来做的测试 。最基础的ubuntu 在做部署之前 ,我们需要更新、安装一些模块:

    • 更新系统: apt-get install -y
    • 安装sudo:apt-get install sudo -y
    • 安装vim :apt-get install vim -y
    • 安装wget:apt-get install wget -y
    • 安装build-essential (防止安装python 报错):
      sudo apt-get install build-essential -y
  • 赋予odoo14 sudo 的权限

    • 切换到root用户
    • 添加sudo 文件的写权限 :chmod u+w /etc/sudoers
    • 编辑sudoers文件: vim /etc/sudoers
      • 找到这行 root ALL=(ALL:ALL) ALL,在他下面添加:
        odoo14 ALL=(ALL:ALL) ALL
      • 权限说明
        #允许用户youuser执行sudo命令(需要输入密码)
        youuser ALL=(ALL) ALL
        #允许用户组youuser里面的用户执行sudo命令(需要输入密码).
        %youuser ALL=(ALL) ALL
        #允许用户youuser执行sudo命令,并且在执行的时候不输入密码.
        youuser ALL=(ALL) NOPASSWD: ALL
        #允许用户组youuser里面的用户执行sudo命令,并且在执行的时候不输入密码.
        %youuser ALL=(ALL) NOPASSWD: ALL
      • 编辑完程后按 ESC退出编辑模式,在通过::+wq保存退出。
        编辑sudoers权限
  • 切换到 odoo14用户进行操作:sudo su - odoo14

  • 安装基础模块OpenSSH服务:
    sudo apt-get install openssh-server

  • 安装Python3.7版本
    教程见:《ubuntu20.04 python多版本管理》
    Python3.7安装成功

Odoo14 环境部署

  • 安装odoo运行的前置依赖
    • 先执行: sudo apt update
    • 执行: sudo apt upgrade;如果报错:
      Errors were encountered while processing: grub-pc则执行:
      sudo mv /var/lib/dpkg/info/grub-pc.postinst /var/lib/dpkg/info/grub-pc.postinst-bad,再次执行:sudo apt-get -f install
    • 安装Python3-dev与pip3:sudo apt install python3.7-dev python3.7-pip -y
    • 安装主要依赖:sudo apt install python3.7-venv python3.7-wheel libxslt-dev libzip-dev libldap2-dev libsasl2-dev python3.7-setuptools -y
    • 执行:sudo apt-get install libpq-dev libxslt1-dev libsasl2-dev python-dev libldap2-dev libssl-dev python3-pypdf2 -y
    • 执行:pip3 install --user num2words phonenumbers psycopg2-binary watchdog xlwt
    • 安装依赖包(在odoo14的用户下面安装): pip3 install --user num2words phonenumbers psycopg2-binary watchdog xlwt
    • 下载与安装wkhtmltopdf:
      • 下载:wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.5/wkhtmltox_0.12.5-1.bionic_amd64.deb
      • 安装:sudo dpkg -i wkhtmltox_0.12.5-1.bionic_amd64.deb
      • 如果安装报错,强制安装: sudo apt install -f
    • 安装中文字体:
      sudo apt-get install ttf-wqy-zenhei ttf-wqy-microhei -y

部署Odoo14

  • 在odoo14用户的根目录下创建一个文件夹存放odoo14项目的源码:mkdir ~/odoo-dev
  • 将本地的odoo项目源文件压缩包上传到容器:
    docker cp odoo.tar.gz 94a114a75270:/home/odoo14/odoo-dev
  • 解压项目文件:tar zxvf ~/odoo-dev/odoo.tar.gz
  • 看下源码目录(已经处理过的源码)
    源码目录
  • 项目默认使用本地环境:
    • 进入项目根目录: cd ~/odoo-dev/odoo
    • 安装odoo 项目所需的依赖库:pip3 install -r requirements.txt
    • 在项目根目录创建配置文件odoo.confsudo vi odoo.conf
      [options]
      admin_passwd=admin	# 设置管理员密码
      xmlrpc_port=8069	# 指定项目暴露端口
      db_host = 127.0.0.1	# 设置数据库地址
      ;db_maxconn = 64
      ;db_name = False	
      db_port = 5432		# 数据库端口
      db_user = odoo		# 数据库用户
      db_password = odoo	# 数据库密码
      dbfilter =BTERP_13_50005	# 数据库名称过滤
      log_level=info		# 设置日志登记
      logrotate=True
      logfile= ./odoo.log	# 日志存放位置
      
      配置文件还有很多参数可以配置。这个根据自己的项目情况进行配置增减。
  • 将启动文件odoo-bin放置到项目根目录,我们的已经防止好了。 注意如果使用的官方的源码,在项目根目录下是不存在odoo-bin启动文件的 ,需要去复制 setup文件夹下面的odoo文件到项目根目录并重命名为odoo-bin
  • 编写项目的系统配置文件:

odoo14.service 配置文件存放位置在/etc/systemd/system/

创建odoo14.service文件,并编辑 :sudo vi /etc/systemd/system/odoo14.service内容如下:

[Unit]
Description=Odoo14
Requires=postgresql.service
After=network.target postgresql.service

[Service]
Type=simple
SyslogIdentifier=odoo14
PermissionsStartOnly=true
User=odoo14
Group=odoo14
# Group=odoo      # 和数据库用户一致即可
Environment="PATH=/home/odoo14/odoo-dev/odoo/odoo14env/bin"  # 项目的虚拟环境地址
# 项目启动命令  pyhton 地址 -c 启动文件 -c  启动的配置文件
ExecStart=/home/odoo14/odoo-dev/odoo/odoo-bin  -c /home/odoo14/odoo-dev/odoo/odoo14.conf
StandardOutput=journal+console

[Install]
WantedBy=multi-user.target

项目权限设置

  • 项目根目录下所有文件的权限:
    • 进入项目根目录:cd ~/odoo-dev/odoo
    • 赋权:sudo chmod 777 * -R
  • 设置项目启动项配置文件权限:sudo chmod 777 /etc/systemd/system/odoo14.service

启动项目服务

  • 更新系统启动项的配置文件: sudo systemctl daemon-reload
  • 设置项目随系统开机自启动:sudo systemctl enable --now odoo13.service
  • 查看服务状态:sudo systemctl status odoo14.service
  • 扩展
    查看实时日志20条:sudo journalctl -u odoo14.service -n 20 -f

排错

  • 启动服务时,如果出现以下错误:
    报错
  • 报错原因
    项目由mac 或者 window系统拷贝到linux系统 ,项目的启动文件格式被改变。需要改回来即可。按照如下操作:
    vim ~/odoo-dev/odoo/odoo-bin	# 打开项目根目录的odoo-bin
    :set ff 		# 然后回车,我这个文件显示为dos格式。
    :set ff=unix 	# 回车,设置为unix格式。
    
    :wq		# 写入保存,并退出
    
  • 修改完之后 ,再重新启动项目服务:sudo systemctl restart odoo14.service
  • 再次查看项目服务状态 :sudo systemctl status odoo14.service
    在这里插入图片描述
    ** 启动成功** 可通过浏览器访问项目 : 服务器ip:8069

企业版永久使用方法

在这里插入图片描述

odoo 系统私有化部署解决方案、二次开发、自动化、Docker容器、k8s 集群。有问题欢迎私聊。

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐