Linux

Zarafa Workshop

Open-Future, the company where I work is organizing a Zarafa workshop in February 2010!

Open-Future is a Linux & Open Source Integrator. Our goal is to make Open Source work for you. Our competences and services include:

  • Infrastructure
  • Security
  • Groupware & ERP
  • High Availability & Disaster Recovery
  • Virtualisation
  • Backup and Recovery
  • ....

Zarafa is Open Source Collaboration, providing:

  • Integration with your existing Linux mailserver
  • Native mobile phone support
  • Outlook "Look & Feel" webaccess
  • Stable Outlook sharing (100% MAPI)                           * extract from www.zarafa.nl

Want to join the Zarafa Workshop? Click the banner:

Zarafa Workshop

KnowledgeTree universal installer problems on CentOS

When installing or migrating from KnowledgeTree (Document Management System) version 3.0.6 to 3.0.7.2 on CentOS using the KnowledgeTree universal installer one might run into the following issue:

None of the Scheduler's tasks get executed correctly. 

All the tasks exit with the following errorcode:

[db_error: message="DB Error: extension not found" code=-25 mode=return level=notice prefix="" info="Array"] 

You can test this manually:

# /usr/local/zend/bin/php /usr/share/knowledgetree-ce/search2/bin/cronDocumentProcessor.php
[db_error: message="DB Error: extension not found" code=-25 mode=return level=notice prefix="" info="Array"]

The problem here is that the variable LD_LIBRARY_PATH is not set correctly, causing the zend php binary not being able to find the correct database module.
Let's try setting this variable manually:

# export LD_LIBRARY_PATH=/usr/local/zend/lib/
# /usr/local/zend/bin/php /usr/share/knowledgetree-ce/search2/bin/cronDocumentProcessor.php
#

Fixed! Now, this only fixes the problem in our current shell, how do we make this fix persistent system wide? By creating a file in /etc/profile.d/ setting the variable system wide:

# vi /etc/profile.d/kt.sh

With the contents:

export LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:/usr/local/zend/lib/

Now, lets make this file executable:

# chmod +x /etc/profile.d/kt.sh

Now, all that's left to do is restart KnowledgeTree so that it reads the new content of the LD_LIBRARY_PATH variable and our problem is solved.

Bug reported to KnowledgeTree: http://issues.knowledgetree.com/browse/KTS-4576

Howto: Installation of OpenERP on CentOS

When installing OpenERP on CentOS for my new company Open-Future I noticed that the documentation on the OpenERP website is a bit out of date and mainly focuses on an installation on Ubuntu.

I decided to write a blogpost with a decent, up to date howto of how to install it on CentOS as I didn't find any online. Have fun installing, and.... Let's get started!

Let's make some things clear, text formatted like this are shell commands.

> echo "run this as a normal user"
# echo "run this as root"

This howto contains 2 parts:

  • Installation and configuration of openerp-server.
    The server package
  • Installation and configuration of openerp-web.
    The webclient GUI.

Let's start with openerp-server.

1. Installation
1.1 Installing the required packages

First, let's enable the EPEL repository, this repository, maintained by the Fedora Project contains most of the packages we need.

# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

Now, let's install the required packages:

# yum install python python-setuptools python-ldap python-ldaphelper PyXML python-psycopg2 \
pychart pydot libxml2-python python-lxml libxslt-python pytz postgresql-python graphviz \
python-imaging python-devel postgresql-server openldap-clients python-dev

There is one more package that we need, but it's not in the repositories, so dowload it from rpmforge and install it:

# cd /usr/src
# wget http://dag.wieers.com/rpm/packages/python-reportlab/python-reportlab-1.2...
# rpm -Uvh python-reportlab-1.20-1.el5.rf.noarch.rpm

1.2 Download openerp-server

# cd /usr/src

Download from: http://www.openerp.com/index.php?option=com_content&view=article&id=18&Itemid=28

# wget http://www.openerp.com/download/stable/source/openerp-server-5.0.6.tar.g

1.3 Installing openerp-server

 # tar xvf openerp-server-5.0.6.tar.gz
 # cd openerp-server-5.0.6
 # python setup.py install

That's it really :-)

1.4 Run as a daemon

There is no init script available for openerp-server and it has no option to force it to the background. You could run it in screen but that's not necessary as I wrote an init script for CentOS for you to use ;-).

First, we need to add an openerp user.

 # adduser openerp

Now, download the openerp-server.txt init script from the file attachments and add it as a service:

# mv /path/to/openerp-server.txt /etc/init.d/openerp-server
# chmod +x openerp-server
# chkconfig --add openerp-server
# chkconfig openerp-server on

Do not start it yet! First see the openerp-server configuration section.

2. Configuration
2.1 Postgresql

First we'll need to configure postgresql to setup an openerp user and database.
Let's start postgres:

# service postgresql start
# chkconfig postgresql on

If your selinux is enabled and enforcing (RECOMMENDED!) there might be a problem launching postgresql. If so check your audit log
and create a policy for postgresql.

# service postgresql start

Now, let's create a user for openerp:

# su - postgres
> createuser --createdb --no-createrole --pwprompt openerp

Now, let's create the postgres db:

# su - postgres
> createdb -O openerp openerp

To allow openerp-server to login to postgresql edit the following file: /var/lib/pgsql/data/pg_hba.conf
Make sure it looks like this (insert lines marked with '>>' but opress the '>>' !! :

# !! NOT SHELLCODE, FILE CONTENTS ;-) !!
# TYPE  DATABASE    USER        CIDR-ADDRESS          METHOD

# "local" is for Unix domain socket connections only
>> local   all         all                               trust
local   all         all                               ident sameuser
# IPv4 local connections:
>> host    all         all         127.0.0.1/32          trust
host    all         all         127.0.0.1/32          ident sameuser
# IPv6 local connections:
host    all         all         ::1/128               ident sameuser

2.2 openerp-server

Now that postgresql is configured, we can configure openerp-server.
We are going to start openerp-server with the -s parameter, this gives us a basic config we can edit to our needs.

# su - openerp
> openerp-server -s

Now, we can stop it again and edit the configuration file.
Let's edit it:

 > vi ~/.openerp_serverrc

And change the following lines:

 admin_passwd = ...
db_user = openerp
db_port = 5432
db_password = ...
db_name = openerp
db_host = 'localhost'

That's it!! OpenERP server is configured, you can now start it:

# mkdir /var/run/openerp
# chown openerp.openerp /var/run/openerp
# service openerp-server start

And go on with installation and configuration of openerp-web.

Let's continue: openerp-web!

1. Installation
1.1 Download openerp-web

# cd /usr/src

Download from: http://www.openerp.com/index.php?option=com_content&view=article&id=18&Itemid=28

# wget http://www.openerp.com/download/stable/source/openerp-web-5.0.6.tar.gz

1.2 Installation

# tar xvf openerp-web-5.0.6.tar.gz
# cd openerp-web-5.0.6/lib
# ./populate.sh
# cd ..
# easy_install -U openerp-web

Look for the config file and copy it to /etc/openerp-web.cfg

# cp /usr/lib/python2.4/site-packages/openerp_web-5.0.6-py2.4.egg/config/openerp-web.cfg \
/etc/openerp-web.cfg

1.4 Run as a daemon

An init script for openerp-web is available but sadly it only works for debian/ubuntu as the /etc/init.d/functions differ too much on Red Hat/CentOS. But not to worry, check the attachments and find the openerp-web.txt init script ;-).

Download the openerp-web.txt init script from the file attachments and add it as a service:

# mv /path/to/openerp-web.txt /etc/init.d/openerp-web
# chmod +x openerp-web
# chkconfig --add openerp-web
# chkconfig openerp-web on

Do not start it yet! First see the openerp-web configuration section.

2. Configuration

Just edit the configuration file to your needs:

# vi /etc/openerp-web.cfg

Basicly you need to change the following values:

 # Some server parameters that you may want to tweak
server.socket_host = "0.0.0.0"
server.socket_port = 8080

...

 # logging
log.access_file = "/var/log/openerp-web/access.log"
log.error_file = "/var/log/openerp-web/error.log"

Also, make sure the /var/log/openerp-web directory exists and is owned by openerp !

# mkdir /var/log/openerp-web
# chown openerp /var/log/openerp-web

...

 # OpenERP Server
[openerp]
host = 'localhost'
port = '8070'
protocol = 'socket'

...

 # will be applied on company logo
company.url = 'http://www.company.com'

You're done!

You can now start both services:

# service openerp-server start
# service openerp-web start

And go to http://your-openerp-server:8080 to log in as admin and do OpenERP stuff like enabling LDAP login, creating your company profile, customers, ...

New job

Today I started at my new employer (Open-Future). http://www.open-future.be/

I'm quite happy with this new challenge and I hope I can have a nice future here.

Gnome-do is mono

Today,

I learned in this interesting post that gnome-do is an application written in Mono.
I won't elaborate on why I don't like this, there are enough flame wars all around the internet/community for any of you to read.

I'm only going to say: I'm sad. I really really like gnome-do, it's an awesome application and I certainly will keep using it. But if there seems to be an alternative that's not written in Mono. And it's nearly as good, I will switch to the alternative.

But no, I don't think Launchy gets to the gnome-do level, it won't do...

/dev/out sad :-(

Syndicate content