分享

第一章 环境搭建 · GitBook

 省心省心省心 2020-10-23

第一章 环境搭建

操作系统的选择

Odoo的最佳操作系统是Ubuntu,如果你对Linux不熟悉,Windows上面也是可以的,但是Window上只推荐做开发环境,不推荐部署生产环境。关于Odoo生产环境的部署,后面会有专门的章节介绍。这里还是推荐读者是使用Linux环境进行学习开发,也可以在Window上使用虚拟机软件(VMWare和VirtualBox)配合ssh终端软件(Xshell,个人用户免费)进行环境搭建。本书只介绍Linux下的安装步骤,Windows下的安装,读者可以在网上搜索到相关教程。

环境的搭建

Odoo的环境搭建方式多种多样,按方式划分的话可以分为源码安装和安装包安装两种方式。 源码安装的方式相对比较繁琐,适合于喜欢自己动手同学。安装包安装的方式比较简洁,适合于喜欢傻瓜式安装软件的同学。两种方式没有优劣之分,取决于你的心情。下面简单介绍一下这两种安装方式。(因为windows的使用场景比较少,本书所有的开发和部署场景均是在Linux下完成,喜欢使用windows和mac的同学可以到网络上搜索相关的内容,完成安装后继续阅读)

数据库的安装

Odoo使用的是Postgresql,我们在正式开始安装之前需要先安装好数据库。使用安装包安装的同学可以跳过这一部分,因为安装包通常会自动把数据库安装好。

本书的环境基于ubuntu,使用centos的同学可以根据centos的命令自行替换。

  1. 安装postgresql:
    apt-get install postgresql
  2. 数据库安装完成后,需要配置odoo用户:
    sudo su postgrespsqlcreate user odoo with superuser
  3. 开启监听模式,默认情况下Postgresql只允许本地访问,因此我们需要将该条件放开。找到/etc/postgres/9.x/main/postgresql.conf,将listen_addresses改为*:

    listen_address='*'
  4. 编辑/etc/postgres/9.x/main/pg_hba.conf文件,针对不同的IP号段设置不同的访问权限。

# Database administrative login by Unix domain socketlocal   all             postgres                                peer# TYPE  DATABASE        USER            ADDRESS                 METHOD# 'local' is for Unix domain socket connections onlylocal   all             all                                     peer# IPv4 local connections:host    all             all             127.0.0.1/32            md5host    all             all             all                     md5# IPv6 local connections:host    all             all             ::1/128                 md5# Allow replication connections from localhost, by a user with the# replication privilege.local   replication     all                                     peerhost    replication     all             127.0.0.1/32            md5host    replication     all             ::1/128                 md5

peer模式只根据操作系统的用户进行配对校验,需要有同名的系统用户。如果Postgresql的用户是新建的,在操作系统上没有与之对应的用户的话,就可以将认证模式改为md5,md5是通过密码进行认证的。如果你的用户只允许本地访问的话,也可以设置为trust,这样就不必再输入密码即可认证成功。

修改完配置文件后,需要重启postgresql才能生效:

sudo service postgresql restart

切换到postgres用户进行验证:

sudo su postgres

然后进入postgresql数据库:

psql

如果出现下面类似的结果,就说明安装成功了:

psql (10.10 (Ubuntu 10.10-0ubuntu0.18.04.1))Type 'help' for help.postgres=#

源码安装

  1. 使用git将odoo的源码克隆到本地,注意选择你要安装的版本分支。
git clone https://github.com/odoo/odoo
  1. 代码下载下来之后,进入文件夹使用如下命令进行安装,由于网络的原因,很多插件自动安装不上,需要手动安装,这也是源码安装最为繁琐的地方。
python setup.py install
  1. 所有插件安装完成后,即可使用如下的命令启动:
./odoo -r odoo --addons-path='./addons'

其中 --addons-path指向你的安装目录下的addons文件夹路径。

安装包安装

安装包安装相对要省心很多,以ubuntu为例

  1. 添加odoo的官方源:
    deb http://nightly./12.0/nightly/deb/ ./

odoo官网比较慢的时候可以试试CDN odoocdn.com

  1. 更新源列表

    apt-get udpate

    此过程中可能碰到key验证失败的问题,可到https://nightly./odoo.key 下载公用key,然后使用sudo apt-key add命令添加key:

    apt-key add odoo.key
  2. 使用apt-get方式安装

    apt-get install odoo

由于国内复杂的网络情况,不排除有些地区的下载速度会非常缓慢,这个时候你需要的是耐心。

配置文件介绍

采用deb包安装的话,配置文件通常位于/etc/odoo/目录下,配置文件中包含若干个关于Odoo的配置信息,一个典型的配置文件内容如下:

[options]; This is the password that allows database operations:admin_passwd = xxxxxxxdb_host = localhostdb_port = 5432db_user = odoodb_password = odoolongpolling_port = 1172log_level = debugaddons_path = /home/ubuntu/odoo/odoo-dev/enterprise-12.0,/home/ubuntu/odoo/odoo-dev/custom/addonslogfile = /home/ubuntu/odoo/odoo-dev/odoo.logxmlrpc_port = 8069reportgz = Trueproxy_mode = Truedb_filter = ^%d$ limit_time_cpu = 7200limit_time_real = 7200; limit_request = 200; workers = 2; list_db = False
  • admin_passwd: odoo的管理密码,包含数据库的创建和复制、删除等权限
  • db_host: 数据库地址
  • db_port: 数据库端口
  • db_user: 数据库用户
  • db_password: 数据库的访问密码
  • addons_path: addons目录路径,通常的做法是将odoo原生的模块放到一个目录中,然后将我们自己开发和其他的第三方模块放到另一个目录中,做到与原生模块的物理隔离。
  • xmlrpc_port:odoo的应用端口,默认为8096
  • dbfilter:数据库过滤,如果该选项设置为某单个数据库,那么web应用中就只能看到该数据库,其他数据库不可见。另外,该选项支持域名过滤,即设置为^%d$,这将过滤跟当前子域名相匹配的数据库,和www.都匹配数据库odoo,%h 会被替换为请求的整个主机名。
  • data_dir: 附件文件的存储路径。

实际应用中发现xmlrpc设置为80端口并不能访问,具体原因还未知,还是推荐与nginx搭配使用

指定配置文件启动的命令:

odoo -c /etc/odoo/odoo.conf

数据库管理界面

环境搭建完成后,我们先启动odoo进程:

odoo -c /etc/odoo/odoo.conf

可以使用sh的别名方式,将命令存储成一个简短的命令,操作方式是编辑~/.ssh/config文件,然后在文件最后新增一行:alias xxx='odoo -c /etc/odoo/odoo.config'

进程启动后,命令行的输出应该是这个样子:

2019-08-26 02:41:41,986 115754 INFO ? odoo: Odoo version 12.0 2019-08-26 02:41:41,986 115754 INFO ? odoo: Using configuration file at /etc/odoo/odoo.conf 2019-08-26 02:41:41,987 115754 INFO ? odoo: addons paths: ['/home/kevin/.local/share/Odoo/addons/12.0', '/usr/lib/python3/dist-packages/odoo/addons', '/home/kevin/codes/osc_addons', '/home/kevin/codes/enterprise-12.0', '/usr/local/lib/python3.6/dist-packages/odoo-12.0-py3.6.egg/odoo/addons'] 2019-08-26 02:41:41,987 115754 INFO ? odoo: database: odoo@192.168.88.128:5432 2019-08-26 02:41:42,529 115754 INFO ? odoo.addons.base.models.ir_actions_report: Will use the Wkhtmltopdf binary at /usr/local/bin/wkhtmltopdf 2019-08-26 02:41:42,965 115754 WARNING ? odoo.addons.base.models.res_currency: The num2words python library is not installed, amount-to-text features won't be fully available. 2019-08-26 02:41:45,945 115754 INFO ? odoo.service.server: HTTP service (werkzeug) running on saturn:8069

命令行里指明了输出的进程和端口号,以及数据库地址。笔者这里使用的是虚拟机,虚拟机的IP地址是192.168.88.128。所以,我们用浏览器打开地址 Http://192.168.88.128:8069,如果已经存在数据库,就会看到下面的界面:

没有的话,会显示一个新建的页面,按照提示进行创建即可。数据库的管理地址:Http://192.168.88.128:8069/web/database/manager,通常可以在这里对数据库进行管理操作,包括创建、备份和删除。数据库管理是一个比较敏感的操作,如果对外服务的话,记得在配置文件中设置管理密码,以防数据丢失。

当然,数据库的管理也可以在postgresql中进行,但是需要注意的是,创建的数据库的owner需要是odoo连接数据库的那个用户。

开发工具

推荐使用vscode,搭配pylint等插件可以自己积木式地配置一个顺手地开发工具。机器配置高的同学也可以使用Pycharm,这里就不多介绍了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约