Odoo中文社区可以通过以下三个域名访问:shine-it.net , odoocn.org,odoo.net.cn

原论坛用户的基本信息和发帖这里都予以保留,请注意:原论坛用户无需重新注册新用户,但是您的密码需要重置

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

本人实测在阿里云的 CentOS 7.4 下安装 Odoo 11 实例(git和wget tar.gz版)



  • 本人实测在阿里云的CentOS 7.4 下安装 Odoo 11实例(git和wget tar.gz版)
    由于 CentOS 的yum只能用python2.x执行,因此无法用rpm安装odoo11.
    下面是本人的实操经验, 若有不对,请指正,谢谢!
    (由于时间原因,暂时未标注命令代码,待有时间再编辑,SORRY!)
    GIT版:
    1: 先创建个odoo用户
    sudo groupadd odoo
    sudo adduser -g odoo odoo
    passwd odoo
    *** (后面安装和登陆均会用到,请牢记!)


    2:给root 权限:
    sudo vi /etc/sudoers
    修改文件参考如下:

    Allow root to run any commands anywhere

    root ALL=(ALL:ALL) ALL
    odoo ALL=(ALL:ALL) ALL (增加部分)
    保存退出,odoo用户就拥有了root权限。
    reboot
    这样便可通过远程Putty和WinSCP用odoo用户登录了.
    3: 进入odoo的家目录 cd ~, 开始安装旅程.
    第一步: 更新安装依赖并克隆Odoo源码
    1.1更新系统
    sudo yum update
    注:更新完毕后,最好重启下服务器。
    reboot
    1.2 安装python3以及pip3
    sudo yum install epel-release
    sudo yum install python36
    sudo yum install python36-devel libxslt-devel libxml2-devel openldap-devel
    sudo wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
    sudo python36 get-pip.py(这样会导致原来的pip指向pip3,因此建议修改pip,因此需要执行以下代码还原pip为python2.X, sudo mv /usr/bin/pip /usr/bin/pip-bak , sudo ln -s /usr/bin/pip2 /usr/bin/pip , 然后执行 pip –V看看是不是指向Python2.X)
    1.3 安装nodejs:
    sudo yum install nodejs
    sudo yum install npm (若上条代码附带安装了npm则无需再安装)
    sudo npm install -g less
    sudo npm install -g less-plugin-clean-css
    1.4 安装wkhtmltopdf
    sudo yum install wkhtmltopdf
    1.5进入odoo的家目录(默认为/home/odoo, 若没有则创建 mkdir -p /home/wwwroot) cd ~, 克隆odoo源码 ,下面的命令会克隆到odoo的子目录内即:/home/odoo/odoo,建议改为/home/odoo/odoo11:
    sudo yum install git
    git clone https://www.github.com/odoo/odoo --depth 1 --branch 11.0

    第二步:安装Odoo系统所需的依赖:
    2.1
    cd ./odoo11
    sudo pip3 install -r requirements.txt
    sudo pip3 install -r ./doc/requirements.txt
    注:安装这些依赖时,注意看下载速度,有些时间段会比较慢.有时候还会无法访问到服务器,注意成功安装后的提示. 不行换个时间段安装 就会发现快很多(比如早上8点前)
    安装成功后提示:Successfully installed
    2.2 安装PostgreSQL以及数据库用户:
    sudo yum install postgresql-server –y
    sudo postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    sudo su - postgres
    createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
    Enter password for new role: *****
    Enter it again:*****
    exit
    进入odoo源码目录(/home/odoo/odoo11)运行odoo-bin 并生成配置文件.
    (备注,由于未改动原python2.X,因此需要修改odoo-bin第1行
    #!/usr/bin/env python3

    #!/usr/bin/python36

    ./odoo-bin -s
    从启动日志可以看到,会在当前用户根目录生成配置文件 .odoorc (这个配置文件第三步会用到)
    Using configuration file at /home/odoo/.odoorc (日志内容,无需执行)
    再用root开一个新的终端窗口,使用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已经可以手动启动了.
    如果希望随着系统自动启动,请继续看下去.
    注:还可以用sudo python36 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 yum install wqy*
    第四步:创建 /lib/systemd/system/odoo.service 文件,让odoo随着系统自动启动
    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 2018-06-12 10:46:54 CST; 6s ago
    Main PID: 930 (python3)
    CGroup: /system.slice/odoo.service
    └─930 python3 /home/wwwroot/odoo/odoo11/odoo-bin -c /etc/odoo/odoo.conf

    Oct 15 12:46:54 ****(vps名) 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 (Q键退出)
    您还可以使用tail -f:
    sudo tail -f /var/log/odoo/odoo.log (Ctrl+C退出)

    PS, 企业版安装教程
    基于上述社区安装
    1: 下载企业版相关addons
    sudo git clone --depth 1 --branch 11.0 [检测到链接无效,已移除] /home/odoo/odoo11/enterprise/addons (此步骤需要有企业版下载权限,并输入账号密码才能下载)
    将压缩包解压到对应的文件夹下面,比如我是放在/home/odoo/odoo11/enterprise/addons下面.
    2: 编辑odoo.conf文件,增加enterprise的addons
    sudo vi /etc/odoo/odoo.conf
    将addons_path = /home/odoo/odoo11/odoo/addons,/home/odoo/odoo11/addons
    更改为:
    addons_path = /home/odoo/odoo11/enterprise/addons,/home/odoo/odoo11/odoo/addons,/home/odoo/odoo11/addons
    3: 重启odoo: sudo systemctl restart odoo,
    4: 创建企业版数据库(安装步骤同社区版):
    http://ip:8069/web/database/manager或者域名+ web/database/manager

    然后选择新建的数据库,输入账号密码登陆即进入企业版.

    WGET TAR.GZ版:
    1: 先创建个odoo用户
    sudo groupadd odoo
    sudo adduser -g odoo odoo
    passwd odoo
    *** (后面安装和登陆均会用到,请牢记!)


    2:给root 权限:
    sudo vi /etc/sudoers
    修改文件参考如下:

    Allow root to run any commands anywhere

    root ALL=(ALL:ALL) ALL
    odoo ALL=(ALL:ALL) ALL (增加部分)
    保存退出,odoo用户就拥有了root权限。
    reboot
    这样便可通过远程Putty和WinSCP用odoo用户登录了.
    3: 进入odoo的家目录 cd ~, 开始安装旅程.
    第一步: 更新安装依赖并克隆Odoo源码
    1.1更新系统
    sudo yum update
    注:更新完毕后,最好重启下服务器。
    reboot
    1.2 安装python3以及pip3
    sudo yum install epel-release
    sudo yum install python36
    sudo yum install python36-devel libxslt-devel libxml2-devel openldap-devel
    sudo wget --no-check-certificate https://bootstrap.pypa.io/get-pip.py
    sudo python36 get-pip.py(这样会导致原来的pip指向pip3,因此建议修改pip,因此需要执行以下代码还原pip为python2.X, sudo mv /usr/bin/pip /usr/bin/pip-bak , sudo ln -s /usr/bin/pip2 /usr/bin/pip , 然后执行 pip –V看看是不是指向Python2.X)
    1.3 安装nodejs:
    sudo yum install nodejs
    sudo yum install npm (若上条代码附带安装了npm则无需再安装)
    sudo npm install -g less
    sudo npm install -g less-plugin-clean-css
    1.4 安装wkhtmltopdf
    sudo yum install wkhtmltopdf
    1.5进入odoo的家目录, (默认为/home/odoo, 若没有则创建 mkdir -p /home/wwwroot) cd /home/odoo, 克隆odoo源码 ,下面的命令会解压到odoo的子目录内即:/home/odoo/odoo-11.0.post2018****,建议修改为/home/odoo/odoo11
    http://nightly.odoo.com/11.0/nightly/src/odoo_11.0.latest.tar.gz

    第二步:安装Odoo系统所需的依赖:
    2.1
    cd ./odoo11
    sudo pip3 install -r requirements.txt
    (根据git版的提示,建议在执行命令前在最后2行插入:
    sphinx>=1.2
    sphinx-patchqueue>=1.0
    )
    注:安装这些依赖时,注意看下载速度,有些时间段会比较慢.有时候还会无法访问到服务器,注意成功安装后的提示. 不行换个时间段安装 就会发现快很多(比如早上8点前)
    安装成功后提示:Successfully installed
    2.2 安装PostgreSQL以及数据库用户:
    sudo yum install postgresql-server –y
    sudo postgresql-setup initdb
    sudo systemctl enable postgresql
    sudo systemctl start postgresql
    sudo su - postgres
    createuser --createdb --username postgres --no-createrole --no-superuser --pwprompt odoo
    Enter password for new role: *****
    Enter it again:*****
    exit
    由于wget版没有odoo-bin文件,可以新建一个odoo-bin,也可以直接copy odoo github下的这个文件. 内容如下:
    #!/usr/bin/env python3

    set server timezone in UTC before time module imported

    import('os').environ['TZ'] = 'UTC'
    import odoo

    if name == "main":
    odoo.cli.main()
    进入odoo源码目录(/home/odoo/odoo11)运行odoo-bin, 并生成配置文件.
    (备注,由于未改动原python2.X,因此需要修改odoo-bin第1行
    #!/usr/bin/env python3

    #!/usr/bin/python36

    ./odoo-bin -s
    从启动日志可以看到,会在当前用户根目录生成配置文件 .odoorc (这个配置文件第三步会用到)
    Using configuration file at /home/odoo/.odoorc (日志内容,无需执行)
    再用root开一个新的终端窗口,使用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已经可以手动启动了.
    如果希望随着系统自动启动,请继续看下去.
    注:还可以用sudo python36 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 yum install wqy*
    第四步:创建 /lib/systemd/system/odoo.service 文件,让odoo随着系统自动启动
    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 2018-06-12 10:46:54 CST; 6s ago
    Main PID: 930 (python3)
    CGroup: /system.slice/odoo.service
    └─930 python3 /home/wwwroot/odoo/odoo11/odoo-bin -c /etc/odoo/odoo.conf

    Oct 15 12:46:54 ****(vps名) 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 (Q键退出)
    您还可以使用tail -f:
    sudo tail -f /var/log/odoo/odoo.log (Ctrl+C退出)

    PS, 企业版安装教程
    Wget版是将社区版和企业版放在一个addons下面了, 只要下载source包即可按照社区版的安装方式安装即可.
    1: 下载
    用你的账号进入Odoo官网下载页面: https://www.odoo.com/zh_CN/page/download
    选择source 一列下载.

    2: 安装(省略, 详见社区版安装步骤)

    若您在使用过程中还有什么问题,您可以联系我大家一起探讨.
    我的QQ 65016198, 谢谢.

    感谢: 本文参照了卓亿的文章<整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务>, 在此表示感谢!
    相关链接:
    https://odoo.net.cn/topic/4772/整理及测试-odoo11安装-odoo11生产环境部署-在ubuntu-server16-04下odoo11安装并配置为服务



  • @mugua

    sudo pip3 install -r requirements.txt 这一步报错。

    Running setup.py install for lxml ... error
    Complete output from command /bin/python36 -u -c "import setuptools, tokenize;file='/tmp/pip-install-7ykoshrh/lxml/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-pr1kzk2_/install-record.txt --single-version-externally-managed --compile:

    gcc -pthread -Wno-unused-result -Wsign-compare -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DNDEBUG -O2 -g -pipe -Wall -Wp,-D_FORTIFY_SOURCE=2 -fexceptions -fstack-protector-strong --param=ssp-buffer-size=4 -grecord-gcc-switches -m64 -mtune=generic -D_GNU_SOURCE -fPIC -fwrapv -fPIC -I/usr/include/libxml2 -Isrc/lxml/includes -I/usr/include/python3.6m -c src/lxml/lxml.etree.c -o build/temp.linux-x86_64-3.6/src/lxml/lxml.etree.o -w
    unable to execute 'gcc': No such file or directory
    Compile failed: command 'gcc' failed with exit status 1
    cc -I/usr/include/libxml2 -I/usr/include/libxml2 -c /tmp/xmlXPathInitw6u_9bo6.c -o tmp/xmlXPathInitw6u_9bo6.o
    unable to execute 'cc': No such file or directory
    *********************************************************************************
    Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
    *********************************************************************************
    error: command 'gcc' failed with exit status 1

    ----------------------------------------
    

    Command "/bin/python36 -u -c "import setuptools, tokenize;file='/tmp/pip-install-7ykoshrh/lxml/setup.py';f=getattr(tokenize, 'open', open)(file);code=f.read().replace('\r\n', '\n');f.close();exec(compile(code, file, 'exec'))" install --record /tmp/pip-record-pr1kzk2_/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /tmp/pip-install-7ykoshrh/lxml/


  • 管理员



  • @beckham1977
    lxml未安装成功,请确认安装了相关开发环境 libxml2-devel ?