ERP/2.50/Openbravo environment installation

From InfiniteERP Wiki
Jump to: navigation, search


Bulbgraph.png   This document refers to the old Openbravo 2.50 version and is probably not what you are looking for.
  • For documentation about the latest Openbravo 3 version, go here.
  • If you are still using Openbravo 2.50, we strongly recommend to migrate to Openbravo 3. Upgrading from 2.50 guide.




Introduction

This article explains in detail how to install and configure the whole stack required for Openbravo ERP to run. The stack consists of:

Bulbgraph.png   If you are looking for a quick way to explore Openbravo ERP without installing the full system stack, try the Openbravo ERP on-line demo or download an Openbravo ERP virtual appliance.

Installation steps of each component are explained for the following operating systems:

Please feel free to contribute to this article by adding installation steps for more operating systems or improving existing ones.

PostgreSQL database

Openbravo ERP supports PostgreSQL as its database engine.

  • 8.3.5 is the minimum required version.
  • The UUID contrib package is required.

PostgreSQL documentation and tutorials are available at:

Installing PostgreSQL on Microsoft Windows

Follow the instructions on the PostgreSQL wiki. Make sure to select the "UUID" option during the installation.

There's two installers right now: pgInstaller and One click installer, We suggest you use pgInstaller to install PostgreSQL.

By default, One click installer version does not include the UUID, if you use it you will need to also do this three steps:

  1. Download "uuid-ossp.dll" from zip file at winpg.jp
  2. Unpack the zip file into %Postgresql_directory%/lib directory
  3. Restart the Postgresql server.

Installing PostgreSQL on Debian (Ubuntu/Kubuntu/Linux Mint)

  1. Install the package using
    sudo apt-get install postgresql-8.3 postgresql-contrib-8.3
  2. Set the postgres password using:
    sudo /etc/init.d/postgresql-8.3 start
    sudo su - postgres -c psql
    alter role postgres with password 'new_password';
    \q

Installing PostgreSQL on Gentoo

  1. Install the package using the following commands. Portage will tell you which version to specify:
    echo dev-db/postgresql >> /etc/portage/package.keywords
    echo dev-db/postgresql-server >> /etc/portage/package.keywords
    echo dev-db/postgresql-base >> /etc/portage/package.keywords
    echo virtual/postgresql-base >> /etc/portage/package.keywords
    echo app-admin/eselect-postgresql >> /etc/portage/package.keywords
    echo dev-db/libpq >> /etc/portage/package.keywords
    echo dev-libs/ossp-uuid >> /etc/portage/package.keywords
    echo dev-db/postgresql-server uuid >> /etc/portage/package.use
    emerge -av postgresql-server
    emerge --config postgresql-server
    /etc/init.d/postgresql-8.3 start
    rc-update add postgresql-8.3 default
  2. Set the postgres password:
    psql -U postgres
    alter role postgres with password 'new_password';
    \q
    sed -i 's/trust$/md5/' /var/lib/postgresql/8.3/data/pg_hba.conf
    /etc/init.d/postgresql-8.3 reload

Installing PostgreSQL on CentOS

yum install postgresql postgresql-contrib

Oracle database

Openbravo ERP also supports the following editions of Oracle 10g (version 10.2.0.4.0 or later) and 11g (version 11.1.0.6.0 or later):

To learn more about Oracle, follow the links:

Installing Oracle on Microsoft Windows

Follow these instructions to install Oracle 11g on Windows.

Installing Oracle on Debian (Ubuntu/Kubuntu/Linux Mint)

Follow these step by step instructions to install Oracle 11g on Ubuntu 10.04 (Lucid Lynx).

Follow these step by step instructions to install Oracle 11g on Ubuntu 9.04 (Jaunty Jackalope).

Follow these step by step instructions to install Oracle 11g on Ubuntu 8.04 (Hardy Heron).

Or you can follow these instructions to install Oracle 11g on other Debian (Ubuntu/Kubuntu/Mint) versions.

Installing Oracle on Gentoo

Follow these guidelines to install Oracle 10g database on Gentoo.

Follow these guidelines to install Oracle 11g database on Gentoo.

Installing Oracle on CentOS

Follow these guidelines to install Oracle 10g database on Gentoo.

Common installation steps

  • Select AL32UTF8 as the database's NLS_CHARACTERSET.
  • Select AL16UTF16 as the database's NLS_NCHAR_CHARACTERSET.

Common postinstallation steps

In all the cases, after running the installation, check the following:

  • The number of open cursors should be at least 3000. Verify it, and tune the ALTER SESSION to change the number of open cursors if needed:

<source lang="sql">SELECT value FROM v$parameter WHERE name = 'open_cursors'; ALTER SYSTEM SET open_cursors = 3000 SCOPE=BOTH;</source>

  • Make sure that the number of processes is at least 150. Verify it, and tune the ALTER SESSION to change the number of processes if needed:

<source lang="sql">SELECT value FROM v$parameter WHERE name = 'processes'; ALTER SYSTEM set processes=150 SCOPE=SPFILE;</source>

  • Restart Oracle after doing this change.

Sun JDK

Openbravo supports the following JDKs:

All the developers use Sun's version and therefore is the recommended one.

Installing the Java SDK on Microsoft Windows

  1. Download and install JDK 1.6.
  2. Add the JAVA_HOME environment variable:
    1. Right-click on My Computer.
    2. Select Properties. The System Properties window appears.
    3. Select the Advanced tab then click Environment Variables.
    4. Click New. The New System Variable box appears.
    5. In the Variable name field, type JAVA_HOME.
    6. In the Variable value field type the path of the JDK installation directory. This is usually C:\Java\jdk1.6.0_<version>
    7. Select the PATH environment variable.
    8. In the Variable value field, type the path of the JDK installation directory's bin folder. This is usually C:\Java\jdk1.6.0_<version>\bin

Installing the Java SDK on Debian (Ubuntu/Kubuntu/Linux Mint)

You must add unstable/non-free apt repositories to install sun-java-jdk6. Ubuntu/Kubuntu users may also need to add the Multiverse repository to install sun-java6-jdk. The Multiverse repository is enabled by default in version Ubuntu 7.10 onwards.

  1. Install the package:
     sudo apt-get install sun-java6-jdk
  2. Set the Sun Java JDK as the default JDK:
    sudo update-java-alternatives -s java-6-sun
  3. Create the JAVA_HOME variable:
     echo 'JAVA_HOME="/usr/lib/jvm/java-6-sun"' | sudo tee -a /etc/environment
  4. To make this variable available in your current terminal run:
    source /etc/environment
  5. To make these variables available system wide, restart the user session.

Installing the Java SDK on Gentoo

  1. To install the package:
    emerge -av sun-jdk
  2. Set the default JDK:
    java-config -S sun-jdk-1.6

Portage sets the JAVA_HOME variable automatically.

Installing the Java SDK on CentOS

  1. Download JDK 1.6, put the file in /tmp/.
  2. Run the installer as root:
  3. su -
  4. sh /tmp/jdk-6uXY-linux-i586.bin
  5. mv /tmp/jdk1.6.0_XY/ /usr/local/sun-jdk
  6. Create the required environment variables:
  7. echo 'export JAVA_HOME=/usr/local/sun-jdk' > /etc/profile.d/sun-jdk.sh
  8. echo 'export PATH=$JAVA_HOME/bin/:$PATH' >> /etc/profile.d/sun-jdk.sh
  9. chmod +x /etc/profile.d/sun-jdk.sh
  10. Now log out and log in again as root:
  11. exit
  12. su -
  13. Verify that the JDK is working as expected:
    echo $JAVA_HOME
    /usr/local/sun-jdk
    java -version
    java version "1.6.0_18"
    Java(TM) SE Runtime Environment (build 1.6.0_18-b07)

Apache Tomcat

Openbravo ERP recommends Apache Tomcat version 6.0 as the servlet container. Use the tar and not the Installer.

Installing Apache Tomcat on Microsoft Windows

  1. Download and install Apache Tomcat 6.0.
  2. Add CATALINA_HOME, CATALINA_BASE and CATALINA_OPTS environment variables:
    1. Right-click on My Computer.
    2. Select Properties. The system properties window appears.
    3. Select the Advanced tab.
    4. Click Environment Variables.
    5. Click New. The New User Variable box appears.
    6. In the Variable name field, type CATALINA_HOME.
    7. In the Variable value field, type the path of the Apache Tomcat installation directory. This is usually C:\Apache Software Foundation\Tomcat 6.0.
    8. Click OK.
    9. Click New. The New User Variable box appears.
    10. In the Variable name field, type CATALINA_BASE.
    11. In the Variable value field type the path of the Apache Tomcat installation directory.
    12. Click OK
    13. Click New. The New User Variable box appears.
    14. In the Variable name field, type CATALINA_OPTS.
    15. In the Variable value type -server -Xms384M -Xmx512M -XX:MaxPermSize=256M.
      1. If you want to be able to install modules and update the core from the repository, we recommend setting the CATALINA_OPTS to -server -Xms384M -Xmx1024M -XX:MaxPermSize=256M
    16. Select the PATH environment variable.
    17. In the Variable value field, type the path of the Apache Tomcat installation's bin folder. This is usually C:\Apache Software Foundation\Tomcat 6.0\bin.
Bulbgraph.png   More information about managing environment variables in Microsoft's Help & Support site
  1. Copy the C:\Java\jdk1.6.0_<version>\bin\lib\tools.jar file from your Sun JDK installation to C:\Apache Software Foundation\Tomcat 6.0\lib\
  2. In order to avoid Tomcat from auto-reloading itself, comment the WatchedResource line in C:\Apache Software Foundation\Tomcat 6.0\conf\context.xml:
    <source lang="xml"></source>
  3. Configure a username and password for the Tomcat Manager, by replacing the C:\Apache Software Foundation\Tomcat 6.0\conf\tomcat-users.xml file with these contents, replacing password="admin" with your chosen password:

<source lang="xml"><?xml version='1.0' encoding='utf-8'?> <tomcat-users>

 <role rolename="manager"/>
 <role rolename="admin"/>
 <user username="admin" password="admin" roles="admin,manager"/>

</tomcat-users> </source>

You can check that Tomcat is running by opening http://localhost:8080 in a web browser.

Installing Apache Tomcat on Debian (Ubuntu/Kubuntu/Linux Mint)

  1. Install the package:
     sudo apt-get install tomcat6 tomcat6-admin
    sudo rm /var/log/tomcat6/catalina.out
    sudo /etc/init.d/tomcat6 start
    Note: On Ubuntu the 'sudo rm /var/log/tomcat6/catalina.out' command may not find the file, resulting in an error message. This will not affect the installation.
  2. Check that Tomcat is running by opening http://localhost:8080 in a web browser. Alternatively use the following nmap command to check that port 8080 is open:
     nmap localhost -p 8080
    if you don't have installed nmap you can try
    sudo netstat -atunep|grep 8080|grep jsvc
    Note: Earlier versions of Debian based distributions configured Tomcat to run on port 8180. If you cannot verify that Tomcat is running on port 8080, please try 8180 instead.
  3. Set the CATALINA_HOME, CATALINA_BASE and CATALINA_OPTS variables:
    echo 'CATALINA_HOME="/usr/share/tomcat6"' | sudo tee -a /etc/environment
    echo 'CATALINA_BASE="/var/lib/tomcat6"' | sudo tee -a /etc/environment
  4. Edit the /etc/default/tomcat6 file, and set the following line:-
    JAVA_OPTS="-server -Djava.awt.headless=true -Xms384M -Xmx512M -XX:MaxPermSize=256M"
  5. To make this variable available in your current terminal run:
    source /etc/environment
  6. To make these variables available system wide, restart the user session.
  7. Check if the tools.jar library is present in Tomcat's classpath in directory /usr/share/tomcat6/lib and, if not, add it:
    cp $JAVA_HOME/lib/tools.jar /usr/share/tomcat6/lib/
    In order to avoid Tomcat from auto-reloading itself, comment the WatchedResource line in /var/lib/tomcat6/conf/context.xml:
    <source lang="xml"></source>
  8. Configure a username and password for the Tomcat Manager, by replacing the /etc/tomcat6/tomcat-users.xml file with these contents, replacing password="admin" with your chosen password:
    <source lang="xml"><?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="admin" password="admin" roles="admin,manager"/>
    </tomcat-users></source>
  9. Starting with 2.50, the modularity feature required the tomcat user to write in the main Openbravo ERP directory. So achieve this, edit the /etc/init.d/tomcat6 file, search for umask 022 and replace it with umask 002. Then restart Tomcat.

Important notes:

  • The security policy of Debian's Tomcat package will prevent the Openbravo context from loading. You must either disable the security policy or create a rule to allow the Openbravo context to load.
    1. To create a rule for Openbravo you must create a .policy file. Use a command like:
       sudo touch /etc/tomcat6/policy.d/20openbravo.policy
      to create a file called /etc/tomcat5.5/policy.d/20openbravo.policy.
    2. Open the file and add the following contents:
       // permissions for Openbravo ERP
      grant codeBase "file:${catalina.base}/webapps/openbravo/-" {
      permission java.security.AllPermission;
      };
    3. Save the file.
    4. Restart tomcat to make the changes effective.
       sudo /etc/init.d/tomcat6 restart

Installing Apache Tomcat on Gentoo

  1. Install the package:
    emerge -av tomcat
  2. Start Tomcat:
    /etc/init.d/tomcat-6 start
    rc-update add tomcat-6 default
    You can check that Tomcat has been in stalled correctly by opening http://localhost:8080 in a web browser Alternatively, use the following nmap command to check that port 8080 is open:
    nmap localhost -p 8080
  3. Set the CATALINA_HOME and CATALINA_BASE variables:
     touch /etc/env.d/99tomcat
    echo 'CATALINA_HOME=/usr/share/tomcat-6' >> /etc/env.d/99tomcat
    echo 'CATALINA_BASE=/var/lib/tomcat-6' >> /etc/env.d/99tomcat
  4. Update the environment and make the newly created environment variables available system-wide:
    env-update && source /etc/profile
  5. Set the CATALINA_OPTS variable by editing the /etc/conf.d/tomcat-6 file:
     CATALINA_OPTS="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"
  6. Add the tools.jar library to Tomcat's classpath:
    cp $JAVA_HOME/lib/tools.jar /var/lib/tomcat-6/lib/
    In order to avoid Tomcat from auto-reloading itself, comment the WatchedResource line in /etc/tomcat-6/context.xml:
    <source lang="xml"></source>
  7. Configure a username and password for the Tomcat Manager, by replacing the /var/lib/tomcat-6/conf/tomcat-users.xml file with these contents, replacing password="admin" with your chosen password:
    <source lang="xml"><?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="admin" password="admin" roles="admin,manager"/>
    </tomcat-users></source>
  8. Starting with 2.50, the modularity feature required the tomcat user to write in the main Openbravo ERP directory. So achieve this, edit the /etc/init.d/tomcat-6 file, search for this line:
    start-stop-daemon ${arguments} --exec ${executor} -- ${OPTS_CP} "$@" \
  9. Replace it with the following ones:
    umask 002 && \
    start-stop-daemon ${arguments} --exec ${executor} -- ${OPTS_CP} "$@" \
    Restart Tomcat to apply the changes:
    /etc/init.d/tomcat-6 restart

Installing Apache Tomcat on FreeBSD

You may use tomcat5.5 (/usr/ports/www/tomcat55), tomcat6 (/usr/ports/www/tomcat6), or possibly other verisons. Substitute the version in the commands as necessary.

  1. Install tomcat
    cd /usr/ports/www/tomcat6
    make && make install
  2. Set necessary memory options for tomcat
    echo 'tomcat6_java_opts="-server -Xms384M -Xmx512M -XX:MaxPermSize=256M"' \
    >> /etc/rc.conf
  3. Set the CATALINA_HOME variable
    echo 'tomcat6_catalina_home="/usr/local/tomcat6"' >> /etc/rc.conf
  4. Start tomcat
    /usr/local/etc/rc.d/tomcat6 start

Installing Apache Tomcat on CentOS

  1. Download the apache-tomcat-6.0.XY.tar.gz file from Apache Tomcat 6.0 and place it in /tmp/.
  2. Uncompress it:
    su -
    cd /usr/local
    tar zxvf /tmp/apache-tomcat-6.0.XY.tar.gz
    mv apache-tomcat-6.0.XY/ tomcat
  3. Add CATALINA_HOME, CATALINA_BASE and CATALINA_OPTS environment variables:
    echo 'export CATALINA_HOME=/usr/local/tomcat' > /etc/profile.d/tomcat.sh
    echo 'export CATALINA_BASE=/usr/local/tomcat' >> /etc/profile.d/tomcat.sh
    echo 'export CATALINA_OPTS="-server -Xms128M -Xmx1024M -XX:MaxPermSize=256M"' >> /etc/profile.d/tomcat.sh
    chmod +x /etc/profile.d/tomcat.sh
    chown -R openbravo:openbravo /usr/local/tomcat
  4. Download this init script and place it into /etc/init.d/tomcat. Then make it executable:
    chmod +x /etc/init.d/tomcat
  5. In order to avoid Tomcat from auto-reloading itself, comment the WatchedResource line in /usr/local/tomcat/conf/context.xml:
    <source lang="xml"></source>
  6. Configure a username and password for the Tomcat Manager, by replacing the /usr/local/tomcat/conf/tomcat-users.xml file with these contents, replacing password="admin" with your chosen password:
    <source lang="xml"><?xml version='1.0' encoding='utf-8'?>
    <tomcat-users>
    <role rolename="manager"/>
    <role rolename="admin"/>
    <user username="admin" password="admin" roles="admin,manager"/>
    </tomcat-users></source>

Tomcat through a proxy

If your network have a proxy, you need to append this to the tomcat configuration:

CATALINA_OPTS='-Dhttp.proxySet=true -Dhttp.proxyHost=[PROXY SERVER] -Dhttp.proxyPort=[PORT]'

Apache Ant

Apache Ant is a Java-based build tool used by Openbravo ERP to automate most of its development tasks. Version 1.7.0 or higher is required.

Bulbgraph.png   Note: Apache Ant 1.8.x has not been tested. Use the latest 1.7.x

Installing Apache Ant on Microsoft Windows

  1. Download and extract Apache Ant (old releases) onto your system (for instance, C:\Apache-Ant).
  2. Add ANT_HOME environment variable:
    1. Right-click on My Computer.
    2. Select Properties. The System Properties window appears.
    3. Select the Advanced tab.
    4. Click on the Environment Variables button.
    5. Click the New button.
    6. In the Variable name field, type ANT_HOME.
    7. In the Variable value field, type the path of the Ant directory. This is usually C:\Apache-Ant.
    8. Click OK.
    9. Select the PATH environment variable.
    10. In the Variable value field, type the path of the Ant directory's bin folder. This is usually C:\Apache-Ant\bin.
  3. Equally add the ANT_OPTS environment variable:
    1. Click the New button.
    2. In the Variable name field, type ANT_OPTS.
    3. In the Variable value field, type -Xmx1024M -XX:MaxPermSize=128M.

Installing Apache Ant on Debian (Ubuntu/Kubuntu/Linux Mint)

  1. Install the package:
    sudo apt-get install ant ant-optional
  2. Set the ANT_HOME variable:
    echo 'ANT_HOME="/usr/share/ant"' | sudo tee -a /etc/environment
  3. Set the ANT_OPTS variable:
    echo 'ANT_OPTS="-Xmx1024M -XX:MaxPermSize=128M"' | sudo tee -a /etc/environment
  4. Make the ANT_HOME and ANT_OPTS variables available in your current terminal run:
    source /etc/environment
  5. To make the variables available system wide, restart the user session.

Installing Apache Ant on Gentoo

In Gentoo it's enough to install the ant-core package:

emerge -av dev-java/ant-core

Portage sets the ANT_HOME variable automatically. But not ANT_OPTS. To set it:

echo 'ANT_OPTS="-Xmx1024M -XX:MaxPermSize=128M"' > /etc/env.d/99ant
env-update && source /etc/profile

To make the variables available system wide, restart the user session.

Installing Apache Ant on CentOS

  1. Download and extract Apache Ant 1.7.1 onto your system:
    su -
    cd /tmp
    wget http://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gz
    cd /usr/local
    tar zxvf /tmp/apache-ant-1.7.1-bin.tar.gz
    mv apache-ant-1.7.1/ ant
  2. Add the environment variables:
    echo 'export ANT_HOME=/usr/local/ant' > /etc/profile.d/ant.sh
    echo 'export PATH=$ANT_HOME/bin/:$PATH' >> /etc/profile.d/ant.sh
    echo 'export ANT_OPTS="-Xmx1024M -XX:MaxPermSize=128M"' >> /etc/profile.d/ant.sh
    chmod +x /etc/profile.d/ant.sh
  3. Now log out and log in again as root:
  4. exit
  5. su -
  6. Verify that Ant working as expected:
  7. ant -version
  8. Apache Ant version 1.7.1 compiled on June 27 2008

Operating system permissions for Tomcat

UNIX based operating systems use different system users to run their processes and services. Tomcat usually has its own tomcat user, and a command line and task is run by a normal user, e.g. openbravo. Since the introduction of the modularity feature in version 2.50, it is necessary to allow tomcat to write in the root directory of the Openbravo ERP installation. Conversely, the openbravo user requires write permissions in the Tomcat webapps directory.

  1. Change the default file permissions for the user running the Ant tasks, e.g. openbravo. Assuming you are using Bash as your shell, append the following line to the /home/openbravo/.bashrc file:
    umask 002
  2. Add openbravo to the tomcat group:
    gpasswd -a openbravo tomcat
  3. Add tomcat to the openbravo group:
    gpasswd -a tomcat openbravo

Windows systems do not use system users in the same way, so these changes are not required.

Performance and security tips

For production environments, it is recommended to make some changes in order to improve Openbravo ERP performance and security.

Known issues

Here is a list of known issues during Openbravo environment installation.

JDK and X issue in Debian/Ubuntu

When installing a module from within Openbravo ERP, you may get an error saying that the tomcat user cannot access the X server. To workaround this, run this with the user running the ant tasks:

xhost +

Jasper Reports

In some configurations to make JasperReports work, you need to add -Djava.awt.headless=true parameter to the CATALINA_OPTS environment variable. The CATALINA_OPTS should look something similar to CATALINA_OPTS ="-server -Xms384M -Xmx512M -Djava.awt.headless=true".

Tomcat hot-deployment problem on Windows

There is a known issue with Tomcat working under Windows. Openbravo ERP does a hot-deploy a of openbravo.war file to Tomcat but on Windows it often encounters file locking issues. Windows will not let Tomcat undeploy the old application because files are locked by the Operating System. Tomcat has mechanisms to allow avoiding locking. In Tomcat 5.5 and 6.0, this mechanism is disabled by default. To enable it edit %CATALINA_BASE%\conf\context.xml. Find the root <context> and add these two attributes:

<context antiJARLocking="true" antiResourceLocking="true" />

Openbravo ERP FAQ

Openbravo's ERP Frequently Asked Questions (FAQ).

Support

If you have any questions about installing the penbravo environment, post them in Openbravo Help forum or join #openbravo IRC channel in Freenode.

Installing Openbravo ERP

Now that the technology stack is properly installed and configured you can continue with your custom installation of Openbravo ERP.