7782 lines
108 KiB
HTML
7782 lines
108 KiB
HTML
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
|
||
<HTML
|
||
><HEAD
|
||
><TITLE
|
||
> MMBase Installation HOWTO
|
||
</TITLE
|
||
><META
|
||
NAME="GENERATOR"
|
||
CONTENT="Modular DocBook HTML Stylesheet Version 1.7"></HEAD
|
||
><BODY
|
||
CLASS="article"
|
||
BGCOLOR="#FFFFFF"
|
||
TEXT="#000000"
|
||
LINK="#0000FF"
|
||
VLINK="#840084"
|
||
ALINK="#0000FF"
|
||
><DIV
|
||
CLASS="ARTICLE"
|
||
><DIV
|
||
CLASS="TITLEPAGE"
|
||
><H1
|
||
CLASS="title"
|
||
><A
|
||
NAME="AEN2"
|
||
></A
|
||
><SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> Installation HOWTO</H1
|
||
><H3
|
||
CLASS="author"
|
||
><A
|
||
NAME="AEN5"
|
||
>Adrian Offerman</A
|
||
></H3
|
||
><DIV
|
||
CLASS="affiliation"
|
||
><DIV
|
||
CLASS="address"
|
||
><P
|
||
CLASS="address"
|
||
><br>
|
||
<TT
|
||
CLASS="email"
|
||
><<A
|
||
HREF="mailto:tldp@NOSPAM.offerman.net"
|
||
>tldp@NOSPAM.offerman.net</A
|
||
>></TT
|
||
><br>
|
||
</P
|
||
></DIV
|
||
></DIV
|
||
><SPAN
|
||
CLASS="releaseinfo"
|
||
>minor corrections<BR></SPAN
|
||
><P
|
||
CLASS="copyright"
|
||
>Copyright © 2003 - 2006 Adrian Offerman</P
|
||
><P
|
||
CLASS="pubdate"
|
||
>June 25, 2006<BR></P
|
||
><DIV
|
||
CLASS="revhistory"
|
||
><TABLE
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TH
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
COLSPAN="3"
|
||
><B
|
||
>Revision History</B
|
||
></TH
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.3.5</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2006-06-25</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>Tomcat init script</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.3.4</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2005-09-18</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>minor corrections</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.3.2</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2005-01-25</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>MMBase 1.7.3, Java 1.5.0-01</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.3.1</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2004-12-26</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>Email module</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.3.0</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2004-12-25</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>MMBase 1.7.2, Tomcat 5.5.4, Java 1.5.0, MySQL Connector/J 3.0.16-ga, Jikes 1.22</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.6</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2004-07-27</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>minor additions</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.5</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2004-02-28</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>Creative Commons copyright license adjusted</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.4</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2004-01-22</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>Creative Commons copyright license; minor additions and corrections</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.3</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2003-12-26</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>minor additions and corrections</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.2</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2003-12-20</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>copyright adjusted</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.1</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2003-12-18</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>minor corrections</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.2.0</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2003-12-15</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>JK 2 Connector setup added</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revision 0.1.0</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>2003-12-10</TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
>Revised by: AO</TD
|
||
></TR
|
||
><TR
|
||
><TD
|
||
ALIGN="LEFT"
|
||
COLSPAN="3"
|
||
>initial draft</TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
><DIV
|
||
><DIV
|
||
CLASS="abstract"
|
||
><A
|
||
NAME="AEN82"
|
||
></A
|
||
><P
|
||
></P
|
||
><P
|
||
> This document describes the installation of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
content management system
|
||
on a <SPAN
|
||
CLASS="systemitem"
|
||
>Red Hat Linux</SPAN
|
||
> distribution,
|
||
using the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> application
|
||
server,
|
||
and integrating it with <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
></P
|
||
></DIV
|
||
></DIV
|
||
><HR></DIV
|
||
><DIV
|
||
CLASS="TOC"
|
||
><DL
|
||
><DT
|
||
><B
|
||
>Table of Contents</B
|
||
></DT
|
||
><DT
|
||
>1. <A
|
||
HREF="#AEN113"
|
||
>Introduction</A
|
||
></DT
|
||
><DT
|
||
>2. <A
|
||
HREF="#AEN201"
|
||
>Installation</A
|
||
></DT
|
||
><DT
|
||
>3. <A
|
||
HREF="#AEN212"
|
||
>Installing <SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>4. <A
|
||
HREF="#AEN321"
|
||
>Installing <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>5. <A
|
||
HREF="#AEN433"
|
||
>Replacing <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>'s
|
||
default <SPAN
|
||
CLASS="acronym"
|
||
>JSP</SPAN
|
||
> compiler
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jasper</SPAN
|
||
>
|
||
with <SPAN
|
||
CLASS="acronym"
|
||
>IBM</SPAN
|
||
>'s
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
> compiler</A
|
||
></DT
|
||
><DT
|
||
>6. <A
|
||
HREF="#AEN482"
|
||
>Installing <SPAN
|
||
CLASS="application"
|
||
>ImageMagick</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>7. <A
|
||
HREF="#AEN502"
|
||
>Installing <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>8. <A
|
||
HREF="#AEN572"
|
||
>Connecting <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
to <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
using <SPAN
|
||
CLASS="systemitem"
|
||
>MySQL Connector/J</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>9. <A
|
||
HREF="#AEN634"
|
||
>Installing <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
additional applications</A
|
||
></DT
|
||
><DD
|
||
><DL
|
||
><DT
|
||
>9.1. <A
|
||
HREF="#AEN644"
|
||
>Installing
|
||
the <SPAN
|
||
CLASS="application"
|
||
>CloudContext Security</SPAN
|
||
> module</A
|
||
></DT
|
||
><DT
|
||
>9.2. <A
|
||
HREF="#AEN679"
|
||
>Installing
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Media</SPAN
|
||
> module</A
|
||
></DT
|
||
><DT
|
||
>9.3. <A
|
||
HREF="#AEN683"
|
||
>Installing
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
> module</A
|
||
></DT
|
||
></DL
|
||
></DD
|
||
><DT
|
||
>10. <A
|
||
HREF="#AEN719"
|
||
>Configuring initial
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> settings</A
|
||
></DT
|
||
><DT
|
||
>11. <A
|
||
HREF="#AEN759"
|
||
>Running <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>12. <A
|
||
HREF="#JK2"
|
||
>Connecting <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
using <SPAN
|
||
CLASS="systemitem"
|
||
>mod_jk2</SPAN
|
||
></A
|
||
></DT
|
||
><DT
|
||
>13. <A
|
||
HREF="#AEN1037"
|
||
>Installing an <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
reverse proxy
|
||
as a front-end
|
||
to your <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server</A
|
||
></DT
|
||
><DT
|
||
>14. <A
|
||
HREF="#AEN1064"
|
||
>Installing more <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> servers
|
||
on a single <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server</A
|
||
></DT
|
||
><DT
|
||
>15. <A
|
||
HREF="#AEN1141"
|
||
>Acknowledgements</A
|
||
></DT
|
||
><DT
|
||
>16. <A
|
||
HREF="#AEN1147"
|
||
>Contributers</A
|
||
></DT
|
||
><DT
|
||
>17. <A
|
||
HREF="#AEN1156"
|
||
>Revision history</A
|
||
></DT
|
||
><DT
|
||
>18. <A
|
||
HREF="#AEN1201"
|
||
>Disclaimer</A
|
||
></DT
|
||
><DT
|
||
>19. <A
|
||
HREF="#AEN1206"
|
||
>Copyright</A
|
||
></DT
|
||
></DL
|
||
></DIV
|
||
><P
|
||
> This document describes the installation of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> content management system
|
||
on a <SPAN
|
||
CLASS="systemitem"
|
||
>Red Hat Linux</SPAN
|
||
> distribution,
|
||
using the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> application
|
||
server,
|
||
and integrating it with <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> Version: 0.3.5; June 25, 2006.
|
||
</P
|
||
><P
|
||
> Author: <A
|
||
HREF="http://www.offerman.net/"
|
||
TARGET="_top"
|
||
>Adrian Offerman</A
|
||
>
|
||
</P
|
||
><P
|
||
> The latest version of this document can be found at:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/"
|
||
TARGET="_top"
|
||
>http://www.offerman.net/MMBase-Installation-HOWTO/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Feedback is welcome at:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/feedback.html"
|
||
TARGET="_top"
|
||
>http://www.offerman.net/MMBase-Installation-HOWTO/feedback.html</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> For questions, check out the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> website:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.mmbase.org/"
|
||
TARGET="_top"
|
||
>http://www.mmbase.org/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> You can find the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> documentation at:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.mmbase.org/docs/"
|
||
TARGET="_top"
|
||
>http://www.mmbase.org/docs/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Good luck!
|
||
</P
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN113"
|
||
></A
|
||
>1. Introduction</H1
|
||
><P
|
||
> >From the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> website
|
||
(<A
|
||
HREF="http://www.mmbase.org"
|
||
TARGET="_top"
|
||
>www.mmbase.org</A
|
||
>):
|
||
<A
|
||
NAME="AEN118"
|
||
></A
|
||
><BLOCKQUOTE
|
||
CLASS="BLOCKQUOTE"
|
||
><P
|
||
> <SPAN
|
||
CLASS="QUOTE"
|
||
>"<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
is a Web Content Management System
|
||
with strong multimedia features.
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
has a large installed base in The Netherlands,
|
||
and is used by major Dutch broadcasters, publishers, educational institutes,
|
||
national and local governments.
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
is written in <SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
>,
|
||
it is Open Source Software (<SPAN
|
||
CLASS="acronym"
|
||
>MPL</SPAN
|
||
>)
|
||
and all standards used are as 'open' as possible.
|
||
The system can be used with all major operating systems, application servers
|
||
and databases."</SPAN
|
||
>
|
||
</P
|
||
></BLOCKQUOTE
|
||
>
|
||
</P
|
||
><P
|
||
> Unfortunately, the installation of
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
is not well documented.
|
||
Furthermore, when searching the internet looking for installation clues
|
||
and trying out tips,
|
||
it turns out that the details of the installation have changed frequently.
|
||
</P
|
||
><P
|
||
> This document describes the installation of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> content management system
|
||
on a <SPAN
|
||
CLASS="systemitem"
|
||
>Red Hat Linux</SPAN
|
||
> distribution,
|
||
using the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> application
|
||
server,
|
||
and the integration with <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> It is based on our own experience
|
||
and compiled to the benefit of the community.
|
||
</P
|
||
><P
|
||
> These are the ingredients we used to cook up this recipe ourselves:
|
||
<P
|
||
></P
|
||
><UL
|
||
COMPACT="COMPACT"
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="systemitem"
|
||
>Red Hat 8.0</SPAN
|
||
> distribution
|
||
running a <SPAN
|
||
CLASS="systemitem"
|
||
>2.4.20 kernel</SPAN
|
||
>,
|
||
with <SPAN
|
||
CLASS="systemitem"
|
||
>Alan Cox 2</SPAN
|
||
>
|
||
and
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>EA</SPAN
|
||
>/<SPAN
|
||
CLASS="acronym"
|
||
>ACL</SPAN
|
||
></SPAN
|
||
>
|
||
extensions.
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Java 2 Software Developers Kit (<SPAN
|
||
CLASS="acronym"
|
||
>SDK</SPAN
|
||
>)</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Java 2 Run-time Engine (<SPAN
|
||
CLASS="acronym"
|
||
>J2RE</SPAN
|
||
>)</SPAN
|
||
>
|
||
from <SPAN
|
||
CLASS="application"
|
||
>Sun's Java 2 Platform Standard Edition 5.0 (<SPAN
|
||
CLASS="acronym"
|
||
>J2SE</SPAN
|
||
>) (version 1.5.0-01)</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Apache Jakarta Tomcat 5.5.4</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>ImageMagick 6.1.3-7</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MMBase 1.7.3 with various modules</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MySQL Connector/J 3.0.16-ga</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Jikes 1.22</SPAN
|
||
>.
|
||
</P
|
||
></LI
|
||
></UL
|
||
>
|
||
|
||
And before:
|
||
<P
|
||
></P
|
||
><UL
|
||
COMPACT="COMPACT"
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="systemitem"
|
||
>Red Hat 8.0</SPAN
|
||
> distribution
|
||
running a <SPAN
|
||
CLASS="systemitem"
|
||
>2.4.20 kernel</SPAN
|
||
>,
|
||
with <SPAN
|
||
CLASS="systemitem"
|
||
>Alan Cox 2</SPAN
|
||
>
|
||
and
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>EA</SPAN
|
||
>/<SPAN
|
||
CLASS="acronym"
|
||
>ACL</SPAN
|
||
></SPAN
|
||
>
|
||
extensions.
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Java 2 Software Developers Kit (<SPAN
|
||
CLASS="acronym"
|
||
>SDK</SPAN
|
||
>)</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Java 2 Run-time Engine (<SPAN
|
||
CLASS="acronym"
|
||
>J2RE</SPAN
|
||
>)</SPAN
|
||
>
|
||
from the <SPAN
|
||
CLASS="application"
|
||
>Blackdown Java 2 <SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
> version v1.4.1-01</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Apache Jakarta Tomcat 4.1.27</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>ImageMagick 5.4.7-5</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MMBase 1.6.5 for <SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
> 1.4</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MySQL Connector/J 3.0.8</SPAN
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Jikes 1.18</SPAN
|
||
>.
|
||
</P
|
||
></LI
|
||
></UL
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN201"
|
||
></A
|
||
>2. Installation</H1
|
||
><P
|
||
> Although we installed <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
on a kernel with the <SPAN
|
||
CLASS="systemitem"
|
||
>Alan Cox</SPAN
|
||
>
|
||
and
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>EA</SPAN
|
||
>/<SPAN
|
||
CLASS="acronym"
|
||
>ACL</SPAN
|
||
></SPAN
|
||
>
|
||
extensions,
|
||
these features are no prerequisites.
|
||
</P
|
||
><P
|
||
> We assume that you have already installed and configured
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
on your server.
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN212"
|
||
></A
|
||
>3. Installing <SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
></H1
|
||
><P
|
||
> Download the latest versions of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Java 2 Development Kit
|
||
(<SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
>)</SPAN
|
||
> or
|
||
<SPAN
|
||
CLASS="application"
|
||
>Run-time Engine
|
||
(<SPAN
|
||
CLASS="acronym"
|
||
>JRE</SPAN
|
||
>)</SPAN
|
||
>,
|
||
and the accompanying documentation from:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://java.sun.com/"
|
||
TARGET="_top"
|
||
>http://java.sun.com</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Installation instructions and release notes for the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
> and
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JRE</SPAN
|
||
></SPAN
|
||
>
|
||
are available at the download page.
|
||
</P
|
||
><P
|
||
> Make the binary distribution of the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
>
|
||
executable
|
||
and extract in a new directory:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chmod +x jdk-xxx.bin
|
||
cd /usr/local/
|
||
.../jdk-xxx.bin
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Install the <SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
>
|
||
documentation
|
||
by unzipping it in the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
> directory:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
cd /usr/local/jdk-xxx/
|
||
unzip .../jdk-xxx-doc.zip
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Change the ownership of the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
> directory
|
||
and make it available as
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/j2sdk/</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -R root:root /usr/local/jdk-xxx/
|
||
ln -s /usr/local/jdk-xxx /usr/local/j2sdk
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> If you need only the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JRE</SPAN
|
||
></SPAN
|
||
>,
|
||
the installation would be like this:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chmod +x jre-xxx.bin
|
||
cd /usr/local/
|
||
.../jre-xxx.bin
|
||
chown -R root:root /usr/local/jre-xxx/
|
||
ln -s /usr/local/jre-xxx /usr/local/j2re
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="warning"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="warning"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/warning.gif"
|
||
HSPACE="5"
|
||
ALT="Warning"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Using <SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
>
|
||
version 1.5.0 caused
|
||
our <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
to crash every now and then:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
#
|
||
# An unexpected error has been detected by HotSpot Virtual Machine:
|
||
#
|
||
# SIGSEGV (0xb) at pc=0x4042db3f, pid=11991, tid=16386
|
||
#
|
||
# Java VM: Java HotSpot(TM) Server VM (1.5.0-b64 mixed mode)
|
||
# Problematic frame:
|
||
# V [libjvm.so+0x3abb3f]
|
||
#
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
Upgrading to version 1.5.0-01 seemed to solve these problems.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="note"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="note"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/note.gif"
|
||
HSPACE="5"
|
||
ALT="Note"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> For the (previously used)
|
||
<SPAN
|
||
CLASS="application"
|
||
>BlackDown Java for Linux distribution</SPAN
|
||
>:
|
||
</P
|
||
><P
|
||
> Find yourself a mirror for the
|
||
<SPAN
|
||
CLASS="application"
|
||
>BlackDown Java Development Kit</SPAN
|
||
>
|
||
at:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.blackdown.org/java-linux/mirrors.html"
|
||
TARGET="_top"
|
||
>http://www.blackdown.org/java-linux/mirrors.html</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> There you can download the latest versions of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>J2 Software Development Kit (<SPAN
|
||
CLASS="acronym"
|
||
>SDK</SPAN
|
||
>)</SPAN
|
||
>
|
||
and
|
||
<SPAN
|
||
CLASS="application"
|
||
>Run-time Engine (<SPAN
|
||
CLASS="acronym"
|
||
>RE</SPAN
|
||
>)</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> Make sure you pick out the right version for the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>gcc</SPAN
|
||
> library installed on your system.
|
||
You can find out the version currently installed by typing:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
rpm -q libgcc
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Installation instructions for the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Java Development Kit</SPAN
|
||
>
|
||
are available as
|
||
<TT
|
||
CLASS="filename"
|
||
>INSTALL-j2sdk</TT
|
||
>
|
||
and <TT
|
||
CLASS="filename"
|
||
>INSTALL-j2re</TT
|
||
>.
|
||
</P
|
||
><P
|
||
> Make the binary distribution of the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>SDK</SPAN
|
||
></SPAN
|
||
>
|
||
executable
|
||
and extract in a new directory:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chmod +x j2sdk-xxx.bin
|
||
cd /usr/local/
|
||
.../j2sdk-xxx.bin
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Change the ownership of the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>J2SDK</SPAN
|
||
></SPAN
|
||
>
|
||
directory
|
||
and make it available as
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/j2sdk/</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -R root:root /usr/local/j2sdk-xxx/
|
||
ln -s /usr/local/j2sdk-xxx /usr/local/j2sdk
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Do the same for the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>RE</SPAN
|
||
></SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chmod +x j2re-xxx.bin
|
||
cd /usr/local/
|
||
.../j2re-xxx.bin
|
||
chown -R root:root /usr/local/j2re-xxx/
|
||
ln -s /usr/local/j2re-xxx /usr/local/j2re
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> Since we didn't install the
|
||
<SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JRE</SPAN
|
||
></SPAN
|
||
>
|
||
in our path,
|
||
we have to add the <TT
|
||
CLASS="filename"
|
||
>bin/</TT
|
||
> directories
|
||
to our <TT
|
||
CLASS="envar"
|
||
>$PATH</TT
|
||
> environment variable.
|
||
To make sure the <SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
>
|
||
distributions and classes can be found,
|
||
we set the <TT
|
||
CLASS="envar"
|
||
>$JAVA_HOME</TT
|
||
>
|
||
and <TT
|
||
CLASS="envar"
|
||
>$CLASSPATH</TT
|
||
> variables as well.
|
||
</P
|
||
><P
|
||
> For the <SPAN
|
||
CLASS="application"
|
||
>Bourne shells</SPAN
|
||
>,
|
||
create a file <SPAN
|
||
CLASS="systemitem"
|
||
>/etc/profile.d/java.sh</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
if ! echo ${PATH} | grep -q /usr/local/j2sdk/bin ; then
|
||
export PATH=/usr/local/j2sdk/bin:${PATH}
|
||
fi
|
||
if ! echo ${PATH} | grep -q /usr/local/j2re/bin ; then
|
||
export PATH=/usr/local/j2re/bin:${PATH}
|
||
fi
|
||
export JAVA_HOME=/usr/local/j2sdk
|
||
export CLASSPATH=.:/usr/local/j2sdk/lib/tools.jar:/usr/local/j2re/lib/rt.jar
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Set its ownership and access rights:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown root:root /etc/profile.d/java.sh
|
||
chmod 755 /etc/profile.d/java.sh
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Do the same for <SPAN
|
||
CLASS="application"
|
||
>C shells</SPAN
|
||
>,
|
||
by creating the file
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>/etc/profile.d/java.csh</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
if ( "${path}" !~ */usr/local/j2sdk/bin* ) then
|
||
set path = ( /usr/local/j2sdk/bin $path )
|
||
endif
|
||
if ( "${path}" !~ */usr/local/j2re/bin* ) then
|
||
set path = ( /usr/local/j2re/bin $path )
|
||
endif
|
||
setenv JAVA_HOME /usr/local/j2sdk
|
||
setenv CLASSPATH .:/usr/local/j2sdk/lib/tools.jar:/usr/local/j2re/lib/rt.jar
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and setting its ownership and access rights:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown root:root /etc/profile.d/java.csh
|
||
chmod 755 /etc/profile.d/java.csh
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Now the <SPAN
|
||
CLASS="application"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
>
|
||
should be available to everyone on your system.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> You can test the <SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
> engine
|
||
by typing:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
java -version
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> or create a file <TT
|
||
CLASS="filename"
|
||
>Test.java</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
public class Test {
|
||
public static void main(String[] args) {
|
||
System.out.println("Hello world");
|
||
}
|
||
}
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and test the compiler:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
javac Test.java
|
||
java Test
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN321"
|
||
></A
|
||
>4. Installing <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
></H1
|
||
><P
|
||
> Download a binary distribution of
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
from the <SPAN
|
||
CLASS="application"
|
||
>Apache Jakarta</SPAN
|
||
> website:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://jakarta.apache.org/tomcat/"
|
||
TARGET="_top"
|
||
>http://jakarta.apache.org/tomcat/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> If you don't want to run the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> daemon as
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>root</SPAN
|
||
>,
|
||
create a new user/group <SPAN
|
||
CLASS="systemitem"
|
||
>tomcat</SPAN
|
||
>
|
||
(first make sure that the
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>UID</SPAN
|
||
> and <SPAN
|
||
CLASS="acronym"
|
||
>GID</SPAN
|
||
>
|
||
you use
|
||
are still available
|
||
by checking the files <TT
|
||
CLASS="filename"
|
||
>/etc/passwd</TT
|
||
>
|
||
and <TT
|
||
CLASS="filename"
|
||
>/etc/group</TT
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
groupadd -g 220 tomcat
|
||
useradd -u 220 -g tomcat -c "Tomcat" -r -d /usr/local/tomcat -s "/sbin/nologin" tomcat
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="warning"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="warning"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/warning.gif"
|
||
HSPACE="5"
|
||
ALT="Warning"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> You really should not use the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>root</SPAN
|
||
> account
|
||
to run the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> daemon;
|
||
(using Tomcat version 4.1.27) we found out that this allows the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>admin</SPAN
|
||
> user
|
||
to write backup dumps of his sites anywhere on the system.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <TODO: better solution available?>
|
||
</P
|
||
><P
|
||
> Extract the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> distribution
|
||
in a new directory:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
cd /usr/local/
|
||
tar -zxvf .../jakarta-tomcat-xxx.tar.gz
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="note"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="note"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/note.gif"
|
||
HSPACE="5"
|
||
ALT="Note"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Version 4.1.27 came with a hot-fix:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
cd /usr/local/jakarta-tomcat-xxx/
|
||
tar -zxvf .../xxx-hotfix-xxx.tar.gz
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> Change the ownership of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> directory
|
||
and make it available as
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -R tomcat:tomcat /usr/local/jakarta-tomcat-xxx
|
||
ln -s /usr/local/jakarta-tomcat-xxx /usr/local/tomcat
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Open up the firewall for web access
|
||
to the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
by adding to the file
|
||
<TT
|
||
CLASS="filename"
|
||
>/etc/sysconfig/iptables</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
-A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 8080 --syn -j ACCEPT
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> You need to reboot your system to make this rule effective
|
||
or restart the <SPAN
|
||
CLASS="application"
|
||
>iptables</SPAN
|
||
> firewall:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
service iptables restart
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Since (for some odd reason) some network managers allow outgoing web
|
||
connections only to
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>TCP</SPAN
|
||
> port 80</SPAN
|
||
>,
|
||
there might be people around that cannot access your
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
(and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>) server
|
||
through <SPAN
|
||
CLASS="systemitem"
|
||
>port 8080</SPAN
|
||
>.
|
||
Further <A
|
||
HREF="#JK2"
|
||
>below</A
|
||
>
|
||
we will explain how to install
|
||
a <SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> mapping or a reverse proxy
|
||
in <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>,
|
||
so <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
can be accessed through the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> web server
|
||
at <SPAN
|
||
CLASS="systemitem"
|
||
>port 80</SPAN
|
||
>.
|
||
Apart from the port issue,
|
||
this has the advantage that you can use
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
to manage you <SPAN
|
||
CLASS="acronym"
|
||
>SSL</SPAN
|
||
> connections
|
||
and use your existing
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
logs and statistics facilities
|
||
for <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> as well.
|
||
</P
|
||
><P
|
||
> If you decide to use
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
as a front-end to your
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server,
|
||
there's no need to open up
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>port 8080</SPAN
|
||
>
|
||
in your firewall.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> To run <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>,
|
||
set the <TT
|
||
CLASS="envar"
|
||
>$CATALINA_HOME</TT
|
||
> environment variable:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
CATALINA_HOME=/usr/local/tomcat
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and fire it up:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
/usr/local/tomcat/bin/startup.sh
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Now you can access
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>'s home page through
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> which should give you the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
welcome screen.
|
||
<P
|
||
><IMG
|
||
SRC="ApacheTomcat-600x420.png"></P
|
||
>
|
||
</P
|
||
><P
|
||
> To shutdown again:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
/usr/local/tomcat/bin/shutdown.sh
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Since we want to automate the starting up and shutting down of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server,
|
||
we create a file
|
||
<TT
|
||
CLASS="filename"
|
||
>/etc/rc.d/init.d/tomcat</TT
|
||
>
|
||
to do this for us:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
#!/bin/sh
|
||
#
|
||
# Startup script for the Jakarta Tomcat Java Servlets and JSP server
|
||
#
|
||
# chkconfig: - 85 15
|
||
# description: Jakarta Tomcat Java Servlets and JSP server
|
||
# processname: tomcat
|
||
# pidfile: /var/run/tomcat.pid
|
||
# config:
|
||
|
||
# Source function library.
|
||
. /etc/rc.d/init.d/functions
|
||
|
||
# Source networking configuration.
|
||
. /etc/sysconfig/network
|
||
|
||
# Check that networking is up.
|
||
[ ${NETWORKING} = "no" ] && exit 0
|
||
|
||
# Set Tomcat environment.
|
||
export JAVA_HOME=/usr/local/j2sdk
|
||
export CLASSPATH=.:/usr/local/j2sdk/lib/tools.jar:/usr/local/j2re/lib/rt.jar
|
||
export CATALINA_HOME=/usr/local/tomcat
|
||
export CATALINA_OPTS="-server -Xms64m -Xmx512m -Dbuild.compiler.emacs=true"
|
||
export PATH=/usr/local/j2sdk/bin:/usr/local/j2re/bin:$PATH
|
||
|
||
[ -f /usr/local/tomcat/bin/startup.sh ] || exit 0
|
||
[ -f /usr/local/tomcat/bin/shutdown.sh ] || exit 0
|
||
|
||
export PATH=$PATH:/usr/bin:/usr/local/bin
|
||
|
||
# See how we were called.
|
||
case "$1" in
|
||
start)
|
||
# Start daemon.
|
||
echo -n "Starting Tomcat: "
|
||
/usr/local/tomcat/bin/startup.sh
|
||
RETVAL=$?
|
||
echo
|
||
[ $RETVAL = 0 ] && touch /var/lock/subsys/tomcat
|
||
;;
|
||
stop)
|
||
# Stop daemons.
|
||
echo -n "Shutting down Tomcat: "
|
||
/usr/local/tomcat/bin/shutdown.sh
|
||
RETVAL=$?
|
||
echo
|
||
[ $RETVAL = 0 ] && rm -f /var/lock/subsys/tomcat
|
||
;;
|
||
restart)
|
||
$0 stop
|
||
$0 start
|
||
;;
|
||
condrestart)
|
||
[ -e /var/lock/subsys/tomcat ] && $0 restart
|
||
;;
|
||
status)
|
||
status tomcat
|
||
;;
|
||
*)
|
||
echo "Usage: $0 {start|stop|restart|status}"
|
||
exit 1
|
||
esac
|
||
|
||
exit 0
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Set its ownership and access rights:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown root:root /etc/rc.d/init.d/tomcat
|
||
chmod 755 /etc/rc.d/init.d/tomcat
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> And add this init script to
|
||
<SPAN
|
||
CLASS="application"
|
||
>chkconfig</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chkconfig --add tomcat
|
||
chkconfig tomcat on
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Instead of creating your own init script,
|
||
you can use the script that comes with
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> package:
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/bin/catalina.sh</TT
|
||
>.
|
||
Make sure you set
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> environment
|
||
at the start of this script.
|
||
Or create a short init script that calls
|
||
the original <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> init script.
|
||
</P
|
||
><P
|
||
> See
|
||
<A
|
||
HREF="http://www.jguru.com/faq/view.jsp?EID=425628"
|
||
TARGET="_top"
|
||
>How can I start Tomcat as a daemon in Linux?</A
|
||
>.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> To install two (or even more) versions of
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
on the same system,
|
||
increase the <SPAN
|
||
CLASS="systemitem"
|
||
>port</SPAN
|
||
> numbers
|
||
of the second server (e.g. by 10),
|
||
by editing the configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat55/conf/server.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<Server port="8015" shutdown="SHUTDOWN">
|
||
...
|
||
<!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
|
||
<Connector port="8090"
|
||
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
|
||
enableLookups="false" redirectPort="8453" acceptCount="100"
|
||
connectionTimeout="20000" disableUploadTimeout="true" />
|
||
...
|
||
<!-- Define a SSL HTTP/1.1 Connector on port 8443 -->
|
||
<!--
|
||
<Connector port="8453"
|
||
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
|
||
enableLookups="false" disableUploadTimeout="true"
|
||
acceptCount="100" scheme="https" secure="true"
|
||
clientAuth="false" sslProtocol="TLS" />
|
||
-->
|
||
...
|
||
<!-- Define an AJP 1.3 Connector on port 8009 -->
|
||
<Connector port="8019"
|
||
enableLookups="false" redirectPort="8453" protocol="AJP/1.3" />
|
||
...
|
||
<!-- Define a Proxied HTTP/1.1 Connector on port 8082 -->
|
||
<!-- See proxy documentation for more information about using this. -->
|
||
<!--
|
||
<Connector port="8082"
|
||
maxThreads="150" minSpareThreads="25" maxSpareThreads="75"
|
||
enableLookups="false" acceptCount="100" connectionTimeout="20000"
|
||
proxyPort="80" disableUploadTimeout="true" />
|
||
-->
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Complete this second
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server installation
|
||
as above for the first server,
|
||
using adjusted directory and file names.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN433"
|
||
></A
|
||
>5. Replacing <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>'s
|
||
default <SPAN
|
||
CLASS="acronym"
|
||
>JSP</SPAN
|
||
> compiler
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jasper</SPAN
|
||
>
|
||
with <SPAN
|
||
CLASS="acronym"
|
||
>IBM</SPAN
|
||
>'s
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
> compiler</H1
|
||
><P
|
||
> Since <SPAN
|
||
CLASS="acronym"
|
||
>IBM</SPAN
|
||
>'s
|
||
<SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
> compiler
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
>
|
||
is performing better than
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>'s own
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>JSP</SPAN
|
||
> compiler
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jasper</SPAN
|
||
>,
|
||
it's recommended to install
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
> instead.
|
||
</P
|
||
><P
|
||
> Download the sources of <SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
>
|
||
from <SPAN
|
||
CLASS="acronym"
|
||
>IBM</SPAN
|
||
>'s Research website:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://jikes.sourceforge.net/"
|
||
TARGET="_top"
|
||
>http://jikes.sourceforge.net/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Extract and compile <SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
./configure --prefix=/usr/local/jikes
|
||
make
|
||
make check
|
||
make install
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Check support for the <TT
|
||
CLASS="option"
|
||
>-encoding</TT
|
||
> option:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
/usr/local/jikes/bin/jikes -help
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> To have <SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
>
|
||
output its error messages in a
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jasper</SPAN
|
||
> compatible way,
|
||
add this <TT
|
||
CLASS="envar"
|
||
>$CATALINA_OPTS</TT
|
||
> environment variable
|
||
to <TT
|
||
CLASS="filename"
|
||
>/etc/rc.d/init.d/tomcat</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
export CATALINA_OPTS="-Dbuild.compiler.emacs=true"
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> If you get an error message saying
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
> can not use
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>UTF8</SPAN
|
||
> encoding,
|
||
add the following option as well:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
-DjavaEncoding=ISO-8859-1
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> Make <SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
>
|
||
your <SPAN
|
||
CLASS="acronym"
|
||
>JSP</SPAN
|
||
> compiler
|
||
for <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
by adding to
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/conf/web.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<init-param>
|
||
<param-name>compiler</param-name>
|
||
<param-value>jikes</param-value>
|
||
</init-param>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Since entering the full path to
|
||
<SPAN
|
||
CLASS="application"
|
||
>Jikes</SPAN
|
||
>
|
||
in <TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/conf/web.xml</TT
|
||
>
|
||
doesn't seem to work (version 4.1.27),
|
||
make the <B
|
||
CLASS="command"
|
||
>jikes</B
|
||
> program available in your path:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
ln -s /usr/local/jikes/bin/jikes /usr/local/bin/jikes
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN482"
|
||
></A
|
||
>6. Installing <SPAN
|
||
CLASS="application"
|
||
>ImageMagick</SPAN
|
||
></H1
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
uses <SPAN
|
||
CLASS="application"
|
||
>ImageMagick</SPAN
|
||
>'s
|
||
<B
|
||
CLASS="command"
|
||
>convert</B
|
||
> tool
|
||
to build and convert its images.
|
||
</P
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>ImageMagick</SPAN
|
||
>
|
||
is already part of the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>Red Hat</SPAN
|
||
> distribution.
|
||
Check its availability using:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
rpm -q ImageMagick
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> If <SPAN
|
||
CLASS="application"
|
||
>ImageMagick</SPAN
|
||
>
|
||
is not available on your system,
|
||
install it
|
||
using <SPAN
|
||
CLASS="application"
|
||
>up2date</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
up2date
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> or download it from the Red Hat Network:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="https://rhn.redhat.com/"
|
||
TARGET="_top"
|
||
>https://rhn.redhat.com/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and install it by hand:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
rpm -ihv ImageMagick-xxx.rpm
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN502"
|
||
></A
|
||
>7. Installing <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
></H1
|
||
><P
|
||
> Download the binary distribution of
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>,
|
||
and the additional applications you need
|
||
(i.e. <SPAN
|
||
CLASS="application"
|
||
>CloudContext Security</SPAN
|
||
>,
|
||
<SPAN
|
||
CLASS="application"
|
||
>Media</SPAN
|
||
>,
|
||
<SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
>)
|
||
(see the next section),
|
||
from:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.mmbase.org"
|
||
TARGET="_top"
|
||
>http://www.mmbase.org/</A
|
||
> --> Download --> Releases
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="warning"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="warning"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/warning.gif"
|
||
HSPACE="5"
|
||
ALT="Warning"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.7.2
|
||
contained a nasty bug,
|
||
resulting in problems with the editwizards.
|
||
The 1.7.3 release includes a bugfix for this problem.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure you pick out the right version for the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Java 2 <SPAN
|
||
CLASS="acronym"
|
||
>JDK</SPAN
|
||
></SPAN
|
||
>
|
||
installed on your system.
|
||
You can find out the version currently installed by typing:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
java -version
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Extract the binary distribution of
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>,
|
||
copy it into the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> directory,
|
||
and change the ownership of the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> directory:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
unzip mmbase-xxx.zip
|
||
cd /usr/local/tomcat/webapps/
|
||
mkdir mmbase-webapp/
|
||
cp -R .../mmbase-x.x.x/mmbase-webapp/* ./mmbase-webapp/
|
||
chown -R tomcat:tomcat ./mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="warning"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="warning"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/warning.gif"
|
||
HSPACE="5"
|
||
ALT="Warning"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Installing <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.7
|
||
on <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> version 5
|
||
resulted in version incompatibilities:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
FATAL org.mmbase.servlet.MMBaseStartThread -
|
||
Could not find the MMBase module!Class
|
||
javax/servlet/http/HttpServletResponse violates loader constraints
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> We had to disable
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
>RMMCI</SPAN
|
||
> library
|
||
to get this installation up and running:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv /usr/local/tomcat/webapps/web-app/WEB-INF/lib/mmbase-rmmci.jar \
|
||
/usr/local/tomcat/webapps/web-app/WEB-INF/lib/mmbase-rmmci.jar.org
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> For <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.7
|
||
running on <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> version 5,
|
||
enable the <SPAN
|
||
CLASS="systemitem"
|
||
>Xerces</SPAN
|
||
> libraries:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xalan.renametojar \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xalan.jar
|
||
mv /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xerces.renametojar \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xerces.jar
|
||
mv /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xml-apis.renametojar \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xml-apis.jar
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
Or you will have fatal errors like:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
FATAL org.mmbase.servlet.MMBaseStartThread -
|
||
Could not find the MMBase module!org/apache/xpath/XPathAPI
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> For <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.6
|
||
running on <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> version 4,
|
||
replace the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>Xerces</SPAN
|
||
> libraries
|
||
by those coming with <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv -i /usr/local/tomcat/common/endorsed/xercesImpl.jar ~/
|
||
mv -i /usr/local/tomcat/common/endorsed/xmlParserAPIs.jar ~/
|
||
cp /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xalan.jar \
|
||
/usr/local/tomcat/common/endorsed/
|
||
chown tomcat:tomcat /usr/local/tomcat/common/endorsed/xalan.jar
|
||
chmod 644 /usr/local/tomcat/common/endorsed/xalan.jar
|
||
cp /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xerces.jar \
|
||
/usr/local/tomcat/common/endorsed/
|
||
chown tomcat:tomcat /usr/local/tomcat/common/endorsed/xerces.jar
|
||
chmod 644 /usr/local/tomcat/common/endorsed/xerces.jar
|
||
cp /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/xml-apis.jar \
|
||
/usr/local/tomcat/common/endorsed/
|
||
chown tomcat:tomcat /usr/local/tomcat/common/endorsed/xml-apis.jar
|
||
chmod 644 /usr/local/tomcat/common/endorsed/xml-apis.jar
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> If you will not be using an
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> mapping or reverse proxy
|
||
(see further <A
|
||
HREF="#JK2"
|
||
>below</A
|
||
>)
|
||
as a front-end to your
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server,
|
||
you can add to the file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/conf/server.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<Context path="/mmbase" docBase="/usr/local/tomcat/webapps/mmbase-webapp" debug="0">
|
||
<!-- if you want symlinks to work: -->
|
||
<Resources className="org.apache.naming.resources.FileDirContext" allowLinking="true" />
|
||
</Context>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> This will allow you to access your
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server
|
||
using
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/mmbase
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> instead of:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/mmbase-webapp
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> Check if the <SPAN
|
||
CLASS="application"
|
||
>ImageMagick</SPAN
|
||
>
|
||
<B
|
||
CLASS="command"
|
||
>convert</B
|
||
> tool
|
||
is in your path:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
which convert
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> If not, add it to
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/applications/Resources/builders/images.xml</TT
|
||
>.
|
||
For example:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<property name="ImageConvert.ConverterCommand">/usr/bin/X11/convert</property>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure that the directory
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/builders/applications</TT
|
||
>
|
||
is writable by the servlet engine user
|
||
(for auto-installing builders):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/builders/applications
|
||
chmod 775 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/builders/applications
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN572"
|
||
></A
|
||
>8. Connecting <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
to <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
using <SPAN
|
||
CLASS="systemitem"
|
||
>MySQL Connector/J</SPAN
|
||
></H1
|
||
><P
|
||
> We can connect
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
to our <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> database server
|
||
using <SPAN
|
||
CLASS="systemitem"
|
||
>MySQL Connector/J</SPAN
|
||
>.
|
||
This <SPAN
|
||
CLASS="acronym"
|
||
>JDBC</SPAN
|
||
> driver
|
||
for <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
can be downloaded from:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.mysql.com/downloads/api-jdbc.html"
|
||
TARGET="_top"
|
||
>http://www.mysql.com/downloads/api-jdbc.html</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Copy the <SPAN
|
||
CLASS="acronym"
|
||
>JDBC</SPAN
|
||
> driver
|
||
to the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
<TT
|
||
CLASS="filename"
|
||
>lib/</TT
|
||
> directory:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
cp mysql-connector-java-xxx-bin.jar /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/
|
||
chown tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/mysql-connector-java-xxx-bin.jar
|
||
chmod 664 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/mysql-connector-java-xxx-bin.jar
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Make this your <SPAN
|
||
CLASS="acronym"
|
||
>JDBC</SPAN
|
||
> driver
|
||
for <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
by editing
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml</TT
|
||
>.
|
||
Substitute the database name
|
||
(<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
>mmbase</I
|
||
></TT
|
||
>),
|
||
user (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
>mmuser</I
|
||
></TT
|
||
>)
|
||
and password (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
>mmpass</I
|
||
></TT
|
||
>)
|
||
with the database settings you'd like
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> to use.
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<property name="url">jdbc:mysql://$HOST:$PORT/$DBM</property>
|
||
<property name="user">mmuser</property>
|
||
<property name="password">mmpass</property>
|
||
<property name="supportclass">org.mmbase.module.database.DatabaseSupportShim</property>
|
||
<property name="database">mmbase</property>
|
||
<property name="connections">20</property>
|
||
<property name="host">localhost</property>
|
||
<property name="driver">com.mysql.jdbc.Driver</property>
|
||
<property name="port">3306</property>
|
||
<property name="querys">256</property>
|
||
<property name="probetime">30</property>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Set the ownership and access rights of this configuration file.
|
||
Since it contains your database name, user name and password,
|
||
make sure other users can not read this file.
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml
|
||
chmod 640 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Now create the <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> database
|
||
you've just defined for
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mysql -u root -p
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
CREATE DATABASE <mmbase>;
|
||
USE <mmbase>;
|
||
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
|
||
<mmuser>@'%' IDENTIFIED BY '<password>';
|
||
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
|
||
<mmuser>@localhost IDENTIFIED BY '<password>';
|
||
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
|
||
<mmuser>@localhost.<domainname> IDENTIFIED BY '<password>';
|
||
# RH bug fix
|
||
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP ON <mmbase>.* TO
|
||
<mmuser>@<hostname> IDENTIFIED BY '<password>';
|
||
flush privileges;
|
||
exit;
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Substitute the hostname (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
>)
|
||
and domain name (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><domainname></I
|
||
></TT
|
||
>)
|
||
with your own hostname and domain name,
|
||
and the database name (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><mmbase></I
|
||
></TT
|
||
>),
|
||
user (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><mmuser></I
|
||
></TT
|
||
>)
|
||
and password (<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><password></I
|
||
></TT
|
||
>)
|
||
with the values you just entered in the JDBC driver configuration file.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> To quickly empty
|
||
your <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> database,
|
||
i.e. after you've updated
|
||
your <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> configuration or
|
||
application
|
||
(replace the database name <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><mmbase></I
|
||
></TT
|
||
> with your
|
||
own):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mysqladmin -u root -p drop <mmbase>
|
||
mysqladmin -u root -p create <mmbase>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> If you are already using quite some
|
||
<SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> connections
|
||
(for example for authentication by and as a back-end to your mail daemons
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> servers),
|
||
the <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> server
|
||
might run out of connections (its maximum number defaults to 100).
|
||
Then <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
could simply refuse to start or give an error message
|
||
when initiating the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> connection pool,
|
||
or your <SPAN
|
||
CLASS="application"
|
||
>IMAP</SPAN
|
||
>
|
||
or <SPAN
|
||
CLASS="application"
|
||
>POP</SPAN
|
||
> servers will have
|
||
problems authenticating their clients.
|
||
</P
|
||
><P
|
||
> You can increase the maximum number of connections
|
||
to <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
by adding to the configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/etc/my.cnf</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
[mysqld]
|
||
set-variable = max_connections=200
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN634"
|
||
></A
|
||
>9. Installing <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
additional applications</H1
|
||
><P
|
||
> With the release of version 1.7
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
was reworked into a more modular structure.
|
||
The developers decided to take several modules
|
||
(i.e. <SPAN
|
||
CLASS="application"
|
||
>CloudContext Security</SPAN
|
||
>,
|
||
<SPAN
|
||
CLASS="application"
|
||
>Media</SPAN
|
||
>,
|
||
<SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
>)
|
||
from the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> tree,
|
||
and make these available as separate entities.
|
||
However, at this moment
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
doesn't have a module interface at all.
|
||
So, to use these additional applications,
|
||
the library and other files need to be placed into the installation tree
|
||
and the configuration needs to be added into the existing configuration files
|
||
by hand.
|
||
</P
|
||
><DIV
|
||
CLASS="sect2"
|
||
><HR><H2
|
||
CLASS="sect2"
|
||
><A
|
||
NAME="AEN644"
|
||
></A
|
||
>9.1. Installing
|
||
the <SPAN
|
||
CLASS="application"
|
||
>CloudContext Security</SPAN
|
||
> module</H2
|
||
><P
|
||
> >From the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> website
|
||
(<A
|
||
HREF="http://www.mmbase.org"
|
||
TARGET="_top"
|
||
>www.mmbase.org</A
|
||
>):
|
||
<A
|
||
NAME="AEN650"
|
||
></A
|
||
><BLOCKQUOTE
|
||
CLASS="BLOCKQUOTE"
|
||
><P
|
||
> <SPAN
|
||
CLASS="QUOTE"
|
||
>"<SPAN
|
||
CLASS="application"
|
||
>Cloud security</SPAN
|
||
>
|
||
uses the object <SPAN
|
||
CLASS="systemitem"
|
||
>mmbaseuser</SPAN
|
||
>
|
||
to store information used for authorisation and authentication of users.
|
||
The two main advantages of this security implementation are
|
||
that the user administration can be carried out by using a webbrowser
|
||
(instead of editing a file on the filesystem) and
|
||
that the users of your
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installation
|
||
are available as objects in the cloud.
|
||
For instance, it is possible to create groups of users,
|
||
which are allowed to carry out certain tasks."</SPAN
|
||
>
|
||
</P
|
||
><P
|
||
> <SPAN
|
||
CLASS="QUOTE"
|
||
>"A context exists of a set of rights
|
||
which describe what you can do within this context
|
||
with an object of
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>.
|
||
For example you define read access to a the context
|
||
which is used by anonymous visitors of your site and
|
||
you can define a context with edit rights for registered users of your site.
|
||
"</SPAN
|
||
>
|
||
</P
|
||
></BLOCKQUOTE
|
||
>
|
||
</P
|
||
><P
|
||
> Move the library and other files of
|
||
the <SPAN
|
||
CLASS="application"
|
||
>CloudContext Security</SPAN
|
||
> module
|
||
into the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installation tree:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv -i web-app/WEB-INF/lib/* \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/
|
||
mv -i web-app/WEB-INF/config/applications/* \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/applications/
|
||
mv -i web-app/WEB-INF/config/builders/* \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/builders/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Save the documentation files for later reference:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv -i web-app/README.txt web-app/README-PACKAGE.txt web-app/documentation web-app/src \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/mmdocs/security/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure all these new files are owned by
|
||
your <SPAN
|
||
CLASS="systemitem"
|
||
>tomcat</SPAN
|
||
> user as well:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -R tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Disable the existing configuration
|
||
in the security configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/security.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<!--
|
||
<authentication class="org.mmbase.security.implementation.context.ContextAuthentication" url="context/config.xml" />
|
||
-->
|
||
...
|
||
<!--
|
||
<authorization class="org.mmbase.security.implementation.context.ContextAuthorization" url="context/config.xml" />
|
||
-->
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> And add
|
||
(from <TT
|
||
CLASS="filename"
|
||
>web-app/WEB-INF/config/security/security.xml</TT
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<!--
|
||
Example security.xml to switch on Cloud Context Security.
|
||
No other configuration needed
|
||
(Cloud Context Security is configured in the cloud)
|
||
@version $Id: security.xml,v 1.1 2003/06/17 16:44:01 michiel Exp $
|
||
-->
|
||
<authentication class="org.mmbase.security.implementation.cloudcontext.Authenticate" url="" />
|
||
<authorization class="org.mmbase.security.implementation.cloudcontext.Verify" url="" />
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="note"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="note"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/note.gif"
|
||
HSPACE="5"
|
||
ALT="Note"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Make sure to include the configuration above before
|
||
the <TT
|
||
CLASS="classname"
|
||
><sharedsecret></TT
|
||
> statement,
|
||
or you will get an error like this:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
ERROR org.mmbase.util.XMLErrorHandler - security.xml line:71 column:12:
|
||
The content of element type "security" must match "(authentication,authorization,sharedsecret)".
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect2"
|
||
><HR><H2
|
||
CLASS="sect2"
|
||
><A
|
||
NAME="AEN679"
|
||
></A
|
||
>9.2. Installing
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Media</SPAN
|
||
> module</H2
|
||
><P
|
||
> <TODO>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect2"
|
||
><HR><H2
|
||
CLASS="sect2"
|
||
><A
|
||
NAME="AEN683"
|
||
></A
|
||
>9.3. Installing
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
> module</H2
|
||
><P
|
||
> The <SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
> module
|
||
makes it possible to send email
|
||
with <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>,
|
||
using either <SPAN
|
||
CLASS="systemitem"
|
||
>SendMail</SPAN
|
||
>
|
||
or <SPAN
|
||
CLASS="systemitem"
|
||
>JMSendMail</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> Move the library and other files of
|
||
the <SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
> module
|
||
into the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installation tree:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv -i web-app/WEB-INF/lib/* \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/lib/
|
||
mv -i web-app/WEB-INF/config/builders/* \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/builders/
|
||
mkdir /usr/local/tomcat/webapps/mmbase-webapp/email-examples/
|
||
cp -iR web-app/examples/* \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/email-examples/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Save the documentation files for later reference:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mkdir /usr/local/tomcat/webapps/mmbase-webapp/mmdocs/email/
|
||
mv -i web-app/README.txt web-app/README-PACKAGE.txt web-app/documentation web-app/src \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/mmdocs/email/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure all these new files are owned by
|
||
your <SPAN
|
||
CLASS="systemitem"
|
||
>tomcat</SPAN
|
||
> user as well:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -R tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Edit the email configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/sendmail.xml</TT
|
||
>
|
||
(from <TT
|
||
CLASS="filename"
|
||
>web-app/WEB-INF/config/modules/sendmail.xml</TT
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
...
|
||
<status>active</status>
|
||
...
|
||
<classfile>org.mmbase.applications.email.SendMail</classfile>
|
||
...
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Add to <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>'s
|
||
root <TT
|
||
CLASS="classname"
|
||
>Context</TT
|
||
>
|
||
(in /usr/local/tomcat/conf/context.xml for Tomcat version 5,
|
||
in /usr/local/tomcat/conf/server.xml for Tomcat version 4)
|
||
(replace <smtp.domain.tld> with the adres of your
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>SMTP</SPAN
|
||
> server</SPAN
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
Resource name="mail/Session" auth="Container"
|
||
type="javax.mail.Session"/>
|
||
<ResourceParams name="mail/Session">
|
||
<parameter>
|
||
<name>mail.smtp.host</name>
|
||
<value>smtp.domain.tld</value>
|
||
</parameter>
|
||
</ResourceParams>
|
||
<ResourceLink name="linkToGlobalResource"
|
||
global="simpleValue"
|
||
type="java.lang.Integer"/>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Failing to do this, results in a fatal error:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
FATAL org.mmbase.module.JMSendMail -
|
||
JMSendMail failure: Name mail is not bound in this Context
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="warning"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="warning"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/warning.gif"
|
||
HSPACE="5"
|
||
ALT="Warning"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Installing the <SPAN
|
||
CLASS="application"
|
||
>Email</SPAN
|
||
> module
|
||
in <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.7
|
||
running on <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> version 5
|
||
resulted in a fatal error:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
FATAL org.mmbase.servlet.MMBaseStartThread -
|
||
Could not find the MMBase module!javax/mail/Session
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN719"
|
||
></A
|
||
>10. Configuring initial
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> settings</H1
|
||
><P
|
||
> Here are some initial configuration settings
|
||
for <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> Change the default password
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>admin2k</SPAN
|
||
>
|
||
for the administrator <SPAN
|
||
CLASS="systemitem"
|
||
>admin</SPAN
|
||
>
|
||
by editing
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/context/config.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<user name="admin" context="admin">
|
||
<identify type="name/password" rank="administrator">admin2k</identify>
|
||
</user>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Also, outcomment or remove the user
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>foo/bar</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> Since this file contains your administrators password,
|
||
make sure other users can not read it:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chmod 640 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/context/config.xml
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> To use the <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
builder <SPAN
|
||
CLASS="systemitem"
|
||
>mmbaseuser</SPAN
|
||
>
|
||
(using the <SPAN
|
||
CLASS="database"
|
||
>mmbaseuser</SPAN
|
||
> table
|
||
in your <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> database)
|
||
for user authentication,
|
||
set the <TT
|
||
CLASS="classname"
|
||
>authentication</TT
|
||
> class
|
||
in the configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/security.xml</TT
|
||
>
|
||
to:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<authentication class="org.mmbase.security.implementation.cloud.Authenticate" url="" />
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and set the <TT
|
||
CLASS="classname"
|
||
>authorization</TT
|
||
> class to:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<authorization class="org.mmbase.security.implementation.cloud.Verify" url="" />
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> In the same file change the shared secret used to communicate with remote
|
||
builders
|
||
(on other <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> servers):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<sharedsecret>yoursharedsecret</sharedsecret>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> You can set the language
|
||
for <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
by editing
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/mmbaseroot.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<property name="language">en</property>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> You can set the <SPAN
|
||
CLASS="acronym"
|
||
>SMTP</SPAN
|
||
> gateway by editing
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/sendmail.xml</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<property name="mailhost">localhost</property>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN759"
|
||
></A
|
||
>11. Running <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
></H1
|
||
><P
|
||
> Now you are ready to start <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
service tomcat start
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and access your new <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server
|
||
through
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> If everything you just did worked out,
|
||
you should get the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> welcome screen
|
||
where you can change the settings, look at the demos, and install the
|
||
samples.
|
||
<P
|
||
><IMG
|
||
SRC="MMBase-600x415.png"></P
|
||
>
|
||
</P
|
||
><P
|
||
> When asked for a login use the name
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>admin</SPAN
|
||
>
|
||
and the password
|
||
you just set in the security configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/context/config.xml</TT
|
||
>.
|
||
</P
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> users
|
||
(i.e. front-end developers) will typically add their web files to
|
||
the <TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/</TT
|
||
> directory.
|
||
Applications (defining the content) will be placed in
|
||
the
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/applications/</TT
|
||
>
|
||
directory.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="caution"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="caution"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/caution.gif"
|
||
HSPACE="5"
|
||
ALT="Caution"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
consumes far more <SPAN
|
||
CLASS="acronym"
|
||
>CPU</SPAN
|
||
> and memory resources
|
||
than <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
Make sure the dimensions of your
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>/<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server system meet these requirements.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Shutting down (or restarting) the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server (version 1.6)
|
||
in our case always left a last process running.
|
||
If you experience this same problem,
|
||
kill the process by hand before starting it up again:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
[root@hostname root]# service tomcat stop
|
||
[root@hostname root]# ps -ax |grep j2
|
||
24535 ? S 4:12 /usr/local/j2sdk/bin/java -server -Xms64m -Xmx512m-Dbuild.compiler.emacs=true ...
|
||
[root@hostname root]# kill 24535
|
||
[root@hostname root]# service tomcat start
|
||
[root@hostname root]#
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> You can save the original <TT
|
||
CLASS="filename"
|
||
>index.jsp</TT
|
||
> file
|
||
by renaming it to <TT
|
||
CLASS="filename"
|
||
>mmbase.jsp</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
mv -i /usr/local/tomcat/webapps/mmbase-webapp/index.jsp \
|
||
/usr/local/tomcat/webapps/mmbase-webapp/mmbase.jsp
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> This will allow you to always access the original MMBase home page through
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/mmbase-webapp/mmbase.jsp
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> In case of any problems,
|
||
check the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> log files
|
||
in the directory
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/logs/</TT
|
||
>
|
||
for hints.
|
||
</P
|
||
><P
|
||
> >From here, we refer to the documentation
|
||
on the <SPAN
|
||
CLASS="application"
|
||
>MMbase</SPAN
|
||
> website
|
||
to complete your configuration
|
||
and start using <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://www.mmbase.org/docs/"
|
||
TARGET="_top"
|
||
>http://www.mmbase.org/docs/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="JK2"
|
||
></A
|
||
>12. Connecting <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
using <SPAN
|
||
CLASS="systemitem"
|
||
>mod_jk2</SPAN
|
||
></H1
|
||
><P
|
||
> Since (for some odd reason) some network managers allow outgoing web
|
||
connections only to <SPAN
|
||
CLASS="systemitem"
|
||
>TCP port 80</SPAN
|
||
>,
|
||
there might be people around that cannot access your
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
(and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>) server
|
||
through <SPAN
|
||
CLASS="systemitem"
|
||
>port 8080</SPAN
|
||
>.
|
||
You can install a <SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> mapping or a reverse proxy
|
||
in <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>,
|
||
so <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
can be accessed through the
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> web server
|
||
at <SPAN
|
||
CLASS="systemitem"
|
||
>port 80</SPAN
|
||
>.
|
||
Apart from the port issue,
|
||
this has the advantage that you can use
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
to manage you <SPAN
|
||
CLASS="acronym"
|
||
>SSL</SPAN
|
||
> connections
|
||
and use your existing
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
logs and statistics facilities
|
||
for <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> as well.
|
||
</P
|
||
><P
|
||
> Here we describe the installation and configuration of
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
connecting <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>.
|
||
In this way,
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> paths can be mapped
|
||
into <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> >From the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
website
|
||
(<A
|
||
HREF="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/jk2.html"
|
||
TARGET="_top"
|
||
>http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/jk2.html</A
|
||
>):
|
||
<A
|
||
NAME="AEN844"
|
||
></A
|
||
><BLOCKQUOTE
|
||
CLASS="BLOCKQUOTE"
|
||
><P
|
||
> <SPAN
|
||
CLASS="QUOTE"
|
||
>"
|
||
The <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
element represents
|
||
a <TT
|
||
CLASS="classname"
|
||
>Connector</TT
|
||
> component that communicates
|
||
with a web connector via the <SPAN
|
||
CLASS="acronym"
|
||
>AJP</SPAN
|
||
> protocol.
|
||
This is used for cases where you wish
|
||
to invisibly integrate <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> 4
|
||
into an existing (or new)
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> installation,
|
||
and you want <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> to handle
|
||
the static content contained in the web application,
|
||
and/or utilize <SPAN
|
||
CLASS="application"
|
||
>Apache's</SPAN
|
||
>
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>SSL</SPAN
|
||
> processing.
|
||
In many application environments,
|
||
this will result in better overall performance
|
||
than running your applications
|
||
under <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> stand-alone
|
||
using the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>HTTP/1.1</SPAN
|
||
> Connector</SPAN
|
||
>.
|
||
However, the only way to know for sure
|
||
whether it will provide better performance for your application
|
||
is to try it both ways.
|
||
"</SPAN
|
||
>
|
||
</P
|
||
></BLOCKQUOTE
|
||
>
|
||
</P
|
||
><P
|
||
> If you will only be needing a simple configuration--
|
||
typically a single <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
sitting on the same system as
|
||
your <SPAN
|
||
CLASS="application"
|
||
>Apache server</SPAN
|
||
>--
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> reverse proxies might be
|
||
an easier solution for you.
|
||
Although these are simpler in terms of the interconnection features,
|
||
reverse proxies provide more flexibility
|
||
in fiddling with your paths and other options.
|
||
The configuration of
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> reverse proxies is
|
||
described in the next section.
|
||
</P
|
||
><P
|
||
> However, if you plan to build or grow to
|
||
a farm of several <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> servers
|
||
behind an <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> front-end
|
||
or build a high-performance system,
|
||
deploying
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
is the way to go.
|
||
</P
|
||
><P
|
||
> Download the sources of
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
from the <SPAN
|
||
CLASS="application"
|
||
>Apache Jakarta</SPAN
|
||
> website:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://jakarta.apache.org/site/sourceindex.cgi"
|
||
TARGET="_top"
|
||
>http://jakarta.apache.org/site/sourceindex.cgi</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Extract and compile
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
tar -zxvf jakarta-tomcat-connectors-jk2-src-xxx.tar.gz
|
||
cd jakarta-tomcat-connectors-jk2-src/jk/native2/
|
||
./configure \
|
||
--with-apxs2=/usr/local/apache/bin/apxs
|
||
make
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure your <TT
|
||
CLASS="envar"
|
||
>$JAVA_HOME</TT
|
||
> environment variable is set
|
||
and the <SPAN
|
||
CLASS="application"
|
||
>Java</SPAN
|
||
> binaries are
|
||
in your <TT
|
||
CLASS="envar"
|
||
>$PATH</TT
|
||
>
|
||
or add this option to your <B
|
||
CLASS="command"
|
||
>./configure</B
|
||
> command:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
> <TT
|
||
CLASS="option"
|
||
>--with-java-home=/usr/local/j2sdk</TT
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Copy the module files <TT
|
||
CLASS="filename"
|
||
>mod_jk2.so</TT
|
||
> and
|
||
<TT
|
||
CLASS="filename"
|
||
>jkjni.so</TT
|
||
>
|
||
to the <TT
|
||
CLASS="filename"
|
||
>modules/</TT
|
||
> directory
|
||
of <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
cp -i ../build/jk2/apache2/*.so /usr/local/apache/modules/
|
||
chmod 755 /usr/local/apache/modules/mod_jk2.so
|
||
chown root:root /usr/local/apache/modules/mod_jk2.so
|
||
chmod 755 /usr/local/apache/modules/jkjni.so
|
||
chown root:root /usr/local/apache/modules/jkjni.so
|
||
libtool --finish /usr/local/apache/modules
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Copy the sample configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>workers2.properties</TT
|
||
>
|
||
to the configuration directory
|
||
of <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
|
||
cp -i ../../jk/conf/workers2.properties /usr/local/apache/conf/
|
||
chown root:root /usr/local/apache/conf/workers2.properties
|
||
chmod 644 /usr/local/apache/conf/workers2.properties
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and adjust it to your own needs.
|
||
</P
|
||
><P
|
||
> Here is a simple configuration that should get you up and running:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
[logger]
|
||
# outcomment this in production use
|
||
level=DEBUG
|
||
|
||
[config:]
|
||
file=${serverRoot}/conf/workers2.properties
|
||
debug=0
|
||
debugEnv=0
|
||
|
||
[uriMap:]
|
||
info=Maps the requests. Options: debug
|
||
debug=1
|
||
|
||
[shm:]
|
||
info=Scoreboard. Required for reconfiguration and status with multiprocess servers
|
||
file=${serverRoot}/logs/jk2.shm
|
||
size=1000000
|
||
debug=0
|
||
disabled=0
|
||
|
||
[workerEnv:]
|
||
info=Global server options
|
||
timing=1
|
||
debug=0
|
||
|
||
[status:]
|
||
info=Status worker, displays runtime informations
|
||
|
||
[uri:<hostname>/jkstatus/*]
|
||
info=Display status information and checks the config file for changes.
|
||
group=status:
|
||
|
||
[channel.socket:localhost:8009]
|
||
info=Ajp13 forwarding over socket
|
||
|
||
# Define the worker
|
||
[ajp13:localhost:8009]
|
||
channel=channel.socket:localhost:8009
|
||
|
||
[uri:<hostname>/mmbase-webapp/*]
|
||
info=MMBase
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Most of this configuration is pretty standard.
|
||
The last <TT
|
||
CLASS="classname"
|
||
>uri</TT
|
||
> declaration
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname)
|
||
is what this is all about;
|
||
it maps all client requests starting with
|
||
<TT
|
||
CLASS="filename"
|
||
>/mmbase-webapp/</TT
|
||
>
|
||
from <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
to your <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="note"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="note"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/note.gif"
|
||
HSPACE="5"
|
||
ALT="Note"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> When we made a virtual host mapping,
|
||
somehow the general mappings no longer worked for this virtual host
|
||
(other virtual hosts on the same
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>IP address</SPAN
|
||
> had no problem at all).
|
||
We had to explicitly add the general mappings for this virtual host
|
||
to make these work again.
|
||
A bug?
|
||
Or a consequence of the way
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
implements name based virtual hosts?
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> So now, the same application you accessed
|
||
through <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> as
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> will be available through
|
||
<SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> as:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>/mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="important"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="important"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/important.gif"
|
||
HSPACE="5"
|
||
ALT="Important"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Only name based virtual hosts are supported this way.
|
||
Make sure you add the virtual host name
|
||
(pointing to this very same (web) server)
|
||
to the <TT
|
||
CLASS="filename"
|
||
>/etc/hosts</TT
|
||
> file
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
192.168.3.17 <hostname>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> or things will not work
|
||
(running <SPAN
|
||
CLASS="acronym"
|
||
>DNS</SPAN
|
||
> is not sufficient here!).
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> If your <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> installation
|
||
is serving only a single website,
|
||
you can leave out the hostname:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
[uri:/mmbase-webapp/*]
|
||
info=MMBase
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> which will serve the
|
||
mapped <TT
|
||
CLASS="filename"
|
||
>/mmbase-webapp/</TT
|
||
> directory
|
||
on every address and site
|
||
of your <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> installation.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="note"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="note"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/note.gif"
|
||
HSPACE="5"
|
||
ALT="Note"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Using
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
version 2,
|
||
all configuration settings will be in the
|
||
<TT
|
||
CLASS="filename"
|
||
>workers2.properties</TT
|
||
> file.
|
||
Even though <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
comes with its own
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> configuration file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/conf/jk2.properties</TT
|
||
>,
|
||
there's no need to edit this
|
||
as long as you stick with the standard
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>port 8009</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> If you do have to edit this file
|
||
(for example when changing the port),
|
||
make sure that you do it
|
||
when your <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
is not running;
|
||
the file is auto-edited
|
||
by <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> itself.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> After adding the <SPAN
|
||
CLASS="systemitem"
|
||
>mod_jk2</SPAN
|
||
> module
|
||
to your <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> configuration
|
||
(in the file
|
||
<TT
|
||
CLASS="filename"
|
||
>/etc/httpd/conf/httpd.conf</TT
|
||
>
|
||
or in a new file <TT
|
||
CLASS="filename"
|
||
>jk2.conf</TT
|
||
>
|
||
in the <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
configuration directory
|
||
<TT
|
||
CLASS="filename"
|
||
>/etc/httpd/conf.d</TT
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
# Load mod_jk2 module
|
||
LoadModule jk2_module modules/mod_jk2.so
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown root:root /etc/httpd/conf.d/jk2.conf
|
||
chmod 644 /etc/httpd/conf.d/jk2.conf
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> you can now restart <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
and give your new entrance a try:
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>/mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> To check the status of
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>/jkstatus/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> You can reread the configuration in
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/apache/conf/workers2.properties</TT
|
||
>
|
||
by (re)loading the <SPAN
|
||
CLASS="guimenu"
|
||
>JK Status</SPAN
|
||
> page.
|
||
This allows you to add new mappings
|
||
without restarting <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
or having it reload its configuration.
|
||
However, existing mappings can not be removed this way
|
||
and require <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> to reconfigure.
|
||
</P
|
||
><P
|
||
> Although it's also possible to place the <SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> configurations
|
||
(in a slightly different form)
|
||
in your <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> configuration file,
|
||
this is a good reason to stick with the
|
||
<TT
|
||
CLASS="filename"
|
||
>workers2.properties</TT
|
||
> setup.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="important"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="important"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/important.gif"
|
||
HSPACE="5"
|
||
ALT="Important"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> To protect access to the <SPAN
|
||
CLASS="guimenu"
|
||
>JK Status</SPAN
|
||
> page,
|
||
add an authentication declaration
|
||
to the <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> configuration.
|
||
For example:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<Location /jkstatus/>
|
||
AuthType Basic
|
||
AuthName "JK 2 Connector Status"
|
||
AuthUserFile /etc/httpd/conf/users
|
||
AuthGroupFile /etc/httpd/conf/groups
|
||
Require group admin
|
||
</Location>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> This will prompt for a login from a user
|
||
from the <SPAN
|
||
CLASS="systemitem"
|
||
>admin</SPAN
|
||
> group.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> In case of any problems,
|
||
check
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
log messages
|
||
that will be written to your <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
<TT
|
||
CLASS="filename"
|
||
>error_log</TT
|
||
>.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> In case the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
has difficulties connecting to
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>,
|
||
check whether <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> is indeed
|
||
available on
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>port 8009</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
netstat -tln
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> Access requests mapping to <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
will be logged in the <TT
|
||
CLASS="filename"
|
||
>access_log</TT
|
||
>'s
|
||
and <TT
|
||
CLASS="filename"
|
||
>error_log</TT
|
||
>'s
|
||
of <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
</P
|
||
><P
|
||
> For more information on the
|
||
<TT
|
||
CLASS="filename"
|
||
>workers2.properties</TT
|
||
> configuration,
|
||
check the documentation at:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
> <A
|
||
HREF="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk2/configwebcom.html"
|
||
TARGET="_top"
|
||
>http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk2/configwebcom.html</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> There you will read about
|
||
setting up more (remote)
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> workers,
|
||
grouping these together in load-balancing pools,
|
||
setting up <SPAN
|
||
CLASS="acronym"
|
||
>RPC</SPAN
|
||
> channels,
|
||
using <SPAN
|
||
CLASS="systemitem"
|
||
>Unix</SPAN
|
||
> sockets,
|
||
using the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
>Java Native Interface (<SPAN
|
||
CLASS="acronym"
|
||
>JNI</SPAN
|
||
></SPAN
|
||
>)
|
||
to interconnect with
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> directly (in-process),
|
||
setting up alternative loggers,
|
||
and optimizing your time-outs.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="tip"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="tip"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/tip.gif"
|
||
HSPACE="5"
|
||
ALT="Tip"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> is far more efficient
|
||
than <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
in serving ordinary content files.
|
||
You could have both the <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
and <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> document directories
|
||
point to the same directory on your filesystem
|
||
and only forward requests for <SPAN
|
||
CLASS="acronym"
|
||
>JSP</SPAN
|
||
> pages
|
||
and <SPAN
|
||
CLASS="systemitem"
|
||
>Java Servlets</SPAN
|
||
>.
|
||
For example (in <TT
|
||
CLASS="filename"
|
||
>workers2.conf</TT
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
#[uri:/examples/servlet/*]
|
||
#info=Prefix mapping
|
||
|
||
#[uri:/examples/*.jsp]
|
||
#info=Extension mapping
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> However, now you need to protect
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat's</SPAN
|
||
>
|
||
<TT
|
||
CLASS="filename"
|
||
>WEB-INF/</TT
|
||
> directories
|
||
(and other directories and files you don't want visitors to have access to)
|
||
from being served by <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>.
|
||
For example (in <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>'s
|
||
<TT
|
||
CLASS="filename"
|
||
>httpd.conf</TT
|
||
>):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
<Location "/examples/WEB-INF/">
|
||
AllowOverride None
|
||
deny from all
|
||
<Location>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Also, realize that a setup like this bypasses
|
||
any security constraints you may have configured
|
||
in the file
|
||
<TT
|
||
CLASS="filename"
|
||
>/usr/local/tomcat/webapps/examples/WEB-INF/web.xml</TT
|
||
>.
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
><P
|
||
> You can find more general information about
|
||
the <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
at:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="screen"
|
||
> <A
|
||
HREF="http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/"
|
||
TARGET="_top"
|
||
>http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/</A
|
||
>
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1037"
|
||
></A
|
||
>13. Installing an <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
reverse proxy
|
||
as a front-end
|
||
to your <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server</H1
|
||
><P
|
||
> Installing an <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> reverse proxy
|
||
is an easy alternative to the
|
||
<SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
>
|
||
to use <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
> as a front-end
|
||
to your <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server.
|
||
</P
|
||
><P
|
||
> Add to your <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
(virtual) server configuration
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
ProxyPass /tomcat/ http://<hostname>:8080/
|
||
ProxyPassReverse /tomcat/ http://<hostname>:8080/
|
||
ProxyPass /mmbase/ http://<hostname>:8080/mmbase-webapp/
|
||
ProxyPassReverse /mmbase/ http://<hostname>:8080/mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> This allows you to access your
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
as
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>/tomcat/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and your <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> server as
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>/mmbase/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="caution"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="caution"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/caution.gif"
|
||
HSPACE="5"
|
||
ALT="Caution"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> Our MMBase version 1.7 installation used
|
||
absolute directory paths in the web pages it generated.
|
||
In order to get the reverse proxies to work properly,
|
||
the Apache proxy paths had to be the same
|
||
(replace <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><hostname></I
|
||
></TT
|
||
> with your hostname):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
ProxyPass /mmbase-webapp/ http://<hostname>:8080/mmbase-webapp/
|
||
ProxyPassReverse /mmbase-webapp/ http://<hostname>:8080/mmbase-webapp/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1064"
|
||
></A
|
||
>14. Installing more <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> servers
|
||
on a single <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server</H1
|
||
><P
|
||
> If you want to support
|
||
more instances of <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>,
|
||
for example if you would like
|
||
to make <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
available to more or all of your users,
|
||
you can create several
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installations
|
||
and have these all run on the same
|
||
<SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server.
|
||
</P
|
||
><P
|
||
> Install <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
in the home directory
|
||
of the user <TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><user></I
|
||
></TT
|
||
>
|
||
performing all steps before:
|
||
<P
|
||
></P
|
||
><UL
|
||
COMPACT="COMPACT"
|
||
><LI
|
||
><P
|
||
> create a directory <TT
|
||
CLASS="filename"
|
||
>mmbase/</TT
|
||
>
|
||
in the users home directory,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> copy all <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> files
|
||
into the directory
|
||
<TT
|
||
CLASS="filename"
|
||
>/home/<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><user></I
|
||
></TT
|
||
>/mmbase/</TT
|
||
>,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> build the directory structure and configuration files
|
||
in the very same way we did before,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> for <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.7
|
||
running on <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> version 5,
|
||
enable the <SPAN
|
||
CLASS="systemitem"
|
||
>Xerces</SPAN
|
||
> libraries,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> for <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> version 1.6
|
||
running on <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> version 4,
|
||
remove the <SPAN
|
||
CLASS="systemitem"
|
||
>Xerces</SPAN
|
||
> libraries
|
||
in <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
(after you have copied these
|
||
from <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
to <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>
|
||
the first time),
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> install the <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
>
|
||
<SPAN
|
||
CLASS="acronym"
|
||
>JDBC</SPAN
|
||
> driver
|
||
and create a new <SPAN
|
||
CLASS="application"
|
||
>MySQL</SPAN
|
||
> database
|
||
for this user.
|
||
</P
|
||
></LI
|
||
></UL
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure both the user
|
||
and the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
have access to the
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installation:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -R <user>:tomcat /home/<user>/mmbase/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Make sure that the directory
|
||
<TT
|
||
CLASS="filename"
|
||
>/home/<TT
|
||
CLASS="replaceable"
|
||
><I
|
||
><user></I
|
||
></TT
|
||
>/mmbase/WEB-INF/config/builders/applications</TT
|
||
>
|
||
is writable and accessible by the servlet engine user
|
||
(for auto-installing builders):
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chmod 770 /home/<user>/mmbase/WEB-INF/config/builders/applications
|
||
chmod 750 /home/<user>/mmbase/WEB-INF/config/builders/
|
||
chmod 750 /home/<user>/mmbase/WEB-INF/config/
|
||
chmod 750 /home/<user>/mmbase/WEB-INF/
|
||
chmod 750 /home/<user>/mmbase/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Now the home directory of this user has to be accessible
|
||
to the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server
|
||
as well.
|
||
You can change the group owner of the users home directory
|
||
to the <SPAN
|
||
CLASS="systemitem"
|
||
>tomcat</SPAN
|
||
> user group:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
chown -g tomcat /home/<user>/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Or, if you don't want this,
|
||
use the Access Control Lists (<SPAN
|
||
CLASS="acronym"
|
||
>ACL</SPAN
|
||
>'s)
|
||
to accomplish the same:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
setfacl -m u:tomcat:r-x /home/<user>/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Finally, link the new
|
||
<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installation
|
||
to the <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
ln -s /home/<user>/mmbase /usr/local/tomcat/webapps/mmbase-<user>
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> and restart <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
service tomcat restart
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> which will make
|
||
this users <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> installation
|
||
available through:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
http://<hostname>:8080/mmbase-<user>/
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
><P
|
||
> Again, you can set up a <SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> mapping or a reverse proxy
|
||
in <SPAN
|
||
CLASS="application"
|
||
>Apache</SPAN
|
||
>
|
||
like we did before.
|
||
</P
|
||
><P
|
||
> <DIV
|
||
CLASS="important"
|
||
><P
|
||
></P
|
||
><TABLE
|
||
CLASS="important"
|
||
WIDTH="100%"
|
||
BORDER="0"
|
||
><TR
|
||
><TD
|
||
WIDTH="25"
|
||
ALIGN="CENTER"
|
||
VALIGN="TOP"
|
||
><IMG
|
||
SRC="../images/important.gif"
|
||
HSPACE="5"
|
||
ALT="Important"></TD
|
||
><TD
|
||
ALIGN="LEFT"
|
||
VALIGN="TOP"
|
||
><P
|
||
> In order to run
|
||
several instances of <SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
>
|
||
on a single <SPAN
|
||
CLASS="application"
|
||
>Tomcat</SPAN
|
||
> server,
|
||
make sure you increase the available memory resources, i.e.
|
||
by adding to the <TT
|
||
CLASS="envar"
|
||
>$CATALINA_OPTS</TT
|
||
> environment variable
|
||
in <TT
|
||
CLASS="filename"
|
||
>/etc/rc.d/init.d/tomcat</TT
|
||
>:
|
||
<TABLE
|
||
BORDER="0"
|
||
BGCOLOR="#E0E0E0"
|
||
WIDTH="100%"
|
||
><TR
|
||
><TD
|
||
><FONT
|
||
COLOR="#000000"
|
||
><PRE
|
||
CLASS="programlisting"
|
||
>
|
||
-Xms64m -Xmx512m
|
||
|
||
</PRE
|
||
></FONT
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
>
|
||
</P
|
||
></TD
|
||
></TR
|
||
></TABLE
|
||
></DIV
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1141"
|
||
></A
|
||
>15. Acknowledgements</H1
|
||
><P
|
||
> This document is a follow-up on the
|
||
<SPAN
|
||
CLASS="QUOTE"
|
||
>"<SPAN
|
||
CLASS="application"
|
||
>MMBase</SPAN
|
||
> Mini-HOWTO:
|
||
Installation on <SPAN
|
||
CLASS="systemitem"
|
||
>Debian Woody</SPAN
|
||
>"</SPAN
|
||
>,
|
||
by Casper Joost Eyckelhof, University of Twente, The Netherlands.
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1147"
|
||
></A
|
||
>16. Contributers</H1
|
||
><P
|
||
> <P
|
||
></P
|
||
><UL
|
||
COMPACT="COMPACT"
|
||
><LI
|
||
><P
|
||
> Felipe Caballero Gil,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> Andr<EFBFBD> van Elst,
|
||
<A
|
||
HREF="http://www.finalist.nl"
|
||
TARGET="_top"
|
||
>Finalist</A
|
||
>,
|
||
The Netherlands.
|
||
</P
|
||
></LI
|
||
></UL
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1156"
|
||
></A
|
||
>17. Revision history</H1
|
||
><P
|
||
> <P
|
||
></P
|
||
><UL
|
||
COMPACT="COMPACT"
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.3.5.DocBook.html"
|
||
TARGET="_top"
|
||
>Version 0.3.5</A
|
||
>, June 25, 2006: Tomcat init script,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.3.4.DocBook.html"
|
||
TARGET="_top"
|
||
>Version 0.3.4</A
|
||
>, September 19, 2005: minor corrections,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.3.2.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.3.2</A
|
||
>, January 25, 2005: MMBase 1.7.3, Java 1.5.0-01,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.3.1.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.3.1</A
|
||
>, December 26, 2004: Email module,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.3.0.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.3.0</A
|
||
>, December 25, 2004: MMBase 1.7.2, Tomcat 5.5.4, Java 1.5.0, MySQL Connector/J 3.0.16-ga, Jikes 1.22,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.6.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2.6</A
|
||
>, July 27, 2004: minor additions,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.5.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2.5</A
|
||
>, February 28, 2004: Creative Commons copyright license adjusted,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.4.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2.4</A
|
||
>, January 22, 2004: Creative Commons copyright license; minor additions and corrections,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.3.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2.3</A
|
||
>, December 26, 2003: minor additions and corrections,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.2.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2.2</A
|
||
>, December 20, 2003: copyright adjusted,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.1.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2.1</A
|
||
>, December 18, 2003: minor corrections,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.2.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.2</A
|
||
>, December 15, 2003: <SPAN
|
||
CLASS="systemitem"
|
||
><SPAN
|
||
CLASS="acronym"
|
||
>JK 2</SPAN
|
||
> Connector</SPAN
|
||
> setup added,
|
||
</P
|
||
></LI
|
||
><LI
|
||
><P
|
||
> <A
|
||
HREF="http://www.offerman.net/MMBase-Installation-HOWTO/MMBase-Installation-HOWTO-0.1.DocBook.html"
|
||
TARGET="_top"
|
||
>version 0.1</A
|
||
>, December 10, 2003: initial draft.
|
||
</P
|
||
></LI
|
||
></UL
|
||
>
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1201"
|
||
></A
|
||
>18. Disclaimer</H1
|
||
><P
|
||
> This document is provided <SPAN
|
||
CLASS="QUOTE"
|
||
>"as is"</SPAN
|
||
>,
|
||
without any expressed or implied warranties.
|
||
Use the ideas, concepts, scripts, examples, helping hands and other
|
||
information at your own risk.
|
||
</P
|
||
><P
|
||
> The specific products and their respective manufacturers are not to be taken
|
||
as endorsements of, nor commercials for, the manufacturer.
|
||
</P
|
||
></DIV
|
||
><DIV
|
||
CLASS="sect1"
|
||
><HR><H1
|
||
CLASS="sect1"
|
||
><A
|
||
NAME="AEN1206"
|
||
></A
|
||
>19. Copyright</H1
|
||
><P
|
||
> Compiled, Copyright <20> 2003 - 2006, by
|
||
<A
|
||
HREF="http://www.offerman.net/"
|
||
TARGET="_top"
|
||
>Adrian Offerman</A
|
||
>.
|
||
</P
|
||
><P
|
||
> <A
|
||
HREF="http://www.creativecommons.org/licenses/by-sa/1.0/"
|
||
TARGET="_top"
|
||
><IMG
|
||
SRC="./CreativeCommons-SomeRightsReserved.gif"
|
||
WIDTH="88"
|
||
HEIGHT="31"></A
|
||
>
|
||
This document is licensed under the
|
||
<A
|
||
HREF="http://www.creativecommons.org/licenses/by-sa/1.0/"
|
||
TARGET="_top"
|
||
>Creative Commons Attribution-ShareAlike copyright license</A
|
||
>.
|
||
</P
|
||
><P
|
||
> This allows you to copy, distribute, display, and print this work,
|
||
and make derivative works,
|
||
and make commercial use of the work,
|
||
under the conditions that you give the original author credit,
|
||
and if you alter, transform, or build upon this work,
|
||
you may distribute the resulting work only under a license
|
||
identical to this one.
|
||
For any reuse or distribution,
|
||
you must make clear to others the license terms of this work.
|
||
Any of these conditions can be waived if you get permission from the author.
|
||
Your fair use and other rights are in no way affected by the above.
|
||
</P
|
||
></DIV
|
||
></DIV
|
||
></BODY
|
||
></HTML
|
||
> |