MMBase 安装指南

Adrian Offerman


    
    

小幅修正

2006年6月25日

修订历史
修订版 0.3.52006-06-25修订者:AO
Tomcat 初始化脚本
修订版 0.3.42005-09-18修订者:AO
小幅修正
修订版 0.3.22005-01-25修订者:AO
MMBase 1.7.3, Java 1.5.0-01
修订版 0.3.12004-12-26修订者:AO
电子邮件模块
修订版 0.3.02004-12-25修订者:AO
MMBase 1.7.2, Tomcat 5.5.4, Java 1.5.0, MySQL Connector/J 3.0.16-ga, Jikes 1.22
修订版 0.2.62004-07-27修订者:AO
小幅添加
修订版 0.2.52004-02-28修订者:AO
Creative Commons 版权许可已调整
修订版 0.2.42004-01-22修订者:AO
Creative Commons 版权许可;小幅添加和修正
修订版 0.2.32003-12-26修订者:AO
小幅添加和修正
修订版 0.2.22003-12-20修订者:AO
版权已调整
修订版 0.2.12003-12-18修订者:AO
小幅修正
修订版 0.2.02003-12-15修订者:AO
添加 JK 2 连接器设置
修订版 0.1.02003-12-10修订者:AO
初始草案

本文档描述了在 Red Hat Linux 发行版上安装 MMBase 内容管理系统,使用 Tomcat 应用服务器,并将其与 MySQLApache 集成。


目录
1. 介绍
2. 安装
3. 安装 Java
4. 安装 Tomcat
5. 使用 IBMJikes 编译器替换 Tomcat 的默认 JSP 编译器 Jasper
6. 安装 ImageMagick
7. 安装 MMBase
8. 使用 MySQL Connector/JMMBase 连接到 MySQL
9. 安装 MMBase 附加应用程序
9.1. 安装 CloudContext Security 模块
9.2. 安装 Media 模块
9.3. 安装 Email 模块
10. 配置初始 MMBase 设置
11. 运行 MMBase
12. 使用 mod_jk2 连接 ApacheTomcat
13. 安装 Apache 反向代理作为 MMBase 服务器的前端
14. 在单个 Tomcat 服务器上安装更多 MMBase 服务器
15. 致谢
16. 贡献者
17. 修订历史
18. 免责声明
19. 版权

本文档描述了在 Red Hat Linux 发行版上安装 MMBase 内容管理系统,使用 Tomcat 应用服务器,并将其与 MySQLApache 集成。

版本:0.3.5; 2006年6月25日。

作者:Adrian Offerman

本文档的最新版本可以在以下位置找到:

  http://www.offerman.net/MMBase-Installation-HOWTO/

欢迎反馈至

  http://www.offerman.net/MMBase-Installation-HOWTO/feedback.html

如有疑问,请查看 MMBase 网站

  http://www.mmbase.org/

您可以在以下位置找到 MMBase 文档

  http://www.mmbase.org/docs/

祝你好运!


1. 介绍

MMBase 网站(www.mmbase.org):

MMBase 是一款具有强大多媒体功能的 Web 内容管理系统。MMBase 在荷兰拥有庞大的安装基础,并被荷兰的主要广播公司、出版商、教育机构、国家和地方政府使用。MMBaseJava 编写,是开源软件 (MPL),并且所有使用的标准都尽可能“开放”。该系统可以与所有主要的操作系统、应用服务器和数据库一起使用。”

不幸的是,MMBase 的安装记录并不完善。此外,在互联网上搜索安装线索并尝试技巧时,安装的细节经常发生变化。

本文档描述了在 Red Hat Linux 发行版上安装 MMBase 内容管理系统,使用 Tomcat 应用服务器,以及与 MySQLApache 集成。

它基于我们自己的经验,并为了社区的利益而编写。

这些是我们用来制作这个食谱的原料

以及之前


2. 安装

虽然我们在带有 Alan CoxEA/ACL 扩展的内核上安装了 MMBase,但这些功能不是先决条件。

我们假设您已经在服务器上安装和配置了 ApacheMySQL


3. 安装 Java

从以下位置下载最新版本的 Java 2 Development Kit (JDK)Run-time Engine (JRE) 以及随附的文档:

  http://java.sun.com

可以在下载页面上找到 JDKJRE 的安装说明和发行说明。

使 JDK 的二进制发行版可执行,并在新目录中提取

  
  chmod +x jdk-xxx.bin
  cd /usr/local/
  .../jdk-xxx.bin
  
  

通过将其解压缩到 JDK 目录中来安装 JDK 文档

  
  cd /usr/local/jdk-xxx/
  unzip .../jdk-xxx-doc.zip
  
  

更改 JDK 目录的所有权并使其可用为/usr/local/j2sdk/:

  
  chown -R root:root /usr/local/jdk-xxx/
  ln -s /usr/local/jdk-xxx /usr/local/j2sdk
  
  

如果您只需要 JRE,则安装将如下所示:

  
  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
  
  

Warning

使用 JDK 版本 1.5.0 会导致我们的 Tomcat 服务器不时崩溃

  
  #
  # 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]
  #
  
  
升级到版本 1.5.0-01 似乎解决了这些问题。

Note

对于(先前使用的)Linux 版本的 BlackDown Java 发行版

在以下位置为 BlackDown Java Development Kit 找到镜像:

  http://www.blackdown.org/java-linux/mirrors.html

您可以在那里下载最新版本的 J2 软件开发工具包 (SDK)运行时引擎 (RE)

确保选择适合系统上安装的 gcc 库的版本。 您可以通过键入以下内容找到当前安装的版本:

  
  rpm -q libgcc
  
  

Java Development Kit 的安装说明可在以下位置获得:INSTALL-j2sdk以及INSTALL-j2re.

使 SDK 的二进制发行版可执行,并在新目录中提取

  
  chmod +x j2sdk-xxx.bin
  cd /usr/local/
  .../j2sdk-xxx.bin
  
  

更改 J2SDK 目录的所有权并使其可用为/usr/local/j2sdk/:

  
  chown -R root:root /usr/local/j2sdk-xxx/
  ln -s /usr/local/j2sdk-xxx /usr/local/j2sdk
  
  

RE 执行相同的操作

  
  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
  
  

由于我们没有在我们的路径中安装 JDKJRE,因此我们必须添加bin/目录到我们的$PATH环境变量。 为了确保可以找到 Java 发行版和类,我们设置了$JAVA_HOME以及$CLASSPATH变量。

对于 Bourne shells,创建一个文件 /etc/profile.d/java.sh

  
  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
  
  

设置其所有权和访问权限

  
  chown root:root /etc/profile.d/java.sh
  chmod 755 /etc/profile.d/java.sh
  
  

C shells 执行相同的操作,通过创建文件 /etc/profile.d/java.csh

  
  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
  
  

并设置其所有权和访问权限

  
  chown root:root /etc/profile.d/java.csh
  chmod 755 /etc/profile.d/java.csh
  
  

现在,您的系统上的每个人都应该可以使用 JDK

Tip

您可以通过键入以下内容来测试 Java 引擎

  
  java -version
  
  

或创建一个文件Test.java:

  
  public class Test {
    public static void main(String[] args) {
      System.out.println("Hello world");
      }
    }
  
  

并测试编译器

  
  javac Test.java
  java Test
  
  


4. 安装 Tomcat

Apache Jakarta 网站下载 Tomcat 的二进制发行版

  http://jakarta.apache.org/tomcat/

如果您不想以 root 身份运行 Tomcat 守护进程,请创建一个新的用户/组 tomcat(首先通过检查文件确保您使用的 UIDGID 仍然可用/etc/passwd以及/etc/group):

  
  groupadd -g 220 tomcat
  useradd -u 220 -g tomcat -c "Tomcat" -r -d /usr/local/tomcat -s "/sbin/nologin" tomcat
  
  

Warning

您真的不应该使用 root 帐户来运行 Tomcat 守护程序; (使用 Tomcat 版本 4.1.27)我们发现这允许 MMBase admin 用户将他的站点的备份转储写入系统上的任何位置。

<TODO:是否有更好的解决方案?>

在新目录中提取 Tomcat 发行版

  
  cd /usr/local/
  tar -zxvf .../jakarta-tomcat-xxx.tar.gz
  
  

Note

版本 4.1.27 附带了一个热修复

  
  cd /usr/local/jakarta-tomcat-xxx/
  tar -zxvf .../xxx-hotfix-xxx.tar.gz
  
  

更改 Tomcat 目录的所有权并使其可用为/usr/local/tomcat/:

  
  chown -R tomcat:tomcat /usr/local/jakarta-tomcat-xxx
  ln -s /usr/local/jakarta-tomcat-xxx /usr/local/tomcat
  
  

打开防火墙,允许 Web 访问 Tomcat 服务器,需要在以下文件中添加规则:/etc/sysconfig/iptables:

  
  -A RH-Lokkit-0-50-INPUT -p tcp -m tcp --dport 8080 --syn -j ACCEPT
  
  

你需要重启系统才能使该规则生效,或者重启 iptables 防火墙。

  
  service iptables restart
  
  

Tip

由于(某种奇怪的原因)某些网络管理员只允许出站 Web 连接到 TCP 端口 80,因此可能有人无法通过 端口 8080 访问你的 Tomcat (和 MMBase) 服务器。在下面 我们将解释如何安装 JK 2 映射或在 Apache 中使用反向代理,以便可以通过 Apache Web 服务器在 端口 80 访问 TomcatMMBase。 除了端口问题,这样做的好处是你可以使用 Apache 来管理你的 SSL 连接,并为 TomcatMMBase 使用现有的 Apache 日志和统计功能。

如果你决定使用 Apache 作为 TomcatMMBase 服务器的前端,则无需在防火墙中打开 端口 8080

要运行 Tomcat,请设置$CATALINA_HOME环境变量

  
  CATALINA_HOME=/usr/local/tomcat
  
  

并启动它

  
  /usr/local/tomcat/bin/startup.sh
  
  

现在你可以通过以下地址访问 Tomcat 的主页(替换<hostname>为你的主机名):

  
  http://<hostname>:8080/
  
  

这应该会显示 Tomcat 欢迎屏幕。

再次关闭:

  
  /usr/local/tomcat/bin/shutdown.sh
  
  

由于我们希望自动化 Tomcat 服务器的启动和关闭,我们创建一个文件/etc/rc.d/init.d/tomcat来为我们执行此操作。

  
  #!/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
  
  

设置其所有权和访问权限

  
  chown root:root /etc/rc.d/init.d/tomcat
  chmod 755 /etc/rc.d/init.d/tomcat
  
  

并将此 init 脚本添加到 chkconfig

  
  chkconfig --add tomcat
  chkconfig tomcat on
  
  

Tip

你可以使用 Tomcat 包附带的脚本,而不是创建自己的 init 脚本:/usr/local/tomcat/bin/catalina.sh。确保在此脚本的开头设置 Tomcat 环境。或者创建一个短的 init 脚本来调用原始的 Tomcat init 脚本。

请参阅 如何在 Linux 中将 Tomcat 作为守护进程启动?

Tip

要在同一系统上安装两个(甚至更多)版本的 Tomcat 服务器,请通过编辑配置文件来增加第二个服务器的 端口 号(例如,增加 10):/usr/local/tomcat55/conf/server.xml:

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

按照上述第一个服务器的步骤完成第二个 Tomcat 服务器的安装,使用调整后的目录和文件名。


5. 使用 IBMJikes 编译器替换 Tomcat 的默认 JSP 编译器 Jasper

由于 IBMJava 编译器 Jikes 的性能优于 Tomcat 自己的 JSP 编译器 Jasper,因此建议安装 Jikes 代替。

IBM 的研究网站下载 Jikes 的源代码:

  http://jikes.sourceforge.net/

解压并编译 Jikes

  
  ./configure --prefix=/usr/local/jikes
  make
  make check
  make install
  
  

检查对以下选项的支持:-encoding选项

  
  /usr/local/jikes/bin/jikes -help
  
  

要使 Jikes 以与 Jasper 兼容的方式输出其错误消息,请将以下$CATALINA_OPTS环境变量添加到/etc/rc.d/init.d/tomcat:

  
  export CATALINA_OPTS="-Dbuild.compiler.emacs=true"
  
  

Tip

如果你收到一条错误消息,指出 Jikes 无法使用 UTF8 编码,请添加以下选项:

  
  -DjavaEncoding=ISO-8859-1
  
  

通过将以下内容添加到/usr/local/tomcat/conf/web.xml:

  
  <init-param>
      <param-name>compiler</param-name>
      <param-value>jikes</param-value>
  </init-param>
  
  

使 Jikes 成为 TomcatJSP 编译器:/usr/local/tomcat/conf/web.xml中输入 Jikes 的完整路径似乎不起作用(版本 4.1.27),因此请确保 jikes 程序在你的路径中可用:

  
  ln -s /usr/local/jikes/bin/jikes /usr/local/bin/jikes
  
  


6. 安装 ImageMagick

MMBase 使用 ImageMagickconvert 工具来构建和转换其图像。

ImageMagick 已经是 Red Hat 发行版的一部分。 使用以下命令检查其可用性:

  
  rpm -q ImageMagick
  
  

如果你的系统上没有 ImageMagick,请使用 up2date 安装它:

  
  up2date
  
  

或者从 Red Hat Network 下载它:

  https://rhn.redhat.com/

并手动安装它:

  
  rpm -ihv ImageMagick-xxx.rpm
  
  


7. 安装 MMBase

从以下位置下载 MMBase 的二进制发行版,以及你需要的其他应用程序(即 CloudContext SecurityMediaEmail)(请参见下一节):

  http://www.mmbase.org/ --> Download --> Releases

Warning

MMBase 版本 1.7.2 包含一个严重的错误,导致编辑向导出现问题。 1.7.3 版本包含此问题的错误修复。

确保你选择适用于系统上安装的 Java 2 JDK 的正确版本。 你可以通过键入以下命令找到当前安装的版本:

  
  java -version
  
  

解压 MMBase 的二进制发行版,将其复制到 Tomcat 目录中,并更改 MMBase 目录的所有权:

  
  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/
  
  

Warning

Tomcat 版本 5 上安装 MMBase 版本 1.7 导致版本不兼容。

  
  FATAL org.mmbase.servlet.MMBaseStartThread -
      Could not find the MMBase module!Class
      javax/servlet/http/HttpServletResponse violates loader constraints
  
  

我们必须禁用 RMMCI 库才能使此安装正常运行。

  
  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
  
  

对于在 Tomcat 版本 5 上运行的 MMBase 版本 1.7,请启用 Xerces 库:

  
  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
  
  
否则会出现致命错误,例如:
  
  FATAL org.mmbase.servlet.MMBaseStartThread -
      Could not find the MMBase module!org/apache/xpath/XPathAPI
  
  

对于在 Tomcat 版本 4 上运行的 MMBase 版本 1.6,请将 Tomcat Xerces 库替换为 MMBase 附带的库:

  
  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
  
  

Tip

如果你不使用 Apache JK 2 映射或反向代理(参见下面的 )作为 MMBase 服务器的前端,则可以添加到文件中:/usr/local/tomcat/conf/server.xml:

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

这将允许你使用以下地址访问你的 MMBase 服务器(替换<hostname>为你的主机名):

  
  http://<hostname>:8080/mmbase
  
  

而不是:

  
  http://<hostname>:8080/mmbase-webapp
  
  

检查 ImageMagick convert 工具是否在你的路径中:

  
  which convert
  
  

如果不在,请将其添加到:/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/applications/Resources/builders/images.xml。例如:

  
  <property name="ImageConvert.ConverterCommand">/usr/bin/X11/convert</property>
  
  

确保目录:/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/builders/applications可由 servlet 引擎用户写入(用于自动安装构建器)。

  
  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
  
  


8. 使用 MySQL Connector/JMMBase 连接到 MySQL

我们可以使用 MySQL Connector/JMMBase 连接到我们的 MySQL 数据库服务器。 这个用于 MySQLJDBC 驱动程序可以从以下位置下载:

  https://mysqlserver.cn/downloads/api-jdbc.html

JDBC 驱动程序复制到 MMBaselib/目录:

  
  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
  
  

通过编辑/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/jdbc.xml使其成为 MMBaseJDBC 驱动程序。 替换数据库名称(mmbase),用户(mmuser)和密码(mmpass)为你希望 MMBase 使用的数据库设置。

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

设置此配置文件的所有权和访问权限。 由于它包含你的数据库名称、用户名和密码,请确保其他用户无法读取此文件。

  
  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
  
  

现在创建你刚刚为 MMBase 定义的 MySQL 数据库:

  
  mysql -u root -p
  
  

  
  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;
  
  

将主机名(<hostname>)和域名(<domainname>)替换为你自己的主机名和域名,并将数据库名称(<mmbase>),用户(<mmuser>)和密码(<password>)替换为你刚刚在 JDBC 驱动程序配置文件中输入的值。

Tip

要快速清空你的 MySQL 数据库,即在你更新了 MMBase 配置或应用程序之后(替换数据库名称:<mmbase>为你自己的):

  
  mysqladmin -u root -p drop <mmbase>
  mysqladmin -u root -p create <mmbase>
  
  

Tip

如果你已经在使用相当多的 MySQL 连接(例如,用于通过和作为邮件守护程序和 Apache 服务器的后端进行身份验证),则 MySQL 服务器可能会耗尽连接(其最大数量默认为 100)。 然后 Tomcat 可能会简单地拒绝启动或在启动 MySQL 连接池时给出错误消息,或者你的 IMAPPOP 服务器在对其客户端进行身份验证时会出现问题。

你可以通过将以下内容添加到配置文件来增加到 MySQL 的最大连接数:/etc/my.cnf:

  
  [mysqld]
  set-variable = max_connections=200
  
  


9. 安装 MMBase 附加应用程序

随着 1.7 版本的发布,MMBase 被重构为更加模块化的结构。 开发人员决定从 MMBase 树中取出几个模块(即 CloudContext SecurityMediaEmail),并将它们作为单独的实体提供。 但是,目前 MMBase 根本没有模块接口。 因此,要使用这些附加应用程序,需要将库和其他文件放入安装树中,并且需要手动将配置添加到现有配置文件中。


9.1. 安装 CloudContext Security 模块

>来自 MMBase 网站 (www.mmbase.org):

"Cloud security 使用对象 mmbaseuser 来存储用于用户授权和身份验证的信息。 此安全实现的主要两个优点是,用户管理可以通过使用 Web 浏览器(而不是编辑文件系统上的文件)来执行,并且你的 MMBase 安装的用户可以作为云中的对象使用。 例如,可以创建用户组,这些用户组被允许执行某些任务。"

“上下文”是指一组权限,描述了您可以在此上下文中对 MMBase 对象执行的操作。 例如,您可以为站点的匿名访问者定义对上下文的读取权限,并且可以为站点的注册用户定义具有编辑权限的上下文。”

CloudContext Security 模块的库和其他文件移动到 MMBase 安装树中

  
  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/
  
  

保存文档文件以供以后参考

  
  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/
  
  

确保所有这些新文件也由您的 tomcat 用户拥有

  
  chown -R tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp
  
  

禁用 security 配置文件中的现有配置/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/security.xml:

  
  <!--
  <authentication class="org.mmbase.security.implementation.context.ContextAuthentication" url="context/config.xml" />
  -->
  ...
  <!--
  <authorization class="org.mmbase.security.implementation.context.ContextAuthorization" url="context/config.xml" />
  -->
  
  

并添加(来自web-app/WEB-INF/config/security/security.xml):

  
  <!--
  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="" />
  
  

Note

确保在以下内容之前包含上述配置<sharedsecret>声明,否则您将收到如下错误

  
  ERROR org.mmbase.util.XMLErrorHandler - security.xml line:71 column:12:
      The content of element type "security" must match "(authentication,authorization,sharedsecret)".
  
  


9.2. 安装 Media 模块

<待办事项>


9.3. 安装 Email 模块

Email 模块使您可以使用 SendMailJMSendMail 通过 MMBase 发送电子邮件。

Email 模块的库和其他文件移动到 MMBase 安装树中

  
  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/
  
  

保存文档文件以供以后参考

  
  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/
  
  

确保所有这些新文件也由您的 tomcat 用户拥有

  
  chown -R tomcat:tomcat /usr/local/tomcat/webapps/mmbase-webapp
  
  

编辑电子邮件配置文件/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/sendmail.xml(来自web-app/WEB-INF/config/modules/sendmail.xml):

  
  ...
  <status>active</status>
  ...
  <classfile>org.mmbase.applications.email.SendMail</classfile>
  ...
  
  

添加到 Tomcat 的根目录上下文(对于 Tomcat 版本 5,在 /usr/local/tomcat/conf/context.xml 中,对于 Tomcat 版本 4,在 /usr/local/tomcat/conf/server.xml 中)(将 <smtp.domain.tld> 替换为您的 SMTP 服务器的地址)

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

如果未能这样做,会导致致命错误

  
  FATAL org.mmbase.module.JMSendMail -
      JMSendMail failure: Name mail is not bound in this Context
  
  

Warning

Tomcat 版本 5 上运行的 MMBase 版本 1.7 中安装 Email 模块会导致致命错误

  
  FATAL org.mmbase.servlet.MMBaseStartThread -
  Could not find the MMBase module!javax/mail/Session
  
  


10. 配置初始 MMBase 设置

以下是一些 MMBase 的初始配置设置。

通过编辑以下内容更改管理员 admin 的默认密码 admin2k/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/context/config.xml:

  
  <user name="admin" context="admin">
      <identify type="name/password" rank="administrator">admin2k</identify>
  </user>
  
  

此外,注释掉或删除用户 foo/bar

由于此文件包含您的管理员密码,请确保其他用户无法读取它

  
  chmod 640 /usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/context/config.xml
  
  

要使用 MMBase 构建器 mmbaseuser(使用 MySQL 数据库中的 mmbaseuser 表)进行用户身份验证,请设置authentication配置文件的类/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/security.xml

  
  <authentication class="org.mmbase.security.implementation.cloud.Authenticate" url="" />
  
  

并设置authorization类到

  
  <authorization class="org.mmbase.security.implementation.cloud.Verify" url="" />
  
  

在同一文件中,更改用于与远程构建器(在其他 MMBase 服务器上)通信的共享密钥

  
  <sharedsecret>yoursharedsecret</sharedsecret>
  
  

Tip

您可以通过编辑以下内容来设置 MMBase 的语言/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/mmbaseroot.xml:

  
  <property name="language">en</property>
  
  

Tip

您可以通过编辑以下内容来设置 SMTP 网关/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/modules/sendmail.xml:

  
  <property name="mailhost">localhost</property>
  
  


11. 运行 MMBase

现在您可以启动 Tomcat

  
  service tomcat start
  
  

并通过以下方式访问您的新 MMBase 服务器(替换<hostname>为你的主机名):

  
  http://<hostname>:8080/mmbase-webapp/
  
  

如果所有您刚刚做的事情都成功了,您应该会看到 MMBase 欢迎屏幕,您可以在其中更改设置、查看演示以及安装示例。

当要求登录时,使用名称 admin 和您刚刚在 security 配置文件中设置的密码/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/security/context/config.xml.

MMBase 用户(即前端开发人员)通常会将他们的 Web 文件添加到/usr/local/tomcat/webapps/mmbase-webapp/目录。 定义内容的应用将放置在/usr/local/tomcat/webapps/mmbase-webapp/WEB-INF/config/applications/目录。

Caution

Tomcat 消耗的 CPU 和内存资源远多于 Apache。 确保您的 Tomcat/MMBase 服务器系统满足这些要求。

Tip

在我们的案例中,关闭(或重新启动)Tomcat 服务器(版本 1.6)总是会留下一个最后的进程在运行。 如果您遇到同样的问题,请在再次启动它之前手动终止该进程

  
  [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]# 
  
  

Tip

您可以保存原始index.jsp文件,将其重命名为mmbase.jsp:

  
  mv -i /usr/local/tomcat/webapps/mmbase-webapp/index.jsp \
      /usr/local/tomcat/webapps/mmbase-webapp/mmbase.jsp
  
  

这将允许您始终通过以下方式访问原始 MMBase 主页(替换<hostname>为你的主机名):

  
  http://<hostname>:8080/mmbase-webapp/mmbase.jsp
  
  

如果出现任何问题,请检查目录中的 TomcatMMBase 日志文件/usr/local/tomcat/logs/以获取提示。

>在这里,我们参考 MMbase 网站上的文档来完成您的配置并开始使用 MMBase

  http://www.mmbase.org/docs/


12. 使用 mod_jk2 连接 ApacheTomcat

由于(出于某种奇怪的原因)某些网络管理员仅允许将出站 Web 连接到 TCP 端口 80,因此可能有人无法通过 端口 8080 访问您的 Tomcat(和 MMBase)服务器。 您可以在 Apache 中安装 JK 2 映射或反向代理,以便可以通过 Apache Web 服务器在 端口 80 访问 TomcatMMBase。 除了端口问题外,这还具有以下优点:您可以使用 Apache 来管理您的 SSL 连接,并将您现有的 Apache 日志和统计设施用于 TomcatMMBase

在这里,我们描述了连接 ApacheTomcatJK 2 连接器的安装和配置。 通过这种方式,可以将 Tomcat 路径映射到 Apache 中。

>来自 JK 2 连接器网站(http://jakarta.apache.org/tomcat/tomcat-4.1-doc/config/jk2.html):

JK 2 连接器元素代表一个连接器组件,该组件通过 AJP 协议与 Web 连接器通信。 这用于您希望将 Tomcat 4 无形地集成到现有(或新的)Apache 安装中的情况,并且您希望 Apache 处理 Web 应用程序中包含的静态内容,和/或利用 ApacheSSL 处理。 在许多应用程序环境中,这将导致比使用 HTTP/1.1 连接器Tomcat 独立运行您的应用程序更好的整体性能。 但是,唯一可以确定它是否为您的应用程序提供更好性能的方法是两种方式都尝试一下。”

如果您只需要一个简单的配置 - 通常是一个与您的 Apache server 位于同一系统上的单个 Tomcat 服务器 - Apache 反向代理可能是更简单的解决方案。 虽然这些在互连功能方面更简单,但反向代理在摆弄您的路径和其他选项方面提供了更大的灵活性。 下一节介绍了 Apache 反向代理的配置。

但是,如果您计划在 Apache 前端后面构建或发展到多个 Tomcat 服务器的集群,或者构建高性能系统,则部署 JK 2 连接器是最佳选择。

Apache Jakarta 网站下载 JK 2 连接器的源代码

  http://jakarta.apache.org/site/sourceindex.cgi
  

提取并编译 JK 2 连接器

  
  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
  
  

确保您的$JAVA_HOME环境变量已设置,并且 Java 二进制文件位于您的$PATH或将此选项添加到您的 ./configure 命令中

  --with-java-home=/usr/local/j2sdk
  

复制模块文件mod_jk2.so以及jkjni.soApachemodules/目录

  
  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
  
  

将示例配置文件复制到workers2.propertiesApache 的配置目录

  

  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
  
  

并根据您自己的需要进行调整。

这是一个简单的配置,应该可以让您启动并运行

  
  [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
  
  

此配置的大部分都是相当标准的。 最后一个uri声明(替换<hostname>与您的主机名),这就是全部的内容; 它将所有以/mmbase-webapp/开头的客户端请求从 Apache 映射到您的 Tomcat 服务器。

Note

当我们进行虚拟主机映射时,不知何故,一般映射不再适用于此虚拟主机(同一 IP 地址上的其他虚拟主机没有任何问题)。 我们必须为此虚拟主机显式添加一般映射才能使其再次工作。 这是一个错误? 还是 Apache 实现基于名称的虚拟主机的方式的结果?

所以现在,您通过 Tomcat 作为(替换<hostname>为你的主机名):

  
  http://<hostname>:8080/mmbase-webapp/
  
  

访问的同一个应用程序将通过 Apache 作为

  
  http://<hostname>/mmbase-webapp/
  
  

Important

提供。 仅支持基于名称的虚拟主机。 确保将虚拟主机名(指向同一(Web)服务器)添加到/etc/hosts文件(替换<hostname>为你的主机名):

  
  192.168.3.17 <hostname>
  
  

,否则事情将无法正常工作(运行 DNS 在这里是不够的!)。

如果您的 Apache 安装仅服务于单个网站,您可以省略主机名

  
  [uri:/mmbase-webapp/*]
  info=MMBase
  
  

这将在您的 Apache 安装的每个地址和站点上提供映射的/mmbase-webapp/目录。

Note

使用 JK 连接器版本 2,所有配置设置都将位于workers2.properties文件中。 即使 Tomcat 带有自己的 JK 2 配置文件/usr/local/tomcat/conf/jk2.properties,只要您坚持标准的 端口 8009,就没有必要编辑此文件。

如果您确实必须编辑此文件(例如,当更改端口时),请确保在您的 Tomcat 服务器未运行时执行此操作;该文件由 Tomcat 本身自动编辑。

mod_jk2 模块添加到您的 Apache 配置后(在文件/etc/httpd/conf/httpd.conf中或在新文件jk2.conf中,位于 Apache 配置目录/etc/httpd/conf.d):

  
  # Load mod_jk2 module
  LoadModule jk2_module modules/mod_jk2.so
  
  

  
  chown root:root /etc/httpd/conf.d/jk2.conf
  chmod 644 /etc/httpd/conf.d/jk2.conf
  
  

中),您现在可以重新启动 Apache 并尝试您的新入口:(替换<hostname>为你的主机名):

  
  http://<hostname>/mmbase-webapp/
  
  

要检查 JK 2 连接器的状态(替换<hostname>为你的主机名):

  
  http://<hostname>/jkstatus/
  
  

Tip

您可以在/usr/local/apache/conf/workers2.properties中通过(重新)加载 JK 状态页面来重新读取配置。 这允许您添加新的映射,而无需重新启动 Apache 或让它重新加载其配置。 但是,无法以这种方式删除现有映射,并且需要 Apache 重新配置。

虽然也可以将 JK 2 配置(以略有不同的形式)放置在您的 Apache 配置文件中,但这是一个坚持workers2.properties设置的好理由。

Important

为了保护对 JK 状态页面的访问,请向 Apache 配置添加身份验证声明。 例如:

  
  <Location /jkstatus/>
  AuthType Basic
  AuthName "JK 2 Connector Status"
  AuthUserFile /etc/httpd/conf/users
  AuthGroupFile /etc/httpd/conf/groups
  Require group admin
  </Location>
  
  

这将提示从 admin 组的用户登录。

如果出现任何问题,请检查 JK 2 连接器 日志消息,这些消息将被写入您的 Apacheerror_log.

Tip

如果 JK 2 连接器 连接到 Tomcat 时遇到困难,请检查 Tomcat 是否确实在 8009 端口上可用

  
  netstat -tln
  
  

映射到 Tomcat 的访问请求将被记录在access_log的以及error_logApache 的。

有关workers2.properties配置的更多信息,请查看以下文档:

  http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/jk2/configwebcom.html
  

在那里,您将阅读到设置更多(远程)Tomcat 工作器、将这些工作器分组到负载均衡池中、设置 RPC 通道、使用 Unix 套接字、使用 Java Native Interface (JNI) 直接(进程内)与 Tomcat 互连、设置备用记录器以及优化您的超时设置。

Tip

在服务普通内容文件方面,ApacheTomcat 效率更高。您可以将 ApacheTomcat 文档目录都指向文件系统上的同一目录,并且只转发对 JSP 页面和 Java Servlets 的请求。 例如 (在workers2.conf):

  
  #[uri:/examples/servlet/*]
  #info=Prefix mapping

  #[uri:/examples/*.jsp]
  #info=Extension mapping
  
  

中)。但是,现在您需要保护 TomcatWEB-INF/目录(以及您不希望访问者访问的其他目录和文件),防止它们被 Apache 提供服务。 例如 (在 Apachehttpd.conf):

  
  <Location "/examples/WEB-INF/">
  AllowOverride None
  deny from all
  <Location>
  
  

中)。另外,请注意,这样的设置会绕过您可能在文件/usr/local/tomcat/webapps/examples/WEB-INF/web.xml.

中配置的任何安全约束。您可以在以下位置找到有关 JK 2 连接器 的更多通用信息:

  http://jakarta.apache.org/tomcat/tomcat-4.1-doc/jk2/
  


13. 安装 Apache 反向代理作为 MMBase 服务器的前端

安装 Apache 反向代理是使用 Apache 作为 Tomcat 服务器前端的 JK 2 连接器 的一个简单替代方案。

添加到您的 Apache(虚拟)服务器配置中(替换<hostname>为你的主机名):

  
  ProxyPass /tomcat/ http://<hostname>:8080/
  ProxyPassReverse /tomcat/ http://<hostname>:8080/
  ProxyPass /mmbase/ http://<hostname>:8080/mmbase-webapp/
  ProxyPassReverse /mmbase/ http://<hostname>:8080/mmbase-webapp/
  
  

这允许您访问您的 Tomcat 服务器,如下所示(替换<hostname>为你的主机名):

  
  http://<hostname>/tomcat/
  
  

以及您的 MMBase 服务器,如下所示(替换<hostname>为你的主机名):

  
  http://<hostname>/mmbase/
  
  

Caution

我们的 MMBase 1.7 版本在其生成的网页中使用了绝对目录路径。 为了使反向代理正常工作,Apache 代理路径必须相同(替换<hostname>为你的主机名):

  
  ProxyPass /mmbase-webapp/ http://<hostname>:8080/mmbase-webapp/
  ProxyPassReverse /mmbase-webapp/ http://<hostname>:8080/mmbase-webapp/
  
  


14. 在单个 Tomcat 服务器上安装更多 MMBase 服务器

如果您想支持更多 MMBase 实例,例如,如果您想让更多或所有用户都可以使用 MMBase,您可以创建多个 MMBase 安装,并让它们都在同一台 Tomcat 服务器上运行。

在用户的 home 目录中安装 MMBase<用户>执行以下步骤之前的所有步骤:

确保用户和 Tomcat 服务器都可以访问 MMBase 安装。

  
  chown -R <user>:tomcat /home/<user>/mmbase/
  
  

确保目录:/home/<用户>/mmbase/WEB-INF/config/builders/applications可被 servlet 引擎用户写入和访问(用于自动安装构建器)。

  
  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/
  
  

现在,此用户的 home 目录也必须可供 Tomcat 服务器访问。您可以将用户 home 目录的组所有者更改为 tomcat 用户组。

  
  chown -g tomcat /home/<user>/
  
  

或者,如果您不想这样做,请使用访问控制列表 (ACL's) 来完成相同的操作。

  
  setfacl -m u:tomcat:r-x /home/<user>/
  
  

最后,将新的 MMBase 安装链接到 Tomcat 服务器:

  
  ln -s /home/<user>/mmbase /usr/local/tomcat/webapps/mmbase-<user>
  
  

并重新启动 Tomcat

  
  service tomcat restart
  
  

这将使此用户的 MMBase 安装可以通过以下方式访问:

  
  http://<hostname>:8080/mmbase-<user>/
  
  

同样,您可以像我们之前所做的那样,在 Apache 中设置 JK 2 映射或反向代理。

Important

为了在单个 Tomcat 服务器上运行多个 MMBase 实例,请确保增加可用内存资源,即通过添加到$CATALINA_OPTS/etc/rc.d/init.d/tomcat:

  
  -Xms64m -Xmx512m
  
  


15. 致谢

本文档是卡斯珀·乔斯特·艾克霍夫(Casper Joost Eyckelhof)(荷兰特温特大学)撰写的 "在 Debian Woody 上安装 MMBase Mini-HOWTO" 的后续。


16. 贡献者


17. 修订历史


18. 免责声明

本文档按 "原样" 提供,不提供任何明示或暗示的保证。 您需要自行承担使用这些想法、概念、脚本、示例、帮助和任何其他信息的风险。

提及特定产品及其各自的制造商不应被视为对制造商的认可或商业宣传。


19. 版权

编译,版权 � 2003 - 2006,作者 Adrian Offerman

本文档已获得 Creative Commons Attribution-ShareAlike 版权许可的许可。

这允许您复制、分发、显示和打印此作品,并制作派生作品,以及将该作品用于商业用途,前提是您注明原始作者的姓名,并且如果您更改、转换或基于此作品进行构建,您只能根据与此许可相同的许可分发最终作品。 对于任何重用或分发,您必须向其他人明确说明此作品的许可条款。 如果您获得作者的许可,可以放弃这些条件中的任何一个。 您的合理使用和其他权利绝不受上述影响。