本人实测在阿里云的 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.confOct 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 python3set server timezone in UTC before time module imported
import('os').environ['TZ'] = 'UTC'
import odooif 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.confOct 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安装并配置为服务 -
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 ?