跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Odoo 安装指南
  4. 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务

整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务

已定时 已固定 已锁定 已移动 Odoo 安装指南
26 帖子 10 发布者 32.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 卓忆卓 离线
    卓忆卓 离线
    卓忆
    写于 最后由 编辑
    #1

    整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务

    本文使用有sudo权限的odoo用户进行测试
    如果是阿里云,可以
    1先创建个odoo用户

    sudo adduser  odoo 
    

    2:给root 权限:

    sudo vi /etc/sudoers
    

    修改文件参考如下:

    # User privilege specification
    root    ALL=(ALL:ALL) ALL
    odoo    ALL=(ALL:ALL) ALL
    

    保存退出,odoo用户就拥有了root权限。

    切换用户: su odoo

    注:在测试时,直接远程Putty用odoo用户登录了.

    3: 进入odoo的家目录 cd ~

    第一步: 更新安装依赖并克隆Odoo源码

    1.1 更新系统

    sudo apt update  #注:16.04下只需要输入"sudo apt update" ,-get可以省略
    sudo apt upgrade  #有个地方会让您确认是否保留当前版本
    sudo apt install git  # 注:16.04.3自带了git,无需再安装
    

    注:更新完毕后,最好重启下 服务器。

    sudo reboot
    

    1.2 安装nodejs(14.04之后用下面的命令):

    sudo apt-get install -y npm
    sudo ln -s /usr/bin/nodejs /usr/bin/node
    sudo npm install -g less   # 安装时注意成功安装的提示
    

    1.3 克隆odoo源码 ,下面的命令会克隆到odoo11的 子目录内:

    git clone https://github.com/odoo/odoo.git odoo11 -b 11.0 --depth=1
    

    第二步:安装Odoo系统所需的依赖:

    2.1

    sudo apt-get install -y python3-pip
    
    sudo pip3 install Babel decorator docutils ebaysdk feedparser gevent greenlet html2text Jinja2 lxml Mako MarkupSafe mock num2words ofxparse passlib Pillow psutil psycogreen psycopg2 pydot pyparsing PyPDF2 pyserial python-dateutil python-openid pytz pyusb PyYAML qrcode reportlab requests six suds-jurko vatnumber vobject Werkzeug XlsxWriter xlwt xlrd 
    

    注:安装这些依赖时,注意看下载速度,有些时间段会比较慢.有时候还会无法访问到服务器,注意成功安装后的提示. 不行换个时间段安装 就会发现快很多(比如早上8点前)

    安装成功后提示:Successfully installed

    2.2 安装PostgreSQL以及数据库用户:

    sudo apt-get install -y postgresql
    

    2.3 在数据库创建 odoo这个用户():

    sudo su - postgres
    createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
    Enter password for new role: *****
    Enter it again:*****
    exit
    

    进入odoo源码目录运行odoo 并生成配置文件 (也可以自己创建一个简单的配置文件)

    cd ~/odoo11
    ./odoo-bin -s
    

    从启动日志可以看到,会在当前用户根目录生成配置文件 .odoorc (这个配置文件第三步会用到)

    Using configuration file at /home/odoo/.odoorc

    再开一个终端窗口,使用ps aux |grep odoo 可以看到odoo的使用情况,比如:

    odoo      1010  0.9  1.6 421168 66852 pts/0    Sl+  12:22   0:00 python3 ./odoo-bin -c /etc/odoo/odoo.conf
    

    应该是用python3 启动的 odoo.

    netstat -ant 可以看端口使用的情况 8069是odoo,22用于ssh,5432用于postgresl :

    tcp        0      0 0.0.0.0:8069            0.0.0.0:*               LISTEN     
    tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
    tcp        0      0 127.0.0.1:5432          0.0.0.0:*               LISTEN    
    

    如果不用随着系统启动启动odoo,到这里odoo已经可以手动启动了.
    如果希望随着系统自动启动,请继续看下去.

    注:还可以用python3.5 odoo-bin -s 启动试试 ,ps aux | grep odoo里面看到是这样的:

    odoo 1058 2.7 1.6 422340 66012 pts/0 Sl+ 12:25 0:00 python3.5 odoo-bin
    用python3 和 python3.5 启动的,好像crtl + c 关不干净

    ctrl + c 应该可以终止,不过有时候好像会停不干净,需要reboot系统.

    第三步:设置配置文件

    3.1

    sudo mkdir /etc/odoo
    sudo cp /home/odoo/.odoorc /etc/odoo/odoo.conf
    sudo chown -R odoo /etc/odoo
    

    3.2 我们还需要创建存储Odoo日志的目录,通常位于/var/log内:

    sudo mkdir /var/log/odoo
    sudo chown odoo /var/log/odoo
    

    3.3 编辑配置文件。

    sudo vi /etc/odoo/odoo.conf
    

    下面是2个建议增加的值 :

    [options]
    logfile = /var/log/odoo/odoo.log
    logrotate = True
    

    简要说明:
    ● addons_path 使用,逗号分隔的扩展路径,会在路径中寻找模块,从左至右阅读,最左侧拥有最高的优先级。
    ● admin_passwd 是master主控密码,用于访问web客户端数据库管理。建议设置一个足够强的密码,设置为False能让此功能失效。
    ● db_user 数据库实例在服务器启动序列期间进行初始化。
    ● dbfilter 用于筛选可访问的数据库,它是Pythoninterpreted正则表达式. 用于不让用户选择数据库,及未验证的URLs正常工作,它应该以^dbname$设置, 例如 dbfilter=^odoo-prod$。 它支持%h和%d占位符, 用来HTTP请求的主机名和子域名.
    ● logfile Odoo服务日志写入的地方。系统服务的日志通常位于/var/log. 留空,或者设为False,日志则会以标准方式输出。
    ● logrotate = True 按天存放日志
    ● proxy_mode 当使用反向代理时,应当设为True。
    ● without_demo 在生产环境中应设为True,这样新的数据库中就不会有演示数据。
    ● workers 值为启用的处理器数量。
    ● xmlrpc_port 服务监听的端口号。默认使用8069
    ● data_dir 会话数据和附件存储的位置,记得备份它。
    ● xmlrpc-interface 设置监听的地址。默认值会监听所有端口 0.0.0.0, 在使用反向代理时,可以设置为127.0.0.1 目的是只对本地请求响应。

    通过-c参数运行服务,我们可以检查配置的效果:

    ./odoo-bin -c /etc/odoo/odoo.conf
    

    注意:因为设置了日志文件,所以不会跳出日志,
    ctrl + c 应该可以终止,不过有时候好像会停不干净,需要reboot系统.

    要看 日志的话,可以 再开一个终端 ,用odoo 用户,使用:

    tail -f /var/log/odoo/odoo.log 查看 日志。
    

    Odoo服务 启动后 试试看在界面 创建 数据库

    8:安装中文字体:

    sudo apt-get install ttf-wqy-zenhei -y
    sudo apt-get install ttf-wqy-microhei -y
    

    9.安装报表所需的wkhtmltopdf

    wget https://github.com/wkhtmltopdf/wkhtmltopdf/releases/download/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
    
    sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb   # 会提示要安装xfonts-75dpi 等,这时候用apt-get -f install会安装这2个依赖
    sudo ln -s /usr/local/bin/wkhtmltopdf /usr/bin 
    sudo ln -s /usr/local/bin/wkhtmltoimage /usr/bin
    

    第四步:创建 /lib/systemd/system/odoo.service 文件,让odoo随着系统自动启动

    由于16.04 使用了systemd作为init,因此把Odoo配置为服务,稍有不同。
    要检查您的系统是否使用systemd,运行下面的命令:

    man init
    

    这会打开当前使用的init系统的文档,您能检查到底使用的是哪种。
    如果您的服务器使用的是systemd。

    4.1 编辑 /lib/systemd/system/odoo.service 文件:

    sudo vi /lib/systemd/system/odoo.service
    

    内容如下:

    [Unit]
    Description=Odoo
    After=postgresql.service
    [Service]
    Type=simple
    User=odoo
    Group=odoo
    ExecStart=/home/odoo/odoo11/odoo-bin -c /etc/odoo/odoo.conf
    [Install]
    WantedBy=multi-user.target
    

    4.2 需要注册新的服务:

    sudo systemctl enable odoo.service
    

    4.3 开启这个新服务:

    sudo systemctl start odoo
    

    检查它的状态:

    sudo systemctl status odoo
    
    

    如下所示,其中 Active active(running)表示正确运行,而且我们可以看到是运行在python3下的

    ● odoo.service - Odoo
       Loaded: loaded (/lib/systemd/system/odoo.service; enabled; vendor preset: enabled)
       Active: active (running) since Sun 2017-10-15 12:46:54 CST; 6s ago
     Main PID: 930 (python3)
       CGroup: /system.slice/odoo.service
               └─930 python3 /home/odoo/odoo11/odoo-bin -c /etc/odoo/odoo.conf
    
    Oct 15 12:46:54 iZuf6jevtfmojh35fpwxb5Z systemd[1]: Started Odoo.
    

    如果您希望停止它,使用下面的命令:

    sudo systemctl stop odoo
    

    也可以用 service odoo start 和 service odoo stop 来开启停止服务。
    现在可以确认我们的Odoo实例启动了,并能响应请求。
    如果Odoo正常运行,我们可以在日志文件中获得信息。我们可以检查Odoo是否响应HTTP请求:

    curl http://localhost:8069
    

    要检查日志文件,我们可以使用:

    sudo less /var/log/odoo/odoo.log
    

    您还可以使用tail -f:

    sudo tail -f /var/log/odoo/odoo.log
    

    今天发现odoo11的配置文件中密码部分也加密了.

    谢谢大家. 2017.10.15日

    恬淡

    1 条回复 最后回复
    2
    • digitalsatoriD 离线
      digitalsatoriD 离线
      digitalsatori 管理员
      写于 最后由 digitalsatori 编辑
      #2

      写得非常全面,仔细。👍👍

      请注意Odoo 11虽然能向后兼容支持Python2.7.X,但是只有在Python3.5.X上做了完整测试,所以大家尽可能还是用Python3来启动Odoo。

      另外,Odoo运行环境的部署要尽可能使用虚拟Python环境与系统Python环境隔离,建议使用pipenv, pipenv的使用请参见我们的公司博客:http://odoo.com.cn/posts/pipenv/

      卓忆卓 1 条回复 最后回复
      0
      • digitalsatoriD 离线
        digitalsatoriD 离线
        digitalsatori 管理员
        写于 最后由 编辑
        #3
        此回复已被删除!
        1 条回复 最后回复
        0
        • 卓忆卓 离线
          卓忆卓 离线
          卓忆
          在 回复了 digitalsatori 最后由 编辑
          #4

          @digitalsatori 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

          写得非常全面,仔细。👍👍

          请注意Odoo 11虽然能向后兼容支持Python2.7.X,但是只有在Python3.5.X上做了完整测试,所以大家尽可能还是用Python3来启动Odoo。

          另外,Odoo运行环境的部署要尽可能使用虚拟Python环境与系统Python环境想隔离,建议使用pipenv, pipevn的使用请参见我们的公司博客:http://odoo.com.cn/posts/pipenv/

          谢谢Tony的指点,的确是和系统自带的环境隔离后会更好。

          恬淡

          eremiterE 1 条回复 最后回复
          1
          • eremiterE 离线
            eremiterE 离线
            eremiter
            在 回复了 卓忆 最后由 编辑
            #5

            @卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

            @digitalsatori 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

            写得非常全面,仔细。👍👍

            请注意Odoo 11虽然能向后兼容支持Python2.7.X,但是只有在Python3.5.X上做了完整测试,所以大家尽可能还是用Python3来启动Odoo。

            另外,Odoo运行环境的部署要尽可能使用虚拟Python环境与系统Python环境想隔离,建议使用pipenv, pipevn的使用请参见我们的公司博客:http://odoo.com.cn/posts/pipenv/

            谢谢Tony的指点,的确是和系统自带的环境隔离后会更好。

            T哥,功德无量,试问一下,python3版本有好多,到底要安装哪一个3.5、3.6、3、7;postgresql也有好多,默认是安装哪一个版本,如何指定安装的版本

            Latest Python 3 Release - Python 3.6.3
            Latest Python 2 Release - Python 2.7.14

            1 条回复 最后回复
            0
            • 卓忆卓 离线
              卓忆卓 离线
              卓忆
              写于 最后由 编辑
              #6

              ubuntu 16.04 自带Python3.x 的不用安装,
              按这个教程安装的postgresql 版本应该是9.5

              恬淡

              1 条回复 最后回复
              0
              • F 离线
                F 离线
                fyy1219
                写于 最后由 编辑
                #7

                @卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

                ./odoo-bin -c /etc/odoo/odoo.conf
                参照来弄./odoo-bin -c /etc/odoo/odoo.conf这一句我运行是报错的。。。
                python3.5 odoo-bin -s 启动就是成功的。。我也不知道哪儿出了问题。。。

                卓忆卓 1 条回复 最后回复
                0
                • 卓忆卓 离线
                  卓忆卓 离线
                  卓忆
                  在 回复了 fyy1219 最后由 编辑
                  #8

                  @fyy1219 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

                  @卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

                  ./odoo-bin -c /etc/odoo/odoo.conf
                  参照来弄./odoo-bin -c /etc/odoo/odoo.conf这一句我运行是报错的。。。
                  python3.5 odoo-bin -s 启动就是成功的。。我也不知道哪儿出了问题。。。

                  /etc/odoo/odoo.conf 这个配置文件有么? 里面的参数正确么?

                  恬淡

                  F 1 条回复 最后回复
                  0
                  • F 离线
                    F 离线
                    fyy1219
                    在 回复了 卓忆 最后由 编辑
                    #9

                    @卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

                    参数正确么?

                    有的,配置也是正确的,结果运行后报错感觉像是数据无问题,但是检查又发现没问题。。。。报错如下
                    Traceback (most recent call last):
                    File "./odoo-bin", line 8, in
                    odoo.cli.main()
                    File "/home/odoo/odoo11/odoo/cli/command.py", line 60, in main
                    o.run(args)
                    File "/home/odoo/odoo11/odoo/cli/server.py", line 175, in run
                    main(args)
                    File "/home/odoo/odoo11/odoo/cli/server.py", line 140, in main
                    odoo.service.db._create_empty_database(db_name)
                    File "/home/odoo/odoo11/odoo/service/db.py", line 92, in _create_empty_database
                    with closing(db.cursor()) as cr:
                    File "/home/odoo/odoo11/odoo/sql_db.py", line 634, in cursor
                    return Cursor(self.__pool, self.dbname, self.dsn, serialized=serialized)
                    File "/home/odoo/odoo11/odoo/sql_db.py", line 178, in init
                    self._cnx = pool.borrow(dsn)
                    File "/home/odoo/odoo11/odoo/sql_db.py", line 517, in _locked
                    return fun(self, *args, **kwargs)
                    File "/home/odoo/odoo11/odoo/sql_db.py", line 585, in borrow
                    **connection_info)
                    File "/usr/local/lib/python3.5/dist-packages/psycopg2/init.py", line 130, in connect
                    conn = _connect(dsn, connection_factory=connection_factory, **kwasync)
                    psycopg2.OperationalError: could not connect to server: Connection timed out
                    Is the server running on host "rm-wz93m0xk235rc5114.pg.rds.aliyuncs.com" (100.118.46.249) and accepting
                    TCP/IP connections on port 3433?

                    卓忆卓 1 条回复 最后回复
                    0
                    • 卓忆卓 离线
                      卓忆卓 离线
                      卓忆
                      在 回复了 fyy1219 最后由 编辑
                      #10

                      @fyy1219 ./odoo-bin -c /etc/odoo/odoo.conf 可能使用Python2.7 运行

                      恬淡

                      1 条回复 最后回复
                      0
                      • 卓忆卓 离线
                        卓忆卓 离线
                        卓忆
                        写于 最后由 编辑
                        #11

                        阿里云,腾讯云,ubuntu 16.04 64位下均测试成功。

                        恬淡

                        F 1 条回复 最后回复
                        0
                        • F 离线
                          F 离线
                          fyy1219
                          在 回复了 卓忆 最后由 编辑
                          #12

                          @卓忆 谢谢找到原因了,数据库问题。。。

                          1 条回复 最后回复
                          0
                          • L 离线
                            L 离线
                            luwj
                            写于 最后由 编辑
                            #13

                            @卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

                            https://github.com/odoo/odoo.git

                            后续GiHb源码更新了,我们本地服务端要怎么进行更新呢?

                            卓忆卓 1 条回复 最后回复
                            0
                            • G 离线
                              G 离线
                              ghotiv
                              写于 最后由 编辑
                              #14

                              odoo 要授予root权限么,数据库,一些文件夹权限都是odoo

                              1 条回复 最后回复
                              0
                              • A 离线
                                A 离线
                                about2002
                                写于 最后由 编辑
                                #15

                                值得收藏的教程!谢谢卓忆! :grinning_face:

                                1 条回复 最后回复
                                0
                                • 卓忆卓 离线
                                  卓忆卓 离线
                                  卓忆
                                  在 回复了 luwj 最后由 编辑
                                  #16

                                  @luwj git pull

                                  恬淡

                                  1 条回复 最后回复
                                  0
                                  • 卓忆卓 离线
                                    卓忆卓 离线
                                    卓忆
                                    写于 最后由 卓忆 编辑
                                    #17

                                    @保定-粉刷匠 呵呵,多一种安装方式,有不同的味道,针对不同的用户,没有一定要用哪种的说法。

                                    恬淡

                                    1 条回复 最后回复
                                    0
                                    • ? 离线
                                      ? 离线
                                      老用户
                                      写于 最后由 编辑
                                      #18

                                      企业版怎么加载呢?试了一下在/etc/odoo/odoo.conf中添加了企业版代码的路径 ,重启服务,重建数据库之后还是社区版,哪里的问题?

                                      卓忆卓 digitalsatoriD 2 条回复 最后回复
                                      0
                                      • 卓忆卓 离线
                                        卓忆卓 离线
                                        卓忆
                                        在 回复了 老用户 最后由 编辑
                                        #19

                                        @inspurodoo 企业版建议走官方正规渠道,谢谢。

                                        恬淡

                                        1 条回复 最后回复
                                        0
                                        • digitalsatoriD 离线
                                          digitalsatoriD 离线
                                          digitalsatori 管理员
                                          在 回复了 老用户 最后由 编辑
                                          #20

                                          @inspurodoo 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:

                                          企业版怎么加载呢?试了一下在/etc/odoo/odoo.conf中添加了企业版代码的路径 ,重启服务,重建数据库之后还是社区版,哪里的问题?

                                          企业版的路径要加在odoo.conf中addons-path设置的第一个。

                                          ? 1 条回复 最后回复
                                          0

                                          • 登录

                                          • 没有帐号? 注册

                                          • 登录或注册以进行搜索。
                                          • 第一个帖子
                                            最后一个帖子
                                          0
                                          • 版块
                                          • 标签
                                          • 热门
                                          • 用户
                                          • 群组