谈OpenERP部署环境操作步骤
Odoo,OpenERP中文网 / 2013-12-06
一、系统基本配置:
1 、操作系统: CentOS 5.6
2 、磁盘划分:
- / -----------> 100G
- /usr/local -----------> 200G
- /home -----------> 50G
- /opt -----------> 100G
- swap -----------> 10G
3 、数据库: postgresql-9.1.2(OpenERP6.0需要postgresql-8.2版本或者以上)
4、 Python: Python 2.6(OpenERP6.0需要Python2.5版本或者以上)
二、创建用户openerp(用于启动OpenERP的用户)
三、安装,配置数据库(postgresql):
------------------------------------------------------------------------------
1 、安装:
- # yum install postgresql postgresql-server
- # yum install postgresql-devel (需要)
2、配置:
1 、设置服务开机自动启动:
- # chkconfig postgresql on
2 、启动服务:
- # /etc/init.d/postgresql start
3、 添加openerp用户:
- # su - postgres
- -bash-3.2$ createuser --no-superuser --createdb --no-createrole \
- --login --pwprompt --encrypted
由于CentOS 5.6默认的postgresql为8.1.23版本,是不符合要求的,所以需要自己手动编译
下载postgresql-9.1.2
系统需求确认:
make 3.80版本或者以上
C compiler
tar gzip bzip2
readline readline-devel
zlib zlib-devel
full Perl installation, including the "libperl" library and the header files
安装:
解压缩postgresql-9.1.2.tar.bz2($POSTPATH)
- # useradd postgres
- # cd $POSTPATH
- # ./configure
- # make
- # make install
- # chown -R postgres:postgres /usr/local/pgsql
- # su - postgres
- $ /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data # 初始化数据库
- $ vim /usr/local/pgsql/data/postgresql.conf(根据需要)
去掉 listen_addresses 前面的注释并设置参数为 *
去掉 port 前面的注释
- $ vim /usr/local/pgsql/data/pg_hba.conf(根据需要)
- $ /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data
或者
- (/usr/local/pgsql/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start) # 启动服务器
- $ /usr/local/pgsql/bin/createuser --no-superuser --createdb --no-createrole --login --pwprompt --encrypted (添加用户)
- # ln -s /usr/local/pgsql/bin/psql /usr/bin/psql(创建软链接)
- $ psql (登录)
设置自动启动脚本
- # cp /home/openerp/postgresql-9.1.2/contrib/start-scripts/linux /etc/init.d/postgres
- # chomd +x /etc/init.d/postgres
- # service postgres start (启动)
- # chkconfig postgres on(开机自动启动数据库)
四、 安装Python 2.6
CentOS 5.6默认的Python版本为2.4的,所以需要自己手动安装Python
1 、下载源码
ython-2.6.tar.bz2
2 、安装需要的库
- # yum install sqlite-devel openssl-devel bzip2-devel gdbm-devel readline-devel \
- ncurses-devel libxml2-devel libxslt-devel
3、 解压缩,安装
- $ tar jxvf Python-2.6.tar.bz2
- $ cd Python-2.6
- $ ./configure --prefix=/opt/apps/python2.6
- $ make
- $ make install
- $ sudo ln -s /opt/apps/python2.6/bin/python /usr/bin/python2.6 #创建链接
4、安装easy_install
1) 下载ez_setup.py
2)安装:
- $ python2.6 ez_setup.py
- $ sudo ln -s /opt/apps/python2.6/bin/easy_install /usr/bin/easy_install2.6
五、将/opt目录改为openerp拥有(openerp用户使用)
- # chown openerp:openerp /opt/
- # su - openerp
- $ mkdir /opt/apps (用于存放OpenERP应用)
六、安装OpenERP需要的Python库
- $ easy_install2.6 lxml
- $ easy_install2.6 psycopg2
- $ easy_install2.6 pyaml
- $ easy_install2.6 reportlab
- $ easy_install2.6 mako
- $ easy_install2.6 pil
- $ easy_install2.6 cherrypy
- $ easy_install2.6 formencode
- $ easy_install2.6 simplejson
- $ easy_install2.6 babel
- $ easy_install2.6 pytz
- $ easy_install2.6 python-dateutil
七、启动OpenERP:
- $ python2.6 /opt/apps/OpenERP/openerp-server/bin/openerp-server.py --db_user=openerp \
- --db_password=openerp
- $ python2.6 /opt/apps/OpenERP/openerp-web/openerp-web.py
安装OpenERP(Server端):
- $ cd /opt/apps/OpenERP/openerp-server/
- $ sudo python2.6 setup.py install
- # ln -s /opt/apps/python2.6/bin/openerp-server /usr/bin/openerp-server
- $ openerp-server (启动)
安装OpenERP(Web端):
- $ cd /opt/apps/OpenERP/openerp-web/
- $ sudo python setup.py install
- # ln -s /opt/apps/python2.6/bin/openerp-web /usr/bin/openerp-web
- $ openerp-web
具体用法:
- $ openerp-server &
- $ openerp-web &
- 上述命令如果是用ssh启动的话,会出现问题(ssh断开连接的时候,相应的开启的服务也会关闭),解决方案:
- #nohup program &(可以保证关闭ssh后,ssh开启的服务依旧运行),即:
- $ nohup openerp-server &
- $ nohup openerp-web &
-
八防火墙设置(开通8080访问的端口)
1 、安装iptables
2、初始化iptables
3、定制过滤规则
- # vim /etc/sysconfig/iptables
- *filter
- :INPUT ACCEPT [0:0] # 定义了内建的INPUT链
- :FORWARD ACCEPT [0:0] # 定义了内建的FORWARD链
- :OUTPUT ACCEPT [0:0] # 定义了内建的ACCEPT链
- :RH-Firewall-1-INPUT - [0:0] # 创建一个被称为RH-Firewall-1-INPUT的新链
- -A INPUT -j RH-Firewall-1-INPUT # 这条规则将添加到INPUT链上,所有发往INPUT链上的数据包将跳转到RH-Firewall-1链上
- -A FORWARD -j RH-Firewall-1-INPUT
- -A RH-Firewall-1-INPUT -i lo -j ACCEPT # 这条规则将被添加到RH-Firewall-1-input链,他可以匹配所有的数据包,其中
- # 流入接口(-i)是一个环路接口(lo), 匹配这条规则的数据包将全部通过(ACCEPT),
- # 不会再使用别的规则来和它们进行比较
- -A RH-Firewall-1-INPUT -p icmp --icmp-type any -j DROP # 拒绝所有的icmp包-p后是协议如:icmp, tcp, udp。端口是
- # 在-p后面--sport源端口,--dport目的端口。-j指定数据包
- # 发送的
- # 接受下面的防火墙设置
- # -m state --state ESTABLISHED,RELATED这个条件表示所有处于 ESTABLISHED或者 RELATED状态的包,策略都是接受的。
- # -m state --state NEW 这个条件是当connection的状态为初始连接(NEW)时候的策略
- -A RH-Firewall-1-INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
- -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
- # 拒绝所有的
- -A RH-Firewall-1-INPUT -j REJECT --reject-with icmp-host-prohibited
- COMMIT
4 、让规则生效
- # /etc/init.d/iptables restart
5、测试通过