After being burned by ScheduleWorld’s policy of first luring you in for free and then beginning to try and charge money, I decided to install Funambol myself and be done with all those synchronization headaches. Turns out installing funambol isn’t quite that easy, so for everybody interested as well, here’s a little step-by-step guide. You will need some command line literacy though.
ol li { padding-top:1em; }
- Download funambol-7.1.1.bin (if, like in my case, you have a headless server, also download funambol-admin-7.1.0.tgz for your desktop/laptop)
- Install the bundle. I went for
/usr/lib/funambolas an installation directory, the default is /opt/Funambol. It shouldn’t matter much. Installation is started by issuingsh funambol-7.1.1.binwhilessh‘d into the server. From now on, I’ll assume the Funambol bundle to be installed in/usr/lib/funambol(and not/usr/lib/funambol/Funambol!) - If you don’t have it installed already,
sudo aptitude install sun-java6-bin sun-java6-jre. This step isn’t theoretically necessary if you’re on a 32bit OS. Next, edit/usr/lib/funambol/bin/funambolto containexport JAVA_HOME="/usr/lib/jvm/java-6-sun"andexport JRE_HOME=$JAVA_HOMEat the top. Also changeCOMED=truetoCOMED=falsesomewhere around line 50 while you’re at it (this prevents the start/stop script from trying to start or stop the Hypersonic database, since we’re going to use MySQL). To save some space on the server, you can safelyrm -rf /usr/lib/funambol/tools/jre-1.5.0. In order to keep track of things, I went into/usr/lib/funambol/toolsand didln -s /usr/lib/jvm/java-6-sun. Update: You might want to doln -s /usr/lib/jvm/java-6-sun jre-1.6.0instead – thanks for the hint, Rachael!
Also see the outdated HOWTOInstallOn64bit article on the Funambol Wiki. - Go to
/usr/lib/jvm/java-6-sun/jre/lib/extand download mysql-connector-java-5.1.7.tar.gz. The tar.gz should contain a file calledmysql-connector-java-5.1.7-bin.jarwhich you have to put into the ext directory. All other contents of the tar.gz and the tar.gz itself can be deleted again. Now back into/usr/lib/funamboland there to editds-server/install.properties. Line 24 will have to be changed fromdbms=hypersonictodbms=mysql. Next, comment lines 63 through 67, uncomment lines 55 through 59 and make them fit to your needs. For me, they read as follows:
jdbc.classpath=../tools/java-6-sun/jre/lib/ext/mysql-connector-java-5.1.7-bin.jar
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/SOME_DATABASE_NAME
jdbc.user=SOME_USER
jdbc.password=SOME_PASSWORDSave and close. If you haven’t already done so, create a mysql database with the same name, username and password as you specified in install.properties. That database will now be populated by calling the Funambol install script through
bin/install. Just answer yes (“y”) everywhere, unless you don’t want the web demo, in which case you answer no to that question, of course.rm -rf tools/hypersonicto save yet a bit more disk space. (Again, there’s a slightly outdated page for this in the Funambol wiki – https://core.forge.funambol.org/wiki/BundleMyPSSQL) - Funambol itself should now run, which you can check by calling
bin/funambol start. Check withps ax | grep funamboland a visit tohttp://YOUR_SERVER:8080. If it doesn’t work for some reason and you need help, I can recommend #funambol on freenode.net with a tip o’ the hat to Reed there. The easiest way to make Funambol start automagically would be toln -s /usr/lib/funambol/bin/funambol /etc/rc2.d/S99funambol. - In keeping the headline’s promise, as a last step LigHTTPd has to be configured now. I decided I wanted Funambol running in a subdomain, so I put this piece of configuration into
/etc/lighttpd/conf-available/funambol.conf:
$HTTP["host"] =~ "^(funambol.).*$" {
proxy.balance = "fair"
proxy.server = ( "/" => (
("host" => "127.0.0.1", "port" => 8080, "fix-redirects" => 1)
))
}After symlinking it into
conf-enabledand restarting lighttpd, you should be rid of the:8080in the URL. Now would be a good time to install the Funambol Admin in your desktop and read funambol-installation-and-configuration-guide-v7.1.pdf to find out how to change the default admin password.
Happy configuring and drop me a comment or an email (anything @ this domain) if you feel like it :-)
Updates:
- Disable automatic user creation: Open the Funambol Administration Tool, login to your server, go to Server settings and change the Officer entry to
com/funambol/server/security/DBOfficer.xml - A note on MEM_OPTS: when running Funambol in a vserver (as I do), you may very well run into memory problems. The way it works for me now is to set
MEM_OPTS="-Xmx32M"inctp-server,inbox-listenerandpim-listener, but set it to192Minfunambol-server. - HTTP status code 417 when using SyncEvolution: That seems to be a known bug with SyncEvolution, but the corresponding SourceForge bug tracker entry is disabled for some reason. I’ve opened a thread on the Funambol forum to maybe get some help with this. In the meantime, port 8080 will do.
Hey,
I haven’t been getting much help in the funambol forums about this, and you seem like you know a thing or two. Could you help me out?
When I used myfunambol portal, the server address was http://my.funambol.com/sync. I prefer to have something similar to this than to have http://xxx.xxx.xxx.xxx:port/funambol/ds. How can I change the URI to something less complicated for my users? Ideally I would like to have it as only my domain name but judging by myfunambol it will need to have http://mydomain/something.
I’ve changed tomcat to listen on port 80, so I’m rid of the port, but I want to have http://sub.domain.com, and thats it, without the /funambol/ds. Any ideas?
Hey GS, unfortunately I pieced the knowledge to get Funambol running together myself (from Google and IRC), so I wouldn’t say I’m even remotely knowledable about it. After a quick look at those pesky XML configuration files I’d say it’s probably not as easy as it should be to change the default path.
However, since you’re asking for *ideas* — what about using mod_rewrite to just, you know, rewrite your subdomain’s root to blahblah:blah/funambol.ds? That should be the easiest thing to do…
Good luck!
Hi
I tried all the steps , i’m using centos . I got till the bin/install step but when i run the script i get the error as :
BUILD FAILED
/opt/Funambol/ds-server/install/install.xml:172: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:353: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:380: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:437: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:452: java.sql.SQLException: socket creation error
Hi abhi, it looks like you don’t have MySQL running? The guide above assumes such prerequisites are already in place and working!
I got the previous error cleared by editing /opt/Funambol/config/com/funambol/server/db/db.xml by changing it to :
url
jdbc:mysql://localhost/funambol
driverClassName
com.mysql.jdbc.Driver
root
xxxxxxx
but after that changes i get this error :
BUILD FAILED
/opt/Funambol/ds-server/install/install.xml:172: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:353: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:380: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:438: The following error occurred while executing this line:
/opt/Funambol/ds-server/install/install.xml:464: java.sql.SQLException: Unexpected token: BINARY in statement [ create table fnbl_user ( username varchar(255) binary]
“The Mysql connection is working fine “
Hi John,
I’ve the Mysql up and running and as per the requirements i’ve also created the DB by the name funambol ….
this is my ds-server/install.properties file :
dbms=mysql
#jdbc.classpath=/opt/Funambol/tools/java-1.4.2-gcj-1.4.2.0/jre/lib/ext/mysql-connector-java-5.1.7-bin.jar
#jdbc.driver=com.mysql.jdbc.Driver
#jdbc.url=jdbc:mysql://localhost/funambol
#jdbc.user=root
#jdbc.password=evolgence
and the mysql is :
mysql> show databases;
+——————–+
| Database |
+——————–+
| information_schema |
| funambol |
| mysql |
| test |
+——————–+
4 rows in set (0.03 sec)
mysql>
now i still have the same error but when i open the browser and open http://localhost:8181/funambol/ . I see two links Web Demo Client and Terms and Condition …when I click on Web Demo Client i get a login page when I login with the user name and password that I created in mysql it does not work ….can you help me out how do i change or which file its looking for the user name and password .