整理及验证:部署Odoo生产环境:在Ubuntu Server16.04源码安装Odoo10并配置为服务
使用 非 root 用户 进行下面的测试:
本文使用 有sudo 权限的 odoo 用户进行测试()
修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
odoo ALL=(ALL) ALL
保存退出,odoo用户就拥有了root权限。
第一步: 更新安装依赖并克隆Odoo源码
|
|
更新完毕后,最好重启下 服务器。
:安装nodejs:
(ubuntu14.04之后的版本)
|
|
下载odoo源码 ,
下面是为下载到odoo10的 子目录内,
$ git clone https://github.com/odoo/odoo.git odoo10 -b 10.0 --depth=1
如果是从别的电脑复制过来的可能会需要把源码的 所有者 改为odoo 用户:
sudo chown -R odoo odoo10
可以用ls -all 看 目录所属的 用户 及组
第二步:安装Odoo系统所需的依赖:
进入 odoo10 的 setup 目录
|
|
安装PostgreSQL以及数据库用户:
|
|
如果不是用odoo用户安装的,需要在数据库创建 odoo这个用户():
运行odoo 并生成配置文件 (也可以自己创建一个简单的配置文件)
$ ./odoo-bin -s
从启动日志可以看到,会在当前用户根目录 生成 配置文件 .odoorc
第三步:设置配置文件
$ sudo mkdir /etc/odoo
$ sudo cp /home/odoo/.odoorc /etc/odoo/odoo.conf
$ sudo chown -R odoo /etc/odoo
我们还需要创建存储Odoo日志的目录,通常位于/var/log内:
$ sudo mkdir /var/log/odoo
$ sudo chown odoo /var/log/odoo
现在我们需要确认配置文件中一些重要的参数。sudo vi
/etc/odoo/odoo.conf
下面是一些建议的值 :
[options]
logfile = /var/log/odoo/odoo.log
让我们来解释一下:
- 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
注意:因为设置了日志文件,所以不会跳出日志,
要看 日志的话,可以 再开一个终端 ,用odoo 用户,使用:
tail -f /var/log/odoo/odoo.log 查看 日志。
Odoo服务 启动后 试试看在界面 创建 数据库
如果 在odoo管理界面 无法创建数据库的,会报权限错误
(可能权限还和data_dir 对应的目录 有关)
sudo chmod -R 777 /home/xxx/.local/share/
可能 要先 createdb --owner=odoo odoo-prod 创建一个数据库
$ createdb --owner=odoo odoo-prod
8:安装中文字体:
|
|
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。
使用systemd init系统。要为系统增加新的服务。 创建 /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/odoo10/odoo-bin -c /etc/odoo/odoo.conf
- [Install]
- WantedBy=multi-user.target
-
第六步:我们需要注册新的服务:
$ sudo systemctl enable odoo.service
要开启这个新服务使用下面的命令:
$ sudo systemctl start odoo
检查它的状态:
$ sudo systemctl status odoo
最后,如果您希望停止它,使用下面的命令:
$ sudo systemctl stop odoo
现在可以确认我们的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
参考文档:https://www.linode.com/docs/websites/cms/install-odoo-10-on-ubuntu-16-04
分享到微信朋友圈
微信扫一下
将本文分享至朋友圈
支付宝扫一扫赞助
微信钱包扫描赞助
赏