整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务
-
整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务
本文使用有sudo权限的odoo用户进行测试
如果是阿里云,可以
1先创建个odoo用户sudo adduser odoo2:给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 reboot1.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-pipsudo 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 postgresql2.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/odoo3.2 我们还需要创建存储Odoo日志的目录,通常位于/var/log内:
sudo mkdir /var/log/odoo sudo chown odoo /var/log/odoo3.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 -y9.安装报表所需的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.target4.2 需要注册新的服务:
sudo systemctl enable odoo.service4.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日
-
写得非常全面,仔细。


请注意Odoo 11虽然能向后兼容支持Python2.7.X,但是只有在Python3.5.X上做了完整测试,所以大家尽可能还是用Python3来启动Odoo。
另外,Odoo运行环境的部署要尽可能使用虚拟Python环境与系统Python环境隔离,建议使用
pipenv, pipenv的使用请参见我们的公司博客:http://odoo.com.cn/posts/pipenv/ -
This post is deleted!
-
写得非常全面,仔细。


请注意Odoo 11虽然能向后兼容支持Python2.7.X,但是只有在Python3.5.X上做了完整测试,所以大家尽可能还是用Python3来启动Odoo。
另外,Odoo运行环境的部署要尽可能使用虚拟Python环境与系统Python环境隔离,建议使用
pipenv, pipenv的使用请参见我们的公司博客:http://odoo.com.cn/posts/pipenv/@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的指点,的确是和系统自带的环境隔离后会更好。
-
@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的指点,的确是和系统自带的环境隔离后会更好。
@卓忆 在 整理及测试: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 -
@卓忆 在 整理及测试: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 启动就是成功的。。我也不知道哪儿出了问题。。。@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 这个配置文件有么? 里面的参数正确么?
-
@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 这个配置文件有么? 里面的参数正确么?
@卓忆 在 整理及测试: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? -
@卓忆 在 整理及测试: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? -
@卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:
后续GiHb源码更新了,我们本地服务端要怎么进行更新呢?
-
@卓忆 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:
后续GiHb源码更新了,我们本地服务端要怎么进行更新呢?
-
企业版怎么加载呢?试了一下在/etc/odoo/odoo.conf中添加了企业版代码的路径 ,重启服务,重建数据库之后还是社区版,哪里的问题?
-
企业版怎么加载呢?试了一下在/etc/odoo/odoo.conf中添加了企业版代码的路径 ,重启服务,重建数据库之后还是社区版,哪里的问题?
-
企业版怎么加载呢?试了一下在/etc/odoo/odoo.conf中添加了企业版代码的路径 ,重启服务,重建数据库之后还是社区版,哪里的问题?
@inspurodoo 在 整理及测试:Odoo11安装,Odoo11生产环境部署:在Ubuntu Server16.04下Odoo11安装并配置为服务 中说:
企业版怎么加载呢?试了一下在/etc/odoo/odoo.conf中添加了企业版代码的路径 ,重启服务,重建数据库之后还是社区版,哪里的问题?
企业版的路径要加在odoo.conf中addons-path设置的第一个。
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login