การติดตั้ง OpenERP บน CentOS

ขั้นที่ 1 สำหรับ CentOS 5 ที่ลงเสร็จใหม่ จะต้องเพิ่ม repo epel เพื่อโหลดคอมโพเน้นท์ที่ต้องการ
[prompt]# wget http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
[prompt]# rpm -ivh epel-release-5-3.noarch.rpm
[prompt]# yum -y update

ขั้นที่ 2 - ติดตั้ง python และ component ที่จำเป็นทั้งหมด
[prompt]# yum install postgresql
[prompt]# yum install
  python-lxml
  python-psycopg2
  pytz.noarch
  PyXML
  mx
  libxslt-python
  python-imaging
  pygtk2
  python-matplotlib
  TurboGears
  libxml2
  python-devel
  graphviz
  pydot
  pychart
  pygtk2
  pygtk2-libglade
  mx
 
[prompt]# wget ftp://ftp.univie.ac.at/systems/linux/dag/redhat/el5/en/x86_64/RPMS.dag/python-reportlab-1.20-1.el5.rf.noarch.rpm
[prompt]# rpm -i python-reportlab-1.20-1.el5.rf.noarch.rpm

กรณีของ python-reportlab จะใช้ yum ก็ได้
[prompt]# yum install python-reportlab

ขั้นที่ 3 Download OpenERO
[prompt]# wget http://www.openerp.com/download/stable/source/openerp-server-5.0.9.tar.gz

ขั้นที่ 4 ทดสอบการติดตั้ง component และติดตั้ง Server
[prompt]# tar -xzf openerp-server-5.0.0.tar.gz
[prompt]# cd openerp-server-5.0.0/bin
[prompt]# python openerp-server.py

ถ้าหาก component ไม่ครบ จะมี error message แสดงชื่อ component ที่ต้องการ เมื่อแก้ไขปัญหาเสร็จแล้ว ขั้นสุดท้ายให้ทำการติดตั้งเซิร์ฟเวอร์
[prompt]# cd ..
[prompt]# sudo python setup.py install

ขั้นที่ 5 ติดตั้ง postgresql และ การสร้างฐานข้อมูล
[prompt]# yum install postgresql (optional)
[prompt]# chkconfig postgresql on
[prompt]# service postgresql start
[prompt]# su - postgres
 
สร้าง admin user (root) - ขั้นตอนนี้อาจจะไม่จำเป็น
[prompt]# createuser root -sdrP
(ป้อนข้อมูล password สำหรับ role "root")
 
สร้าง OpenERP user
[prompt]# createuser openerp -dP 
(ป้อนข้อมูล password สำหรับ role "openerp")
 
สร้างฐานข้อมูล OpenERP
[prompt]# createdb -O openerp openerp
จากนั้น แก้ไขวิธี authenticate ของ postgresql ให้เป็น MD5 โดย
[prompt]# vi /var/lib/pgsql/data/pg_hba.conf

แก้ Content ให้เป็นตามด้านล่างนี้ File: /var/lib/pgsql/data/pg_hba.conf
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD
# "local" is for Unix domain socket connections only
local   all         all                               md5
#local   all         all                               ident sameuser
# IPv4 local connections:
host    all         all         127.0.0.1/32          md5
#host    all         all         127.0.0.1/32          ident sameuser
# IPv6 local connections:
host    all         all         ::1/128                md5
#host    all         all         ::1/128               ident sameuser
เสร็จแล้ว restart postgresql
# service postgresql restart

ขั้นที่ 6 สร้าง User และ Initialize ฐานข้อมูล แก้ไขไฟล์ /etc/passwd, /etc/shadow และ /etc/group โดยเพิ่มข้อมูลต่อไปนี้
File: /etc/passwd
openerp:x:56:56::/var/lib/openerp:/bin/bash
 
File: /etc/shadow
openerp:!!:14773:0:99999:7:::
 
File: /etc/group
openerp:x:56:
ข้อควรระวังคือ ถ้าหาก uid หรือ gid หมายเลข 56 ถูกใช้งานไปแ้ล้ว จะต้องเปลี่ยนไปใช้ uid/gid ที่ยังว่างอยู่
จากนั้น สร้าง home directory ให้ openerp โดย

[prompt]# mkdir /var/lib/openerp
[prompt]# mkdir /var/lib/openerp/run
[prompt]# mkdir /var/lib/openerp/logs
[prompt]# chown -R openerp.openerp /var/lib/openerp
จากนั้น populate configuration file โดย

[prompt]# su - openerp
[prompt]# openerp-server -s
จากนั้น กด Ctrl-C เพื่อออกจาก server จะได้ไฟล์ config ขึ้นมาใน home directory ของ openerp ให้ทำการแก้ไขโดย
[prompt]# vi ~openerp/.openerp_serverrc
 
แก้ไขบรรทัดต่อไปนี้ ให้มีค่าเหมือนในตัวอย่าง
admin_passwd = [password สำหรับ super admin]
db_user = openerp
db_password = [password ที่เซ็ตไว้]
db_name = openerp
pid_file = /var/lib/openerp/run/server.pid
logfile = /var/lib/openerp/logs/server.log

ขั้นที่ 7 ติดตั้ง Web Client
[prompt]# wget http://cheeseshop.python.org/packages/source/p/pyparsing/pyparsing-1.5.0.tar.gz
[prompt]# easy_install pyparsing-1.5.0.tar.gz
[prompt]# easy_install -U Babel
[prompt]# easy_install -U Mako
[prompt]# easy_install -U CherryPy
[prompt]# tar -xzf openerp-web-5.0.9.tar.gz
[prompt]# cd openerp-web-5.0.9
[prompt]# sudo python setup.py install
จากนั้น เตรียม config file สำหรับ web client โดย copy ตัวอย่างจาก package

[prompt]# cp /usr/lib/python2.4/site-packages/openerp_web-5.0.11-py2.4.egg/config/openerp-web.cfg .
แก้ไข config ของ web-client ตามต้องการ แล้วเซฟ

ขั้นที่ 8 ติดตั้ง service สำหรับ openerp
ใช้ไฟล์ต่อไปนี้ในการสร้าง service
[prompt]# vi /etc/init.d/openerp
File: /etc/init.d/openerp

#!/bin/sh
#
# chkconfig: 345 65 35
# description: Starts and stops the OpenERP's server and webclient daemons
#
# pidfile: /var/lib/openerp/run/server.pid
# pidfile: /var/lib/openerp/run/client.pid
# config:  /var/lib/openerp/.openerp-serverrc
#          /var/lib/openerp/client.cfg
 
SU="/bin/su"
 
USER=openerp
ERPHOME="/var/lib/openerp"
PIDFILE="${ERPHOME}/run/server.pid"
 
#SERVEROPTS="--syslog --log-level=debug --pidfile=${PIDFILE}"
SERVEROPTIONS="--log-level=debug" # remove when done debugging
 
# Source function library.
if [ -f /etc/init.d/functions ] ; then
  . /etc/init.d/functions
elif [ -f /etc/rc.d/init.d/functions ] ; then
  . /etc/rc.d/init.d/functions
else
  exit 1
fi
 
# Source networking configuration.
. /etc/sysconfig/network
 
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 1
 
# Check that conf files exist.
[ -f ${CLIENTCFG} ] || exit 6
 
RETVAL=0
 
start() {
        KIND="Server"
        echo -n $"Starting OpenERP $KIND services: "
        $SU - ${USER} -c "nohup /usr/bin/openerp-server $SERVEROPTIONS > /dev/null 2>&1 &"
        sleep 3
        if [ ! -f $PIDFILE -a  ! -d /proc/`cat ${PIDFILE}` ] ; then
          RETVAL=1
          echo_failure
        else
          RETVAL=0
          echo_success
        fi
        echo
        KIND="Web Client"
        echo -n $"Starting OpenERP $KIND services: "
        for CFG in $ERPHOME/*.cfg
        do
          daemon --user ${USER} /usr/bin/nohup "/usr/bin/openerp-web -c ${CFG} > /dev/null 2>&1 &"
        done
        RETVAL2=$?
        echo
        [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && touch /var/lock/subsys/openerp || \
           RETVAL=1
        return $RETVAL
}
 
stop() {
        KIND="Server"
        echo -n $"Shutting down OpenERP $KIND services: "
        killproc -p ${PIDFILE} openerp-server
        RETVAL=$?
        echo
        KIND="Web Client"
        echo -n $"Shutting down OpenERP $KIND services: "
        killproc openerp-web
        RETVAL2=$?
        [ $RETVAL -eq 0 -a $RETVAL2 -eq 0 ] && rm -f /var/lock/subsys/openerp
        echo ""
        return $RETVAL
}
 
restart() {
        stop
        start
}
 
checkstatus()
{
        status -p $PIDFILE openerp
        RETVAL=$?
        status openerp-web
        RETVAL2=$?
        if [ $RETVAL2 -ne 0 ]; then
                return $RETVAL2
        fi
        if [ $RETVAL -ne 0 ]; then
                return $RETVAL
        fi
}
 
 
# Check that we can write to it... so non-root users stop here
[ -w ${CLIENTCFG} ] || exit 4
 
case "$1" in
  start)
        start
        ;;
  stop)
        stop
        ;;
  restart)
        restart
        ;;
  status)
        checkstatus
        ;;
  *)
        echo $"Usage: $0 {start|stop|restart}"
        exit 2
esac
 
exit $?
เสร็จแล้วทำการ start service โดย

[prompt]# service openerp start
หมายเหต: การรันครั้งแรกอาจจะมีข้อความว่าว่า cat: /var/lib/openerp/run/server.pid: No such file or directory ขึ้น เนื่องจาก server จะยังไม่ start ทันที แต่จะต้องทำการ initialize ฐานข้อมูลก่อน ไม่ต้องทำอะไรเพิ่มเติมครับ ทิ้งไว้แบบนั้น ครั้งต่อๆ ไปจะไม่มีข้อความนี้ขึ้น

ไม่มีความคิดเห็น:

แสดงความคิดเห็น