整理及验证:部署Odoo生产环境:在Ubuntu Server16.04源码安装Odoo10并配置为服务
使用 非 root 用户 进行下面的测试:
本文使用 有sudo 权限的 odoo 用户进行测试()
修改文件如下:
# User privilege specification
root ALL=(ALL) ALL
odoo ALL=(ALL) ALL
保存退出,odoo用户就拥有了root权限。
第一步: 更新安装依赖并克隆Odoo源码
1 2 3 |
$ sudo apt update #注:16.04下只需要输入"sudo apt update" ,-get可以省略 $ sudo apt upgrade $ sudo apt install git # 注:16.04.3自带了git,无需再安装 |
更新完毕后,最好重启下 服务器。
:安装nodejs:
(ubuntu14.04之后的版本)
1 2 3 |
$ sudo apt-get install -y npm $ sudo ln -s /usr/bin/nodejs /usr/bin/node $ sudo npm install -g less # 安装时注意成功安装的提示 |
下载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 目录
1 |
$ python setup_dev.py setup_deps # 留意看提示的话,会发现这步还会安装 postgresql |
安装PostgreSQL以及数据库用户:
1 |
python setup_dev.py setup_pg # 这步是否必要,待近一步核实 |
如果不是用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:安装中文字体:
1 2 |
sudo apt-get install ttf-wqy-zenhei sudo apt-get install ttf-wqy-microhei |
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
支付宝扫一扫赞助
微信钱包扫描赞助
赏