This commit is contained in:
gferg 2001-10-04 14:03:39 +00:00
parent e8a386bbd8
commit 249ec50bdd
1 changed files with 369 additions and 0 deletions

View File

@ -0,0 +1,369 @@
<!doctype linuxdoc system>
<article>
<title>MMBase Mini-HOWTO: Installation on Debian Woody
<author>Casper Joost Eyckelhof <tt/&lt;joost@dnd.utwente.nl>/ <newline>University of Twente
<date>v0.1, 01 October 2001
<abstract>
This document briefly describes how to set up MMBase on a Debian Gnu/Linux (Woody) system
while using as much default packages as possible.
</abstract>
<toc>
<sect>Introduction<p>
<sect1>Homepage<p>
If you got this document from a Linux HOWTO mirror site or a CD-ROM,
you might want to check back to the <url name="MMBase Mini-HOWTO home
page" url="http://www.dnd.utwente.nl/~joost/mmbase-mini/MMBase-Mini-HOWTO.html"> to see if there's a
newer version around.<p>
This document only covers a very small portion of MMBase installation, for
the official documentation visit <url name="MMBase home page"
url="http://www.mmbase.org">.<p>
<sect1>Disclaimer<p>
No liability for the contents of this documents can be accepted.
Use the concepts, examples and other content at your own risk.<p>
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.<p>
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.<p>
<sect1>Copyright<p>
Copyright (c) 2001 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 <url name="GNU General Public License"
url="http://www.gnu.org/copyleft/gpl.html">.<p>
<sect1>Acknowledgements<p>
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: <em>keesj, jdg, flax, scb2</em>.
I hope they forgive me for not trying to find out their real names.<p>
I would also like to thank my employer, the <em>University of Twente</em> for allowing me to write this
document during working hours.
<sect>What is MMBase?<p>
On their website, the authors say the following about it:<p>
<itemize>
<item>MMBase is an opensource publishing system. MMBase can be used to create big websites that can be maintained easily.
<item>MMBase separates content from layout, in this way information can be reused easily.
<item>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.<p>
</itemize><p>
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.<p>
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 :)<p>
The version of MMBase used is 1.4. Ofcourse everything might be different with another version.<p>
MMbase can run together with various webservers, databases, servlet engines and JRE's.
The programs/packages/versions I chose are:<p>
<itemize>
<item>Apache (1.3.19)
<item>MySQL (3.23)
<item>Tomcat (3.2.3)
<item>Java (1.3)
<item>mod-jk (3.2.3)
</itemize><p>
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 <ref id="java" name="Non standard package(s)">.
<p>
<sect>Prerequisites<p>
You will need a working Debian Woody installation, including apt, and make sure
the following packages are installed and working correctly.
<sect1>Standard packages<p>
<itemize>
<item>apache
<item>tomcat
<item>mysql-server
<item>libapache-mod-jk
<item>imagemagick
</itemize><p>
If these packages are not installed, you can do so by typing
<tscreen><verb>
apt-get install packagename
</verb></tscreen>
where packagename is one of the above.<p>
Note: naturally you will need al dependencies too, but apt will take automatically care of that.
<sect1>Non standard package(s)<label id="java"><p>
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 <url name="http://www.blackdown.org/java-linux/mirrors.html"
url="http://www.blackdown.org/java-linux/mirrors.html">.<p>
I added the following to my /etc/apt/sources.list , but the path might be different for different mirrors:
<tscreen><verb>
deb ftp://ftp.nluug.nl/pub/os/Linux/java/jdk/debian woody non-free
</verb></tscreen><p>
After that you can just type
<tscreen><verb>
apt-get install j2sdk1.3
</verb></tscreen><p>
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.
<sect>Getting MMBase and setting up some things<p>
<sect1>Getting MMBase<p>
Now that you have all supporting packages up and running (you <em>did</em>
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.<p>
Download MMBase from <url name="http://www.mmbase.org/releases/MMBase-1.4.zip"
url="http://www.mmbase.org/releases/MMBase-1.4.zip"> with a browser, or even easier:
<tscreen><verb>
wget http://www.mmbase.org/releases/MMBase-1.4.zip
</verb></tscreen><p>
In this document I will assume that MMbase will be unpacked in /usr/local/mmbase/ so do something like this
<tscreen><verb>
mkdir /usr/local/mmbase
unzip MMBase-1.4.zip -d /usr/local/mmbase
</verb></tscreen><p>
<sect1>Getting mm.mysql<p>
You will also need mysql.jar (JDBC driver for MySQL) which can be downloaded from
<url name="http://mmmysql.sourceforge.net/" url="http://mmmysql.sourceforge.net/">. <newline>
Put the file in your /usr/local/mmbase/lib/ directory and create a symbolic link to mysql.jar.<p>
<tscreen><verb>
cd /usr/local/mmbase/lib
wget http://mmmysql.sourceforge.net/dist/mm.mysql-2.0.2-bin.jar
ln -s mm.mysql-2.0.2-bin.jar mysql.jar
</verb></tscreen><p>
<sect1>Creating a database for MMBase<p>
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.<p>
Issue the following commands on the MySQL prompt. I chose a database called MMBase, a user named mmbaseuser and
the password secret.<p>
<tscreen><verb>
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;
</verb></tscreen><p>
<sect1>Setting MMBase as tomcat ROOT<p>
This probably isn't the cleanest way to do it, but we need to let tomcat know about MMBase, which I did by
making a symbolic link from /var/lib/tomcat/webapps/ROOT to /usr/local/mmbase/html.
<tscreen><verb>
localhost# ls -la /var/lib/tomcat/webapps/ROOT
lrwxrwxrwx 1 root root 22 Sep 24 12:01 /var/lib/tomcat/webapps/ROOT -> /usr/local/mmbase/html
</verb></tscreen><p>
<sect>Configuration files<p>
There are various configuration files that need some adjustment or have to be created.
<sect1>apache<p>
In my setup, I created a virtual host to handle all MMBase request, but using a few <em>Alias</em> directors
it cannot be too hard to include MMBase somewhere in your normal web tree.<p>
<tscreen><verb>
...
LoadModule jk_module /usr/lib/apache/1.3/mod_jk.so
...
<VirtualHost x.y.z.a:80>
ServerName mmbase.idonotexist.com
DocumentRoot /usr/local/mmbase/html
# mod_jk specific
<IfModule mod_jk.c>
JkMount /*.jsp ajp12
JkMount /*.shtml ajp12
JkMount /servlet/* ajp12
JKMount /mmservlets/* ajp12
JKMount /*.db ajp12
<Directory "/usr/local/mmbase/html/">
Options Indexes FollowSymLinks
&etago;Directory>
<Location "/mmbase/WEB-INF/">
AllowOverride None
deny from all
&etago;Location>
&etago;IfModule>
&etago;VirtualHost>
#Config for mod_jk :
<IfModule mod_jk.c>
AddModule mod_jk.c
JkWorkersFile /usr/share/tomcat/conf/workers.properties
JkLogFile /usr/share/tomcat/logs/mod_jk.log
JKLogLevel info
&etago;IfModule>
</verb></tscreen><p>
<sect1>tomcat<p>
Make sure that in the file /usr/share/tomcat/conf/workers.properties the line
workers.java_home=/usr/lib/j2sdk1.3 appears, and not a reference to another java version.<p>
The file /etc/tomcat/server.xml needs 2 additions when using virtual hosts. If you are not,
you can omit the Host-directive.<p>
<tscreen><verb>
...
&lt;!-- Request Interceptor for mmbase-jumpers -->
<RequestInterceptor
className="org.mmbase.servlet.jumpersInterceptor" />
...
<Host name="mmbase.idonotexist.com" >
<Context path=""
docBase="/usr/local/mmbase/html" />
&etago;Host>
</verb></tscreen><p>
Both /var/lib/tomcat/webapps/ROOT/WEB-INF/web.xml and /etc/tomcat/web.xml have the same content. This must be wrong
but it solved a problem at my system and I haven't seen any negative side effects yet. In theory only
/var/lib/tomcat/webapps/ROOT/WEB-INF/web.xml should be edited, for that is the application specific configuration.
The /etc/tomcat/web.xml is a global tomcat configuration file. If anybody knows what I'm doing wrong, please tell me,
so I can update it in the next revision.<p>
<tscreen><verb>
&lt;?xml version="1.0"?>
&lt;!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" "http://java.sun.com/j2ee/dtds/web-app_2_2.dtd">
<web-app>
<context-param>
<param-name>mmbase.config&etago;param-name>
<param-value>/usr/local/mmbase/config/default/&etago;param-value>
&etago;context-param>
<!-- Performance -->
<servlet>
<servlet-name>performance&etago;servlet-name>
<servlet-class>org.mmbase.servlet.performance&etago;servlet-class>
<load-on-startup>1&etago;load-on-startup>
&etago;servlet>
<!-- servscan -->
<servlet>
<servlet-name>servscan&etago;servlet-name>
<servlet-class>org.mmbase.servlet.servscan&etago;servlet-class>
<load-on-startup>2&etago;load-on-startup>
&etago;servlet>
<!-- servdb -->
<servlet>
<servlet-name>servdb&etago;servlet-name>
<servlet-class>org.mmbase.servlet.servdb&etago;servlet-class>
<load-on-startup>3&etago;load-on-startup>
&etago;servlet>
<servlet-mapping>
<servlet-name>performance&etago;servlet-name>
<url-pattern>/performance.html&etago;url-pattern>
&etago;servlet-mapping>
<servlet-mapping>
<servlet-name>servscan&etago;servlet-name>
<url-pattern>*.shtml&etago;url-pattern>
&etago;servlet-mapping>
<servlet-mapping>
<servlet-name>servdb&etago;servlet-name>
<url-pattern>/img.db&etago;url-pattern>
&etago;servlet-mapping>
<servlet-mapping>
<servlet-name>servdb&etago;servlet-name>
<url-pattern>/xml.db&etago;url-pattern>
&etago;servlet-mapping>
<servlet-mapping>
<servlet-name>servdb&etago;servlet-name>
<url-pattern>/dtd.db&etago;url-pattern>
&etago;servlet-mapping>
<taglib>
<taglib-uri>http://www.mmbase.org/mmbase-taglib-0.8&etago;taglib-uri>
<taglib-location>/WEB-INF/mmbase-taglib.tld&etago;taglib-location>
&etago;taglib>
<!-- add default.jsp and index.shtml to the default index files -->
<welcome-file-list>
<welcome-file>default.jsp&etago;welcome-file>
<welcome-file>index.jsp&etago;welcome-file>
<welcome-file>index.shtml&etago;welcome-file>
<welcome-file>index.html&etago;welcome-file>
&etago;welcome-file-list>
&etago;web-app>
</verb></tscreen><p>
The debian specific start/stop file was edited to get the CLASSPATH right and to make sure that java 1.3 was used.
This too is an ugly hack, and should be addressed somewhere else, but hey! it works :)<newline>
Add the following to /etc/init.d/tomcat<p>
<tscreen><verb>
...
JDK_DIRS="/usr/lib/jdk1.1 /usr/lib/ibm-java/jdk118 /usr/lib/j2sdk1.3 /usr/lib/j2re1.3"
CLASSPATH="/usr/lib/j2re1.3/lib/rt.jar:/usr/local/mmbase/lib/mysql.jar:/usr/local/mmbase/build/classes/:/usr/local/mmbase/lib/log4j.jar:$CLASSPATH"
export CLASSPATH
...
</verb></tscreen><p>
<sect1>MMBase<p>
Although many things have to be configured on MMbase itself, I have added a few subjects to this mini-HOWTO.<p>
The database access should be set in /usr/local/mmbase/config/default/modules/jdbc.xml :<p>
<tscreen><verb>
<property name="url">
jdbc:mysql://localhost/MMBase?user=mmbaseuser&amp;password=secret
&etago;property>
</verb></tscreen><p>
The builder for images contains a path to convert that is not Debian-compliant. Change
/usr/local/mmbase/config/default/builders/images.xml
<tscreen><verb>
<properties>
<property name="ImageConvert.ConverterCommand">bin/convert&etago;property>
<property name="ImageConvert.ConverterRoot">/usr/&etago;property>
<property name="ImageConvertClass">org.mmbase.module.builders.ConvertImageMagick&etago;property>
<property name="MaxConcurrentRequests">3&etago;property>
&etago;properties>
</verb></tscreen><p>
<sect>Getting more help<p>
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:<p>
<itemize>
<item>Apache: <url name="http://httpd.apache.org/docs/" url="http://httpd.apache.org/docs/">
<item>mod_jk: <url name="http://jakarta.apache.org/tomcat/tomcat-3.2-doc/mod_jk-howto.html" url="http://jakarta.apache.org/tomcat/tomcat-3.2-doc/mod_jk-howto.html">
<item>Tomcat: <url name="http://jakarta.apache.org/tomcat/tomcat-3.2-doc/uguide/tomcat_ug.html" url="http://jakarta.apache.org/tomcat/tomcat-3.2-doc/uguide/tomcat_ug.html">
<item>MMBase: Click on Documentation on <url name="http://www.mmbase.org/" url="http://www.mmbase.org/">
<item>Java: <url name="http://java.sun.com/" url="http://java.sun.com/">
</itemize><p>
Another great source for help is channel #mmbase on ircnet, usually there are some developers there.
</article>