Sunday, September 1, 2013

Installing OpenERP on CentOS 6


openerp logo

What is OpenERP?

OpenERP is an open source full suite of Business software, and is published under the AGPL license. 
OpenERP contains over 700 modules such as sales management, Customer Relationship Management (CRM), warehouse management, association, project management, human resources management, point of sales and around

Installing OpenERP on CentOS 6

Installing OpenERP on CentOS can be tricky due to the lack of documentations. Most of the documentations are for Ubuntu/Debian distro.

OpenERP requires Python and PostgreSQL to run.

First step is to update the OS System & Packages
yum -y update

Installing wget in case it's not installed

yum -y install wget

Downloading the epel-release (Extra Packages for Enterprise Linux) and installing the packages

rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

Downloading the PostgreSQL and installing the packages
rpm -ivh http://yum.pgrpms.org/9.1/redhat/rhel-6Server-x86_64/pgdg-redhat91-9.1-5.noarch.rpm

Installing Packages & Dependencies

yum -y install python-psycopg2 python-lxml PyXML python-setuptools libxslt-python pytz python-matplotlib python-babel python-mako python-dateutil python-psycopg2 pychart pydot python-reportlab python-devel python-imaging python-vobject hippo-canvas-python mx python-gdata python-ldap python-openid python-werkzeug python-vatnumber pygtk2 glade3 pydot python-dateutil python-matplotlib pygtk2 glade3 pydot python-dateutil python-matplotlib python python-devel python-psutil python-docutils make automake gcc gcc-c++ kernel-devel byacc flashplugin-nonfree postgresql91-libs postgresql91-server postgresql91 libxslt-devel

Initializing PostgreSQL
service postgresql-9.1 initdb

Allowing remote access to PostgreSQL
echo "listen_addresses = '*'" >> /var/lib/pgsql/9.1/data/postgresql.conf

By Default, PostgreSQL refuses all connections, so we have to add the IP addresses and subnet.
You can replace 0.0.0.0/0 by your IP address and subnet mask to allow access from a certain IP address.

echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/9.1/data/pg_hba.conf

Starting PostgreSQL
service postgresql-9.1 start

Starting PostgreSQL after every reboot
chkconfig postgresql-9.1 on

Creating PostgreSQL user and database
su - postgres -c "createuser --pwprompt --createdb --no-createrole --no-superuser openerp"

Downloading the Python client library for Google data APIs
cd /tmp
wget http://gdata-python-client.googlecode.com/files/gdata-2.0.17.zip
Unziping and Installing it
unzip gdata-2.0.17.zip
rm -rf gdata-2.0.17.zip
cd gdata*
python setup.py install

 Adding OpenERP user to work with OpenERP. Never use root!
adduser openerp

Creating runtime directory and log directory and changing the owner to the previous created user
mkdir /var/run/openerp
mkdir /var/log/openerp
chown openerp.openerp /var/run/openerp

If a previous version of openerp exists, remove it
rm -rf openerp*

Downloading OpenERP, extracting it to a directory called "openerp", and installing it
wget http://nightly.openerp.com/7.0/nightly/src/openerp-7.0-latest.tar.gz
tar -zxvf openerp-7.0-latest.tar.gz  --transform 's!^[^/]\+\($\|/\)!openerp\1!'
cd openerp
python setup.py install

If OpenERP was previously installed, remove it
rm -rf /usr/local/bin/openerp-server

Copy configuration files from OpenERP directory to their correct destination
cp openerp-server /usr/local/bin
cp install/openerp-server.init /etc/init.d/openerp
cp install/openerp-server.conf /etc
chmod u+x /etc/init.d/openerp

Start OpenERP after every reboot
chkconfig openerp on
Start OpenERP
service openerp start


That's it!
You should be able to access OpenERP on your server's IP, port 8069
xxx.xxx.xxx.xxx:8069

And you should see a screen like this:

OpenERP on CentOS 6


Have some questions? Leave us a comment below!

4 comments:

  1. Hi, I have a question regarding OpenERP 7.0 on Centos 6, do you know if we have to install Openerp as a service on the root ? or could we install it on the public_html folder?
    I am wondering if we want to run OpenERP for two different companies : company1.domain.com and company2.domain.com
    maybe it is possible do have as well something like Openerp.domainalpha.com and Openerp.domainbeta.com
    Than you for your blog for centos... nowadays everything is write for ubuntu.

    Frank

    ReplyDelete
    Replies
    1. Hello,

      Yes you have to install openerp as a root service,

      There are few methods to have two different companies on the same server:
      1- you can create 2 different databases with the same openerp installation, the first database could be accessed using xxx.xxx.xxx.xxx:8069?db=company1 and xxx.xxx.xxx.xxx:8069?db=company2

      2- You can have two different installations of openErp, every installation in a different path, different postgresql and every installation listening on a different port, different logs and different config files and start script. Basically this is not easy, but I'm sure you can find more help on openErp forums.


      In Either cases, whether you go with option 1 or option 2, and assuming you have only one IP address on your server, you will have to install a webserver like apache, setup virtualhosts and use it as a proxy to redirect your company1.domain.com or company2.domain.com to the correct database or installation

      Hope this helps

      Delete
  2. I successfully installed.. thanks for this tutorial

    ReplyDelete