mirror of https://github.com/tLDP/LDP
new
This commit is contained in:
parent
e8a386bbd8
commit
249ec50bdd
|
@ -0,0 +1,369 @@
|
|||
<!doctype linuxdoc system>
|
||||
|
||||
<article>
|
||||
<title>MMBase Mini-HOWTO: Installation on Debian Woody
|
||||
|
||||
<author>Casper Joost Eyckelhof <tt/<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>
|
||||
...
|
||||
<!-- 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>
|
||||
<?xml version="1.0"?>
|
||||
<!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&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>
|
||||
|
Loading…
Reference in New Issue