OpenERP 是一款建立在Python,PostgreSQL,XML等技术之上非常灵活强大的开源ERP系统。
最近成功安装了OpenERP6,期间参考了网络上的一些资料并得到了openerp论坛中的热心帮助,曾有论坛的朋友通过QQ询问安装问题,我就把这些安装记录写下来,希望这些记录可以帮助到其他人。
环境准备
安装 ubuntu server
安装vim(个人习惯)
$ sudo apt-get install vim
设置网络,IP 地址和路由配置
例如设置
192.168.20.20
255.255.255.0
192.168.20.1
打开文件
$ sudo vi /etc/network/interfaces
配置以下内容:
iface eth0 inet static
address 192.168.20.20
netmask 255.255.255.0
gateway 192.168.20.1
安装openerp-server
安装PostgreSQL
$ sudo apt-get install postgresql
PostgreSQL默认超级用户为‘postgres’. 你首次需要以此用户来登录.
$ sudo su postgres
password: XXXXXXXXXX
接下来是为OpenERP配置PostgreSQL用户:
$ createuser –createdb –username postgres –no-createrole –pwprompt openerp
Enter password for new role: XXXXXXXXXX
Enter it again: XXXXXXXXXX
Shall the new role be a superuser? (y/n) y
CREATE ROLE
注意:密码设置为 postgres.
下载openerp
使用以下命令下载deb包:
$ wget http://www.openerp.com/download/stable/deb/openerp-server-6.0.3-0_all.deb
$ wget http://www.openerp.com/download/stable/source/openerp-web-6.0.3.tar.gz
安装openerp-server
使用 dpkg 安装deb包,并通过 apt-get -f 选项安装依赖包
$ sudo dpkg -i openerp-server-6.0.3-0_all.deb
$ sudo apt-get -f install
配置参数
$ sudo vi /etc/openerp-server.conf
db_password = postgres
添加参数,使其能够通过localhost以外的地址访问ftp
ftp_server_host = 0.0.0.0
重启服务
$ sudo /etc/init.d/openerp-server restart
安装 openerp-web
必要包
Python >= 2.4
CherryPy >= 3.1.2
Mako >= 0.2.4
Babel >= 0.9.4
FormEncode >= 1.2.2
simplejson >= 2.0.9
pyparsing >= 1.5.0
python-libxslt1
postgresql-client
python-hippocanvas
python-matplotlib
python-webdav
解决中文(不完整)问题
解决此问题需要更改源代码:
$ sudo vi ~/openerp-web-6.0.3/openobject/i18n/_gettext.py
将代码:
if locale in domain_catalog:
return domain_catalog[locale]
更改为:
if str(locale) in domain_catalog:
return domain_catalog[str(locale)]
安装
$ sudo python setup.py install
建立OpenERP-Web启动进程(daemon)
$ sudo vi /etc/init.d/openerp-web
内容如下(注意更换为您自己的内容):
#!/bin/sh
#
# Open ERP web 启动脚本
#
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
DAEMON=/home/yourname/openerp/openerp-web
CONFIGFILE=/home/yourname/openerp/openerp-web.cfg
NAME=openerp-web
DESC=openerp-web
USER=yourname
test -x ${DAEMON} || exit 0
set -e
case “${1}” in
start)
echo -n “Starting ${DESC}: ”
start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid
–chuid ${USER} –background –make-pidfile
–exec ${DAEMON} — –config=${CONFIGFILE}
echo “${NAME}.”
;;
stop)
echo -n “Stopping ${DESC}: ”
start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid
–oknodo
echo “${NAME}.”
;;
restart|force-reload)
echo -n “Restarting ${DESC}: ”
start-stop-daemon –stop –quiet –pidfile /var/run/${NAME}.pid
–oknodo
sleep 2
start-stop-daemon –start –quiet –pidfile /var/run/${NAME}.pid
–chuid ${USER} –background –make-pidfile
–exec ${DAEMON} — –config=${CONFIGFILE}
echo “${NAME}.”
;;
*)
N=/etc/init.d/${NAME}
echo “Usage: ${NAME} {start|stop|restart|force-reload}” >&2
exit 1
;;
esac
exit 0
(内容结束)
然后进行如下操作:
$ cp /doc/openerp-web.cfg /etc/
$ sudo chown -R openerp /etc/openerp-web.cfg
$ sudo chown -R openerp /addons
$ sudo chown -R openerp /etc/init.d/openerp-web
$ sudo chmod +x /etc/init.d/openerp-web
更改配置相关文件openerp-web.cfg
log.accessfile = “var/log/openerp-web/access.log”
log.errorfile = “var/log/openerp-web/error.log”
并且,进行如下操作:
$ sudo mkdir -p /var/log/openerp-web
$ sudo touch /var/log/openerp-web/access.log
$ sudo touch /var/log/openerp-web/error.log
$ sudo chown -R openerp /var/log/openerp-web
加入启动进程:
$ sudo update-rc.d openerp-web defaults
$ sudo /etc/init.d/openerp-web start
一些问题的解决
一旦发现出现以下错误:
<type ‘exceptions.UnicodeEncodeError’>: ‘ascii’ codec can’t encode character u’u5e74′ in position 2: ordinal not in range(128)
args = (‘ascii’, u’%Yu5e74%mu6708%du65e5 %Hu65f6%Mu5206%Su79d2′, 2, 3, ‘ordinal not in range(128)’)
解决方法:
“系统管理-翻译-语言” 修改日期格式与时间格式,使其不包含汉字。
感觉代码使用’ascii’有问题,应该是/usr/local/lib/python2.7/dist-packages/openerp_web-6.0.3-py2.7.egg/openobject/i18n/format.py出错了
wiki显示不正常,只显示为编辑模式(权限问题)
$ sudo chmod -R 777 [目录]
目录可能包含3个:
/usr/lib/pymodules/python2.x/openerp-server/addons
/usr/share/pyshared/openerp-server/addons
/usr/…/openerp-web/addons
更改web页面右上角support支持地址
更改这里:
/usr/share/pyshared/openerp-server/addons/web_livechat/publisher_warranty.py
函数getdefaultlivechat_text的返回值
return ‘<a href=”http://www…(略)
更改logo图片
图片信息在 <openerp-web目录>/addons/openerp/static/css/screen.css 文件中, 可能会是 ../images/logo-bg.png
打开web缓存
Opery Web Client:打开openerp-web.cfg,确认 server.environment = “production” (源码安装默认development)
在cherrypy/cpserver.py文件中有两个重要参数,分别是46行的socketqueuesize = 5 和 51行threadpool = 10 ,这里修改为socketqueuesize = 500 和 thread_pool = 1000。(这两个参数一旦在保持默认值的情况下,连并发100都跑不了。不明白CherryPY的默认值为什么这么低 …)