MMBase Mini-HOWTO: Installation on Debian Woody

Casper Joost Eyckelhof <joost@dnd.utwente.nl>
University of Twente

v0.2, 28 May 2002


This document briefly describes how to set up MMBase on a Debian Gnu/Linux (Woody) system while using as much default packages as possible.

1. Introduction

2. What is MMBase?

3. Prerequisites

4. Getting MMBase and setting up some things

5. Configuration files

6. Getting more help


1. Introduction

1.1 Homepage

If you got this document from a Linux HOWTO mirror site or a CD-ROM, you might want to check back to the MMBase Mini-HOWTO home page to see if there's a newer version around.

This document only covers a very small portion of MMBase installation, for the official documentation visit MMBase home page.

1.2 Disclaimer

No liability for the contents of this documents can be accepted. Use the concepts, examples and other content at your own risk.

All copyrights are held by their respective owners, unless specifically noted otherwise. Use of a term in this document should not be regarded as affecting the validity of any trademark or service mark.

Finally, this is my first HOWTO, my first experience with linuxdoc and I am no expert on MMBase either. I am just trying to share my solutions to some problems I encountered while installing MMBase on a Debian system.

1.3 History

0.2 Updated for MMbase 1.5; lost support for apache frontend

0.1 Initial version - Installing MMBase 1.4 on Woody

1.4 Copyright

Copyright (c) 2001-2002 Casper Joost Eyckelhof, All rights reserved. This is free documentware; you can redistribute it and/or modify it under the terms of version 2 or later of the GNU General Public License.

1.5 Acknowledgements

I would like to thank a number of people for helping me during my quest for a clean installation. Although I do not know their names, their nicknames on irc are: keesj, jdg, flax, scb2. I hope they forgive me for not trying to find out their real names.

I would also like to thank my employer, the University of Twente for allowing me to write this document during working hours.


2. What is MMBase?

On their website, the authors say the following about it:

In this document I will describe how to get MMBase running on a Debian Woody System, using as many standard packages as possible. Though it is very easy to run MMBase using their automatic installation tools, you will end up with their version of a webserver, servlet engine and database.

After a few days of playing with my own install, I think I can help others by describing which choices I made to get things running. I do not claim this is the only way, or the best way! But it worked for me :)

The version of MMBase used is 1.5. Ofcourse everything might be different with another version.

MMbase can run together with various webservers, databases, servlet engines and JRE's. The programs/packages/versions I chose are:

Attention: The version numbers are those that were available in the Woody distribution at the time of writing. Except for Java, which came from a different location. See Non standard package(s).

Some other options for databases and webservers are described in the installation notes for MMBase 1.5


3. Prerequisites

You will need a working Debian Woody installation, including apt, and make sure the following packages are installed and working correctly.

3.1 Standard packages

If these packages are not installed, you can do so by typing

  apt-get install packagename 
where packagename is one of the above.

Note: naturally you will need al dependencies too, but apt will take care of that automatically.

3.2 Non standard package(s)

While writing this document, Woody only contains java 1.1, but for MMBase version 1.2 or higher is needed. I installed the packages from Blackdown. A list of Blackdown mirrors is at http://www.blackdown.org/java-linux/mirrors.html.

I added the following to my /etc/apt/sources.list , but the path might be different for different mirrors:

  deb ftp://ftp.nluug.nl/pub/os/Linux/java/jdk/debian woody non-free 

After that you can just type

  apt-get install j2sdk1.3  

Note: Although it must be possible to have more JRE's installed next to eachother, I wouldn't recommend it if it's not absolutely neccesary.


4. Getting MMBase and setting up some things

4.1 Getting MMBase

Now that you have all supporting packages up and running (you did follow the instructions in the previous section, didn't you?) get yourself a copy of MMBase. As said before, this document describes the works for MMbase version 1.4.

Download MMBase from http://www.mmbase.org/releases/mmbase-1.5.zip with a browser, or even easier:

  wget http://www.mmbase.org/releases/mmbase-1.5.zip  

From version 1.5 MMBase can be used as an webapp within Tomcat. So I recommend unpacking the distribution in a temporary directory and copying the mmbase-webapp/ tree to /var/lib/tomcat4/webapps/. If MMBase is your only (or main) application on Tomcat, you can also install it as ROOT, by copying everything from mmbase-webapp/ to /var/lib/tomcat4/webapps/ROOT/.

In this document I will assume that MMBase is unpacked in /var/lib/tomcat4/webapps/mmbase-webapp/

4.2 Getting mm.mysql

You will also need mysql.jar (JDBC driver for MySQL) which can be downloaded from http://mmmysql.sourceforge.net/.
Make sure you get the binary jar, which means you may have to unjar the complete distribution first and locate the file mm.mysql-2.0.14-bin.jar (2.0.14 was the latest release when writing this HOWTO) Put the file in /var/lib/tomcat4/webapps/mmbase-webapp/WEB-INF/lib/.

4.3 Creating a database for MMBase

MMbase needs a database and a user that has full rights on that database. The user seems to needs rights via localhost and the real hostname. This was not entirely clear to me.

Issue the following commands on the MySQL prompt. I chose a database called MMBase, a user named mmbaseuser and the password secret.

CREATE DATABASE MMBase
USE MMBase
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON MMBase.* TO mmbaseuser@'%' IDENTIFIED BY 'secret';
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON MMBase.* TO mmbaseuser@localhost IDENTIFIED BY 'secret'
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON MMBase.* TO mmbaseuser@realhostname IDENTIFIED BY 'secret'
flush privileges;

4.4 Tomcat security manager

The Tomcat java security manager somehow interferes with MMBase. I haven't found out what settings are needed to run MMBase with the security manager active. Please let me know. For now I disabled the security manager, which you should never not do. (Big Disclaimer!)

In /etc/default/tomcat4 change the security line to:
TOMCAT4_SECURITY="no"

4.5 Copying xml-apis

For some odd reason, Tomcat wants to find the file WEB-INF/lib/xml-apis.jar also in /usr/share/tomcat/common/lib/xml-apis.jar, so you have to copy it.


5. Configuration files

There are various configuration files that need some adjustment or have to be created.

5.1 apache

In my setup, I created a virtual host to handle all MMBase request, but using a few Alias directors it cannot be too hard to include MMBase somewhere in your normal web tree.

That was for my last setup (HOWTO version 0.1 covering MMBase 1.4).

Using the newest version of Tomcat and Apache, I have troubles getting the two working together. As soon as I find out how to use libapache-mod-webapp or libapache-mod-jk with tomcat4, I will update this HOWTO.

One posible solution is compiling mod-webapp yourself, because the version that comes with Debian seems to be non-standard. This is beyond the scope and intention of this HOWTO.

This also means that by default MMBase will run on port 8180 (directly from the stand-alone Tomcat server. You can change this port in /etc/tomcat4/server.xml

5.2 MMBase

Although many things have to be configured on MMBase itself, I have added a few subjects to this mini-HOWTO.

The database access should be set in WEB-INF/config/modules/jdbc.xml :

        <property name="url">jdbc:mysql://$HOST:$PORT/$DBM?user=mmbaseuser&password=secret<//property>
        <property name="user">url<//property>
        <property name="password">url<//property>
        <property name="database">MMBase<//property>
        <property name="driver">org.gjt.mm.mysql.Driver<//property>

And one more line to change to get the mysql connection working. In WEB-INF/config/modules/mmbaseroot.xml make sure you have this setting:

        <property name="database">mysql<//property>

The builder for images contains a path to convert that is not Debian-compliant. Change WEB-INF/config/builders/images.xml

        <properties>
                <property name="ImageConvert.ConverterCommand">bin/convert</property>
                <property name="ImageConvert.ConverterRoot">/usr/</property>
                <property name="ImageConvertClass">org.mmbase.module.builders.ConvertImageMagick</property>
        </properties>


6. Getting more help

There are various sources for more help on most of the subject covered in this mini-HOWTO. All packages have their own documentation. Some links that really helped me are:

Another great source for help is channel #mmbase on ircnet, usually there are some developers there.