1.1 Odoo的结构
Odoo使用Web浏览器来访问Odoo服务,因此你的Odoo服务器可以部署在较远的地方(如另外一个城市),用户的计算机上只需安装谷歌、火狐或 IE9 以上的浏览器,所以Web客户端不需要特别的维护。
一个 Odoo 系统由两个主要的组件组成:
1)数据库服务器PostgreSQL,它包含了所有的数据库,每个数据库都包含了部分Odoo系统设置和全部客户数据。
2)Odoo应用服务,Odoo应用服务包含了所有的企业逻辑并保证Odoo的最优性能
数据库服务和 Odoo 服务可被安装到同一台服务器上,如果出于性能的考虑,也可分布到不同的计算机上。
注:Postgresql, 是一个免费、开源和高性能的对象-关系型数据库管理系统。它可在各种类型的操作系统上运行,从 Unix/Linux到不同版本的Windows,从Mac OS X、Solaris、SunOS到BSD。
1.2 Odoo的安装
下面的表汇总了不同的安装方法。
表:在 Windows或Linux中的安装方法对比。
方法 |
安装时间 |
复杂程度 |
备注 |
在线演示模式 |
无需安装 |
简单 |
对于快速试用非常有用 |
Windows上的All-In-One 安装 |
几分钟 |
简单 |
安装所有组件在一台计算机上,对于快速试用非常有用,同时也能应用于生产环境 |
Ubuntu上的Deb包安装 |
几分钟 |
简单 |
简单并且快速,适用于实际生产环境 |
注:稳定版本和开发版本
Odoo包含稳定版本(Stable)和开发版本(Master)。
开发Master版本分支将集成新的功能。这个分支比稳定版本更先进,但是可能含没被发现和修正的缺陷。Odoo制作了代码源,只要需要,你可以下载最新的Master开发版本(http://nightly.odoo.com/master/nightly/)。
稳定版本分支被设计应用于生产环境。它经过长时间的测试和校验,仅每年产生。对于稳定版本,仅仅进行缺陷的修复。
1.3.1 在Windows上独立安装Odoo
测试Odoo,或小微企业的生产环境,可采用 Windows 上的安装。
下载地址: http://nightly.odoo.com/10.0/nightly/exe/ 。
下载后采用管理员身份运行,采用默认值安装即可。
注:windows下安装目录的路径不要带中文,不然会导致界面无法运行的问题,系统的登录名也避免使用中文。
1.3.2在Ubuntu Server 16.04 LTS中安装Odoo
Odoo10.0最适用的Ubuntu版本为“Ubuntu Server Server 16.04 LTS”,建议在生产环境准备或正式生产环境采用Odoo开发时的默认环境:操作系统 Ubuntu 16.04 Server LTS,数据库建议为PostgreSQL9.3或以上版本。
本节将指导你在广泛使用的Linux发行版Ubuntu中安装Odoo服务。
注:针对其它Linux发行版,如CentOS,Odoo也有相应的的安装包,其安装与Ubuntu上的安装类似。
1.3.2.1 将Ubuntu升级到最新。
如果你Ubuntu系统默认更新源服务器不是http://cn.archive.ubuntu.com,为了以后更新和安装软件速度有保证,建议将更新源换为国内的门户服务器,这样在速度上有保障。在国内推荐的是网易 163 的更新源地址,更换方法如下:
$ sudo vi /etc/apt/sources.list
将国外或香港的网址如“ http://hk.archive.ubuntu.com”替换为“http://mirrors.163.com”,然后在终端中执行下列命令:
$ sudo apt-get update
$ sudo apt-get upgrade
1.3.2.2 PostgreSQL数据库的安装
Odoo适用的PostgreSQL为9.3或以上版本。
安装 postgresql
$ sudo apt-get install postgresql
注:psql和pgAdmin工具
Psql 是一个简单的 PostgreSQL 客户端,它从命令行运行。
如果你选择用图形界面操作你的数据库,你可以安装 pgAdminⅢ(在Windows中它一般随PostgreSQL一起安装)。
Psql和pgadmin是很有用的工具, 当Odoo服务出现问题时,你可以使用这两个工具对Odoo数据库直接进行操作, 以解决Odoo服务的问题。
1.3.2.3 Odoo服务的安装
执行下列命令:
1)下载 Odoo 最新版本
$ wget http://nightly.odoo.com/10.0/nightly/deb/odoo_10.0c.latest_all.deb
2)安装 Odoo 及其依赖包
$ sudo dpkg -i odoo_10.0c.latest_all.deb
$ sudo apt-get -f install
注:
重启 Odoo 服务的命令
Sudo service odoo restart
重启 Posgreql 数据库服务的命令
Sudo service postgresql restart
现在 Odoo 已经运行,并通过端口 5432 连接到了 Postgres 数据库,已开始监听 8069 端口。
如果你的 Linux 服务器有防火墙保护,你必须开放 8069 端口,以便其它计算机使用 Web 客户端访问。开放8069 端口的命令为:
sudo ufw allow 8069/tcp
图:启动后的 Odoo 创建数据库界面
你可以用 Web 客户端检验一下安装,在其它计算机上通过谷歌或火狐浏览器导航至“http://<服务器的IP地址>:8069”,如果服务器上安装有图形界面,你也可以在服务器上,通过“http://127.0.0.1:8069”来访问,如果出现象上图显示的数据库创建界面或登录界面,并且没有出现错误提示,就表明你已连接到Odoo服务,Odoo的安装已基本完成。
如果没有出现预期的效果,下面的建议希望能解决你的问题。
1)输入的网址是否正确。
2)使用的浏览器是否和 Odoo 兼容。推荐使用谷歌浏览器。
3)Odoo服务是否启动或防火墙问题。
可通过下述命令查看Odoo服务是否启动
如果你从一个终端启动Odoo服务时,显示错误信息“socket.error: (98,’Address already in use’)”,这说明你另外一个Odoo实例已在运行,并且使用了你定义的套接字(缺省为 8069 和 8070)。这说明可能有一个先前的 Odoo安装,或其它程序占用了这两个端口中一个或两个。
键入“sudo lsof –i:8069”查看是什么程序在运行,记下其PID。你可以通过键入“sudo kill <PID>”来停止这个程序的运行。你需要其它的操作来防止其在服务器重启时再次启动。
如果本机能够访问Odoo服务,而其它计算机不能,就应该是防火墙的原因。
4)Postgres 数据库未启动,或者Postgres数据库或Odoo的配置文件问题。
错误提示一般如下图:
a) 检查PostgreSQL数据库是否启动并监听本地的5432端口。使用“sudo netstat –anpt”来查看端口 5432 是否可见。
b) 要检查 PostgreSQL 数据库是否正常,在一个终端上输入“sudo su postgres -c psql”,查看 psql 的启动信息,如果正常,键入“\q”退出程序。
c) 请检查 Odoo 的配置文件 openerp-server 中“db_password=”后面的密码是否正确。
d) 在服务器日志中的一些信息可以帮助你确认问题, 此日志信息存在于“/var/log/odoo”目录下的文件中。
1.3.3 在CentOS中安装Odoo
1.3.3.1 在CentOS中使用rpm包安装Odoo
l 将 CentOS 升级到最新
yum clean all
yum update
l 安装 postgresql 数据库
yum install postgresql-server
l 安装完成后,我们需要用下面的命令初始化数据库。
postgresql-setup initdb
l 启动 postgresql 数据库
systemctl start postgresql.service
l 设置 postgresql 数据库自动启动
systemctl enable postgresql
l 切换到 postgres 用户,创建数据库用户
su postgres
createuser --created --no-createrole --pwprompt odoo
l 为Odoo安装准备环境
我们要添加 EPEL(企业版 Linux 的额外包)到我们的 CentOS 中。Odoo(或者 OpenERP)依赖的 Python 运行时环境以及其他包没有包含在标准仓库中。这样我们要为企业版 Linux 添加额外的包仓库支持来解决 Odoo 所需要的依赖。要安装完成,我们需要运行下面的命令。
yum install epel-release
l 为 Odoo 服务安装依赖
pip install -r requirements.txt
(requirements.txt可以在Odoo10.0源码中找到)
l 安装其它依赖
yum install python-xlwt
l 下载并安装 Odoo的 rpm 包
rpm -ivh odoo_10.0alphalc.latest.noarch.rpm
l 设置Odoo服务自动启动
systemctl enable odoo
1.3.3.2 防火墙配置,为Odoo服务打开8069端口
打开 iptables 的配置文件:
vi /etc/sysconfig/iptables
在其中增加一行“ -A RH-FirewallINPUT -m state –-state NEW -m tcp -p tcp –-dport 8069 –j ACCEPT”
修改完之后重启 iptables
service iptables restart
现在就能通过浏览器来访问 Odoo 服务了。
1.3.4 安装wkhtmltopdf以支持报表导出为PDF格式
如果没有安装或设置好 wkhtmltopdf,则在 Odoo 中打印报表时,会出现下面提示:
1.3.4.1 在Ubuntu中的安装
1)下载
从网址http://wkhtmltopdf.org/downloads.html选择相应的版本下载,Odoo官方建议的Whtmltopdf版本为0.12.2.1。
本例中选择了Ubuntu14.04的64位版本。
wget http://download.gna.org/wkhtmltopdf/0.12/0.12.2.1/wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
2)安装
sudo dpkg -i wkhtmltox-0.12.2.1_linux-trusty-amd64.deb
3)修复依赖
sudo apt-get -f install
4)重启 Odoo 服务
sudo service odoo restart
1.3.4.2 在Windows中的安装
为了使用Odoo的报表和打印功能,你需要设置好wkhtmltopdf。
1)从 wkhtmltopdf.org 下载并安装 wkhtmltopdf
2)在系统的path设置中增加wkhtmltopdf.exe文件所在的路径,如在XP系统中,是选中“我的电脑”,点击鼠标右键,选择“属性”,
点击“高级”选项卡,点击“环境变量”按钮,
在“系统变量”一节中选中“Path”,然后点击“在“系统变量”一节中选中“Path”,
在变量值的最后面先添加“;”,然后再加上 wkhtmltopdf.exe 文件所在的路径,如“D:\Program Files\wkhtmltopdf\bin”,最后点击“确定”按钮。
1.3.5.3 在CentOS的安装
# yum install wkhtmltopdf