OpenERP的安装

也许您是来自一个小型公司,想要看看OpenERP能否有效帮助公司成长,或是来自大型机构的IT职员,想要评估OpenERP的综合功能和性能, 您的第一步就是要安装上她或者找到一个已经安装好的实例来进行测试。

下表中简要列出了各种安装方法,之后会做详细描述。

Windows或Linux上各种安装方法对比
方法 平均所需时间 复杂程度 说明
OpenERP Demo 无需安装 简单 对于快速评估非常有用,无需安装。
All-in-one Windows Installer 约几分钟 简单 对于快速评估非常有用,会在一台电脑上安装所有的预先配置好的组件(使用GTK客户端)。
Independent installation on Windows 约半小时 中级难度 可是你在不同电脑上安装各部分组件。可投入生产环境使用。
Ubuntu Linux packages 约几分钟 简单 简单而快捷,但Ubuntu包不是一直都是最新的。
From source, for all Linux systems 超过1小时 中级~高级难度 此方法建议在生产环境中使用,容易保持最新。

每当OpenERP发布新版本时,也会提供完整的Windows自动安装包下载。它包含所有必需的组件包括PostgreSQL数据库服务器、OpenERP应用服务器以及GTK应用客户端。

只需点击几次鼠标,此安装包就能帮你安装好整个系统。初始配置已经在安装过程中设置好,如果你不想改变源代码, 就可以立即投入使用。此方法在一台电脑上安装所有的组件,但你可以通过GTK客户端从其它电脑上,包括PC、Mac和Linux, 进行连接访问。

第一步是下载OpenERP安装文件。在这个阶段你需要确定选择哪个版本——稳定版还是开发板。如果你打算直接把它用在生产 环境中,我们强烈建议你选择稳定版。

Note

稳定版和开发版

OpenERP的发展采取两个平行的轨道,稳定的版本和开发版本。

新功能被集成到开发分支中。这个分支比稳定版更加先进,但是它里面包含了一些未被发现的和没有修复的错误。 几乎每个月都会发布一个新的开发版本,OpenERP建立了一个代码仓库,如果需要你可以下载很老的版本。

稳定分支是为生产环境设计的。基本上每年发布一次新版本,新版本中的功能都是经过长期测试和确认正确的。 但是稳定分支中的错误修复仍然会在第一时间发布,不用等到第二年的发布版本。

通过以下步骤下载OpenERP Windows版:

  1. 打开以下网址 http://openerp.com.
  2. 点击右边的 Downloads 按钮,然后在 Windows Auto-Installer 下选择 All-in-One
  3. 你会看到Windows安装版的示范样例,当前版本为 openerp-allinone-setup-6.0.0.
  4. 将这个文件保存到你的电脑上 —— 文件可能比较大,因为它里面包含了PostgreSQL数据库系统,所以下载所需的时间可能会比较长。

安装OpenERP和它的数据库,你必须以管理员用户登录到你的电脑。双击安装文件后,一路默认安装即可。

如果你以前曾经尝试安装过OpenERP的all-in-one版本,你必选首先卸载它,因为之前的安装可能会影响到你新的安装。 确认所有的Tiny ERP,OpenERP和PostgreSQL程序都卸载掉,这个过程可能需你要重启电脑。

OpenERP客户端可以保持打开状态,一旦你完成了 all-in-one的安装,就可以连接并使用OpenERP系统了。下一步是安装数据库, 将会在本章的最后部分 创建数据库 中介绍。

Windows 独立安装

系统管理员非常有理由想要单独安装某个组件。比如,你的公司可能不支持自动安装的PostgreSQL或者Python, 或者你可能已经在服务器上安装了PostgreSQL,或者你想将数据库服务器和应用服务器分开安装到不同的硬件设备上。

这种情况下,你可以从相同的地址下载一个 all-in-one 自动安装程序,它里面只包含了OpenERP服务器的内容。你还需要单独 下载安装一个合适版本的PostgreSQL数据库。

你必须在安装OpenERP服务器之前安装PostgreSQL,必须设置好用户和密码,这样OpenERP服务器才能连接它。OpenERP的网络文档给出了详细说明。

从其它计算机访问 OpenERP Server

要让其他电脑连接到OpenERP服务器,你必须安装好服务,以便其他电脑可以发现它,可以再每个电脑上安装一个GTK客户端:

#. 打开OpenERP所在服务器的Windows防火墙,可以在控制面板中找到它,然后设置一条例外,以允许别的电脑访问此服务器上的OpernERP服务。在Windows防火墙 的 Exceptions 页中点击 click Add a program... 然后在列表中选择 OpenERP Server 即可。

#. 安装OpenERP客户端(openerp-client-6.X.exe), 你可以和下载其它OpenERP软件一样下载这个程序,然后在所有需要使用 OpenERP的电脑上安装

Tip

版本匹配 你必须保证客户端的版本与服务器匹配。版本号在下载的文件名中有所体现。虽然不同版本的客户端和服务器可能可以 配合工作,但是这个并不是必然的,如果出现这种情况,请更新客户端版本,使之与服务器匹配。

你需要管理员权限才能在PC上安装客户端。安装过程是自动的,你只需要关注各个安装步骤即可。

在服务器上打开OpenERP的客户端测试安装是否成功,需要注意的是这个时候你仍然以管理员身份在运行。

Note

为什么需要以管理员身份登录?

平时使用OpenERP客户端时无需使用管理员身份,但是在安装过程中如果有任何问题,使用管理员来进行必要的修改比 切换到测试用户或者软件安装用户要容易和方便的多。

在服务器上点击Windows开始菜单,选择GTK客户端后出现客户端的主界面,确定你要连接的服务器(默认情况下它是 localhost ——你自己的电脑) 。如果出现 No database found, you must create one 消息和你已经 成功连接 到OpenERP服务器,说明没有数据库。

../../../../_images/new_login_dlg.png

GKT客户端连接到OpenERP服务器时的对话框

Note

连接方式

在默认情况下,Linux下的当前版本(写作时)的OpenERP客户端会使用XML-RPC协议连接服务器的8069端口而Windows下的则 使用NET-RPC协议连接8070端口。无论从哪个操作系统你都可以使用任何协议。虽然在使用GTK客户端时你可能没有注意到,但是 使用NET-RPC会快一些。OpenERP可以使用XML-RPC,而不是NET-RPC,作为安全连接。

解决 Windows 安装中的错误

如果你在Windows上安装完OpenERP,它却不能工作,下面的内容对你会有帮助:

#. OpenERP服务器是否工作?以管理员身份登录到服务器,在菜单 Start ‣ Programs ‣ OpenERP Server 中 使用 Stop Service 停止服务,然后 Start Service 重新启动服务。

#.OpenERP安装是否正确?以管理员身份登录到服务器,打开 C:\Program Files\OpenERP AllInOne下的文件openerp-server.conf检查它的内容。这个文件实在安装时产生的,它里面包含了数据库相关的信息。如果你看到比较奇怪的内容,最好重新安装服务而不是尝试去修改。

../../../../_images/terp_server_conf.png

典型的OpenERP设置文件

  1. PostgreSQL在运行吗?以管理员用户登录,通过开始菜单 Start ‣ Programs ‣ PostgreSQL 选择 Stop Service。 如果几秒钟后你读到 The PostgreSQL4OpenERP service has stopped 则你可以确定数据库服务器在工作。请重启PostgreSQL。
  2. 数据库可以访问吗?还是在PostgreSQL菜单中,启动pgAdmin III 程序,你可以用这个程序查看数据库。双击 PostgreSQL4OpenERP 连接。你可以看到OpenERP服务器配置文件中记录的密码。如果可以访问数据库,你就可以看到这个空数据库 中的一些信息。如果不能,系统会显示一个错误信息。
  3. 你的客户端程序安装是否正确?如果你的GTK客户端没有启动,最简单的方法就是重新安装它。
  4. Can remote client computers see the server computer at all? Check this by opening a command prompt window (enter cmd in the window Start ‣ Run... ) and enter ping <address of server> there (where <address of server> represents the IP address of the server). The server should respond with a reply.
  5. Have you changed any of the server’s parameters? At this point in the installation the port number of the server must be 8069 using the protocol XML-RPC.
  6. Is there anything else in the server’s history that can help you identify the problem? Open the file openerp-server.log in C:\Program Files\OpenERP AllInOne(which you can only do when the server is stopped) and scan through the history for ideas. If something looks strange there, contributors to the OpenERP forums can often help identify the reason.

Linux (Ubuntu) 安装

这一部分知道你如何在Ubuntu上安装OpenERP服务器和客户端,Ubuntu是Linux最流行的版本之一。后面的操作均建立在假设你已经在 台式机或笔记本上安装了较新的带有图形界面的Ubuntu桌面版

Note

其它Linux发行版

在其它Linux发行版上安装和在Ubuntu上类似。阅读本部分并理解相关原则,使用在线文档和论坛来了解在其它发行版上安装的相关事项。

要了解在其它发行版上安装的相关信息,访问OpenERP网站http://www.openerp.com的以下文档 Services ‣ Documentation 。 这里有针对不同发行版的具体指导,你最好也检查一下是否有关于Ubuntu版本的最新指导。

技术过程: 初始化安装和配置

升级Ubuntu包与OpenERP和pgadmin的安装:

$ sudo apt-get update

$ sudo apt-get upgrade

$ sudo apt-get install openerp-server openerp-client pgadmin3

安装language-pack-gnome-YOURLANG-base包可以避免GTK客户端里出现翻译的标签。

$ sudo apt-get install language-pack-gnome-es-base

写作本书时PostgreSQL采用的是8.4版。如果你使用不同的版本,可能需要替换命令中的版本号以适合你使用的PosttreSQL版本。Postgres数据库配置:

$ sudo vi /etc/postgresql/8.4/main/pg_hba.conf

替换下面的行:

# “local” is for Unix domain socket connections only
local all all ident

为:

#”local” is for Unix domain socket connections only
local all all md5

重启 Postgres:

$ sudo /etc/init.d/postgresql-8.4 restart

* Restarting PostgreSQL 8.4 database server [ OK ]

下面的两个命令可以避免/etc/init.d/openerp-web 初始化脚本中的问题:

$ sudo mkdir /home/openerp

$ sudo chown openerp.nogroup /home/openerp

建立一个用户账户叫做“openerp”,密码设置为“openerp”,让它有权利创建Postgres数据库:

$ sudo su postgres

$ createuser openerp -P

Enter password for new role: (openerp)

Enter it again:

Shall the new role be a superuser? (y/n) n

Shall the new role be allowed to create databases? (y/n) y

Shall the new role be allowed to create more new roles? (y/n) n

从postgres用户退出:

$ exit

exit

编辑OpenERP配置文件:

$ sudo vi /etc/openerp-server.conf

替换掉下面的两行(我们不必设定特定的数据库,但是需要输入登录postgres的用户和密码):

db_name =

db_user = openerp

db_password = openerp

现在我们可以重启openerp-server:

$ sudo /etc/init.d/openerp-server restart

Restarting openerp-server: openerp-server.

检查log文件:

$ sudo cat /var/log/openerp.log

[2009-06-14 21:06:39,314] INFO:server:version – 6.0.0

[2009-06-14 21:06:39,314] INFO:server:addons_path – /usr/lib/openerp-server/addons

[2009-06-14 21:06:39,314] INFO:server:database hostname – localhost

[2009-06-14 21:06:39,315] INFO:server:database port – 5432

[2009-06-14 21:06:39,315] INFO:server:database user – openerp

[2009-06-14 21:06:39,315] INFO:objects:initialising distributed objects services

[2009-06-14 21:06:39,502] INFO:web-services:starting XML-RPC services, port 8069

[2009-06-14 21:06:39,502] INFO:web-services:starting NET-RPC service, port 8070

[2009-06-14 21:06:39,502] INFO:web-services:the server is running, waiting for connections…

现在OpenERP已经启动并运行,连接到Postgres数据库的5432端口,监听8069和8070端口

$ ps uaxww | grep -i openerp

openerp      5686  0.0  1.2  84688 26584 pts/7    Sl+  12:36   0:03 /usr/bin/python ./openerp-server.py
$ sudo lsof -i :8069

COMMAND  PID USER    FD   TYPE DEVICE SIZE/OFF NODE NAME

python  5686 openerp 3u  IPv4 116555      0t0  TCP *:8069 (LISTEN)
$ sudo lsof -i :8070

COMMAND  PID USER    FD   TYPE DEVICE SIZE/OFF NODE NAME

python  5686 openerp 5u  IPv4 116563      0t0  TCP *:8070 (LISTEN)

点击 Applications ‣ Internet‣ OpenERP Client 菜单中的OpenERP GTK客户端图标, 或者打开一个终端窗口,输入 openerp-client 。OpenERP登录窗口就会打开,并且显示消息 No database found you must create one!

虽然这个安装方法很简单,却是一个很有吸引力的选择,它比从http://openerp.com 下载一个OpenERP版本进行安装要好的多。 下载的版本可能无法直接运行在你的Linux发行版上。

Note

包版本

包维护是一个开发,测试和发布的过程,整个过程需要时间。所以OpenERP发布包并不总是包含最新的可用包。 在安装一个包之前首先要从网站上检查它的版本号。如果只有第三级版本号(比如:用6.0.2代替6.0.1)不同你就 可以考虑安装,因为区别可能很小——两个包之间不太可能是功能上的修改,更可能的是修复Bug。

手动安装 OpenERP Server

这一部分你会看到如果从http://openerp.com 下载并安装OpenERP和它所依赖的库和包。安装平台是Ubuntu桌面版。 这里是整个过程的一个总结:

  1. 在浏览器中打开页面 http://openerp.com
  2. 点击右侧的 Download 按钮,
  3. Sources 部分下载客户端和服务器文件到你的 home 目录 (或者其它你已经定义的下载目录)。

下载PostgreSQL数据库和其它OpenERP所依赖的包:

  1. 打开 Synaptic包管理器,按照提示输入root用户密码。
  2. Check that the repositories main , universe and restricted are enabled.
  3. Search for a recent version of PostgreSQL (such as postgresql-8.4 then select it for installation along with its dependencies.
  4. Select all of OpenERP’s dependencies, an up-to-date list of which should be found in the installation documents on OpenERP’s website, then click Apply to install them.

Note

Python 编程语言

Python是用来开发OpenERP的编程语言。它是一种动态的,无类型的面相对象的语言,优点是可以在很短的时间内被掌握。 不仅NASA的大量使用Python,Google和其它很多公司的代码也是用它写的。

要了解Python的更多信息,请访问 http://www.python.org

一旦所有这些依赖和数据库安装完毕,就可以使用网站上的指令安装服务器程序了。

打开一个终端使用命令 openerp-server 启动服务器,当服务起来后会出现一些log消息。如果服务被正确安装,30秒内 会出现消息 [...] waiting for connections... 或者类似消息,用来提示服务器正在等待客户端连接。

../../../../_images/terps_startup_log.png

控制台上的OpenERP开始日志

手动安装 OpenERP GTK 客户端

跟据你的操作系统,按照网站上的安装文档介绍的步骤安装0penERP GTK客户端。

../../../../_images/terp_client_startup.png

启动时的OpenERP客户端

打开一个终端窗口使用命令 openerp-client 启动客户端。当你在Linux服务器上启动客户端时你会发现不需要修改任何连接参数 客户端就可以正常工作。消息 No database found, you must create one! 可以告诉你已经成功连接到服务器,你需要在服务器 上创建一个数据库。

创建数据库

你可以使用其它的GTK客户端连接到你的Linux服务器。在你离开服务器时,确认你知道它的网络地址——无论是服务器名
(例如 ``mycomputer.mycompany.net`` ) 还是IP地址(例如 192.168.0.123 )。

Note

不同的网络

OpenERP客户端和服务器之间的通信是建立在标准协议至上的。你可以用Windows上的客户端连接一个Linux服务器,或者 反过来都没有问题。OpenERP的Mac版本也一样——你用Windows和Linux的客户端或者服务器都可以连接它。

在Linux下安装OpenERP客户端,参照本部分之前的过程。你可以通过修改连接参数使不同的客户端连接到OpenERP服务器。 要修改参数,请在连接对话框中点击 Change 按钮,并且启用下面的内容:

  • 服务器上的 Server : name 或者 IP address
  • 端口 Port : , 默认是 8069 或者 8070
  • Connection protocol : XML-RPC 或者 NET-RPC
../../../../_images/terp_client_server.png

定义连接服务器参数对话框

在从客户端连接到服务器时有可能需要使用安全协议以防止网络上其他用户的侦听,但是这里描述的仅是无加密的直接链接。

如果你的Linux服务器有防火墙保护,你需要打开 8069 or 8070 端口以便其它电脑上的用户使用OpenERP GTK客户端访问。

../../../../_images/web_welcome.png

使用OpenERP Web客户端

你可以通过在浏览器中打开http://localhost:8069来修改OpenERP Web版的安装,如图 使用OpenERP Web客户端。 你也可以通过另一台电脑连接到相同的网络来测试如果你知道服务器名或者IP地址——你应该在浏览器中输入类似于http://<server_address>:8069 的地址来访问。

检查您的 Linux 安装

你在安装各组件过程中已经使用了默认参数。如果你有问题或者你想进行不同的设置,下面的部分会指导你进行相应的安装。

Tip

psqlpgAdmin 工具

psql是一个简单的客户端,从命令行执行,它由PostgreSQL提供。它允许你执行SQL命令在你的OpenERP数据库上。

如果你习惯使用图形工具操作你的数据库你可以安装pgAdmin III(在Windows系统上,它通常会随着PostgreSQL自动安装, 你也可以从这里 http://www.pgadmin.org/ 自行下载)。

  1. PostgreSQL数据库启动启动并且默认监听本地的5432端口: 你可以在终端中输入 sudo netstat -anpt 检查5432端口是否可见。

  2. 数据库系统有一个默认规则 postgres ,它是运行在Linux postgres 用户下的: 在终端中输入 sudo su postgres -c psql查看psql的启动消息——然后输入 \q 退出程序。

  3. 如果你要从终端启动OpenERP,但是收到消息 socket.error: (98, 'Address already in use') 可能是已经有一个OpenERP的实例在运行并且使用了你已经定义的接口 (默认为8069和8070)。你需要首先停止并卸载掉之前安装的OpenERP或者Tiny ERP,或者其它占用了这两个端口的程序。

    输入 sudo netstat -anpt 以查看当前运行的进程,记录下PID。通过输入 ps aux | grep <PID>你可以看到这个PID对应的程序, 然后你可以通过输入 sudo kill <PID>来停止它。当你重启服务器时你需要通过其它方式停止它。

  4. OpenERP服务器有大量的配置选项。 你可以在启动服务器时输入 –help进行查看。默认情况下,服务器的配置文件 保存在用户的home目录下的 .terp_serverrc文件中(对于postgres用户来说目录是 /var/lib/postgresql

  5. 你可以删除配置文件使OpenERP以默认方式启动。升级后的系统经常会因为新版本的服务端程序不能和旧版本的参数配合工作而表现不佳。 当采用无配置文件启动服务时,它会自动创建一个默认配置文件——除非采用了非默认方式这个配置文件才会被重写。

  6. 判断系统工作是否正常,抛开防火墙的问题,你可以在服务器上再开一个终端窗口,打开OpenERP客户端(这样可以避免防火墙过滤)。 在端口8069上使用XML-RPC协议或者在8070端口上使用NET-RPC协议进行连接。服务器可以同时使用这两个端口。当以这种形式启动时窗口会显示日志文件。

  7. 客户端安装在用户的home目录下的 .terprc文件里。因为任何用户都可以启动GTK客户端,所以每个用户 都会在他们的目录中保存一份配置文件。

  8. 你可以删除配置文件使OpenERP客户端只使用默认选项启动。当客户端发现没有配置文件它会自动创建一个。

  9. Web服务器使用 NET-RPC 协议。如果GTK客户端工作正常,但是Web服务却不行,问题可能出在NET-RPC端口上也可能是Web服务器自身 的问题,但不是OpenERP服务器的问题。

Hint

多公司使用同一服务器

你可以在一台物理机上启动多个OpenERP服务端,但它们要使用不同的端口。如果你已经在PostgreSQL中定义了多个数据库角色, 每一个通过一个OpenERP实例连接到不同的端口,你就可以使用一台物理服务器同时为多个公司提供服务。