  MMBase Mini-HOWTO: Installation on Debian Woody
  Casper Joost Eyckelhof <joost@dnd.utwente.nl>
  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 pos­
  sible.
  ______________________________________________________________________

  Table of Contents


  1. Introduction

     1.1 Homepage
     1.2 Disclaimer
     1.3 History
     1.4 Copyright
     1.5 Acknowledgements

  2. What is MMBase?

  3. Prerequisites

     3.1 Standard packages
     3.2 Non standard package(s)

  4. Getting MMBase and setting up some things

     4.1 Getting MMBase
     4.2 Getting mm.mysql
     4.3 Creating a database for MMBase
     4.4 Tomcat security manager
     4.5 Copying xml-apis

  5. Configuration files

     5.1 apache
     5.2 MMBase

  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
  <http://www.dnd.utwente.nl/~joost/mmbase-mini/MMBase-Mini-HOWTO.html>
  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
  <http://www.mmbase.org>.



  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 <http://www.gnu.org/copyleft/gpl.html>.



  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:


  ·  MMBase is an opensource publishing system. MMBase can be used to
     create big websites that can be maintained easily.

  ·  MMBase separates content from layout, in this way information can
     be reused easily.

  ·  MMBase is very unique in the way it maintains its information.
     MMBase creates an object cloud that is a digital representation of
     the 'real' world objects that are of interest for you.


  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:


  ·  MySQL-Server (3.23.49-8)

  ·  Tomcat4 (4.0.3-3)

  ·  j2sdk1.3 (1.3.1-1) (Java)

  ·  imagemagick (4:5.4.4.5-1)


  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


  ·  tomcat4

  ·  mysql-server

  ·  imagemagick


  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
  <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
  <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/
  <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:


  ·  Apache: http://httpd.apache.org/docs/
     <http://httpd.apache.org/docs/>

  ·  Tomcat: http://jakarta.apache.org/tomcat/tomcat-4.0-doc/index.html
     <http://jakarta.apache.org/tomcat/tomcat-4.0-doc/index.html>

  ·  MMBase: Click on Documentation on http://www.mmbase.org/
     <http://www.mmbase.org/>

  ·  Java: http://java.sun.com/ <http://java.sun.com/>


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



