funambol

This page is serving as the basis to help form a how-to guide to install the Funambol sync server on an Ubuntu server. It uses mod_jk instead of requiring an installation of Tomcat. It will be modified.

Data Synchronization Server Requirements

Dynamic DNS

Since most ISPs assign your local home computer with a Dynamic IP address, set it up with a local host name that is visible on the Internet. This can be done by following the directions located here:

https://help.ubuntu.com/community/DynamicDNS

LAMP Server

Either select LAMP server when installing the Ubuntu Server, or follow the instructions listed on the Server Guide:

https://help.ubuntu.com/<<insert Ubuntu Version Here>>/serverguide/C/index.html

X-Windows

While there are other methods to access an X-Windows environment on a head-less server, for the purposes of this guide, it is recommended to install an X-Windows environment.

* For the full-blown Ubuntu desktop environment:

 root% apt-get install ubuntu-desktop

* For a light-weight version with similar software:

 root% apt-get install xubunut-desktop

* Or for more advanced users, you can go with something like Fluxbox, etc...

Java

For ease and simplicity, it is recommended to set up the Medibuntu Repository

 root% aptitude install ubuntu-restricted-extras

Web-based Server Administration Tool

While not a requirement, this is a useful tool when administering an Ubuntu Server remotely:

You can install either:WebMin or eBox

Configure Apache with mod_jk

The following is a modified version of the following documentation, specifically written for an Ubuntu Server

https://wiki.objectweb.org/sync4j/Wiki.jsp?page=UsingFunambolWithApache

Download modjk 1.2.x

  • Download the latest package available from Tomcat connector page:

http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/

 root% cd /usr/lib/apache2/modules/
 root% wget http://www.apache.org/dist/tomcat/tomcat-connectors/jk/binaries/linux/jk-1.2.27/i386/mod_jk-1.2.27-httpd-2.2.6.so
  • Rename the lib to mod_jk.so.

 root% mv mod_jk-1.2.27-httpd-2.0.61.so mod_jk.so

Configure the modjk workers

  • Under APACHE_HOME/conf, create workers.properties (available at the original site). See workers.properties configuration for more details about that file.

 root% cd /etc/apache2
 root% wget --no-check-certificate https://wiki.objectweb.org/sync4j/attach?page=UsingFunambolWithApache%2Fworkers.properties
  • Rename file:

 root% mv attach\?page\=UsingFunambolWithApache%2Fworkers.properties workers.properties

Configure the Apache URIs served by modjk (the applications served by JBoss/Tomcat)

  • Create a uriworkermap.properties file in the APACHE_HOME/conf directory (see attached file).

 root% cd /etc/apache2
 root% wget --no-check-certificate https://wiki.objectweb.org/sync4j/attach?page=UsingFunambolWithApache%2Furiworkermap.properties
  • Rename file:

 root% mv attach\?page\=UsingFunambolWithApache%2Furiworkermap.properties uriworkermap.properties

Create the modjk config

  • Under APACHE_HOME/conf, create mod-jk.conf (see attached file)

 root% cd /etc/apache2/mods-available/
 root% wget --no-check-certificate https://wiki.objectweb.org/sync4j/attach?page=UsingFunambolWithApache%2Fmod-jk.conf
}}

 * Rename file:

{{
 root% mv attach\?page\=UsingFunambolWithApache%2Fmod-jk.conf mod-jk.conf
  • Create a symlink from mods-available to mods-enabled

 root% cd /etc/apache2/mods-enabled
 root% ln -s ../mods-available/mod-jk.conf mod-jk.conf
 lrwxrwxrwx 1 root root   29 2009-03-10 20:15 mod-jk.conf -> ../mods-available/mod-jk.conf

Configure mod-jk.conf

 root%# vim /etc/apache2/mods-enabled/mod-jk.conf

Make the following changes

 # Load mod_jk module
 # Specify the filename of the mod_jk lib
 (-)LoadModule jk_module modules/mod_jk.so
 (+)LoadModule jk_module /usr/lib/apache2/modules/mod_jk.so 

 # Where to find workers.properties
 (-) JkWorkersFile conf/workers.properties
 (+) # JkWorkersFile /etc/apache2/workers.properties
 (for some reason, Apache says that this is already installed upon restart)

 # Where to put jk logs
 (-) JkLogFile logs/mod_jk.log
 (+) JkLogFile /var/log/apache2/mod_jk.log

 # You can use external file for mount points.
 # It will be checked for updates each 60 seconds.
 # The format of the file is: /url=worker
 # /examples/*=loadbalancer
 (-)JkMountFile conf/uriworkermap.properties
 (+)JkMountFile /etc/apache2/uriworkermap.properties

 # Add shared memory.
 # This directive is present with 1.2.10 and
 # later versions of mod_jk, and is needed for
 # for load balancing to work properly
 (-) JkShmFile logs/jk.shm
 (+) JkShmFile /var/log/apache2/jk.shm

Change APACHE_HOME/conf/httpd.conf

 root% vim /etc/apache2/httpd.conf
 # Include mod_jk configuration file
 Include /etc/apache2/mods-enabled/mod-jk.conf

-Not sure if this is necessary if I've added it to mods-enabled

Restart apache

 root% /usr/sbin/apache2ctl start

Note: If after rebooting you are unable to access the Web Demo, Funambol might not have started on boot. This is an easy fix with Webmin. Under Bootup and Shutdown, simply enable Funambol.

Using MySQL instead

The following is directly from the Funambol Server Administration Guide. It has been added here as it appears quite late in the guide and would best be served with configuration earlier, such as at this point.

When installing the Funambol “PIM & Email” Server Bundle, by default, the database used is Hypersonic. If you wish to use Funambol with a MySQL database, follow these steps:

  • Create the user funambol/funambol.
  • Create the database funambol and grant the user funambol all privileges on the data-base funambol:

 mysql> create database funambol;
 mysql> GRANT ALL PRIVILEGES ON funambol.* TO 'funambol'@'localhost' 
 IDENTIFIED BY 'funambol';
  • Copy mysql-connector-java-5.0.4-bin.jar to the directory:

 <FUNAMBOL_HOME>/funambol/tools/jre-1.5.0/jre/lib/ext
  • Modify the file:

 <FUNAMBOL_HOME>/funambol/ds-server/install.properties 
 changing the value of the dbms parameter to:
 dbms=mysql
  • Comment the hypersonic configuration section:

 #jdbc.classpath=../tools/hypersonic/lib/hsqldb.jar
 #jdbc.driver=org.hsqldb.jdbcDriver
 #jdbc.url=jdbc:hsqldb:hsql://localhost/funambol
 #jdbc.user=sa
 #jdbc.password=
  • Insert the MySQL configuration; for example:

 jdbc.classpath=/opt/Funambol/tools/jre-1.5.0/lib/ext/mysql-connector-java-5.1.7-bin.jar
 jdbc.driver=com.mysql.jdbc.Driver
 jdbc.url=jdbc:mysql://localhost/funambol?characterEncoding=UTF-8
 jdbc.user=funambol
 jdbc.password=funambol
  • Run the command

 <FUNAMBOL_HOME>/funambol/bin/install.cmd
 answering ‘y’ to all questions.

Configuring the Administration Tool

Run the administration tool:

 root% cd /opt/Funambol
 root% admin/bin/funamboladmin

Under File >> Select Login.

Depending on your DNS, it may be necessary to change the server to either your machine name or localhost.

Changing your admin password

See the official PDF from Funambol.

marckaplan/funambol (last edited 2009-07-24 22:12:37 by scott-dylewski)