`
wangyi878750
  • 浏览: 185019 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

按照官方教程整合Apache+Tomcat+OpenCms

阅读更多

按照下面的文档做了配置,在自己机器上很简单就OK了.先写出来,还有 配置方法.

实现环境:
XP+Apache2.2.8+Tomcat5.5+OpenCms7.0.4+Mysql4.1

[王毅原创,转载注明]

使用 Apache 的 mod_proxy 模块来去除站点url中的两个"/opencms/opencms"

以下内容介绍如何集成 Apache httpd, Apache Tomcat 和 OpenCms 7 来实现如下效果:

  • 所有静态资源 (e.g. images or binaries) 直接由 Apache 服务器处理响应
  • OpenCms 中的动态内容通过 Tomcat 处理响应
  • 可以去掉OpenCms站点 url 中通常出现的 /opencms/opencms/ 前缀

以下配置在下面环境中测试通过:

  • Apache httpd 2.0.54 (基本上大部分稳定版本的Apache httpd 2.0 以及2.2[譬如最新的2.2.8]都可以正常工作,  1.3 及其更低的版本就不行了)
  • Apache Tomcat 5.5.7 (其他支持 CoyoteConnector 连接器的都应该可以正常运行)
  • OpenCms 7(最新7.0.4完全没有问题)

请注意: 安装之前确定所用的域名可以在机器上正确解析.否则可能配置不成功.

本文档假设安装环境如下:

  1. OpenCms 服务器域名为 www.wangyi.com
  2. Tomcat的安装目录为 D:\Tomcat5.5
  3. Tomcat 和 Apache 安装在一个硬件机器上

请注意: 请在自己测试的时候将域名和安装目录做正确替换.

请注意: 本文不涉及OpenCms的静态导出设置,需要请参考另外的文档.

步骤 1: 安装OpenCms

D:\Tomcat5.5\webapps\ 目录下以 ROOT 安装OpenCms. .

重要: 确保Tomcat下没有名为 opencms/ 的项目.

  1. 删除或者重命名 Tomcat 默认 web 应用 ROOT/.
  2. 修改 opencms.warROOT.war
  3. 重启 Tomcat ,然后开始基本安装.

譬如在这里可以在浏览器输入 http://www.wangyi.com:8080/setup 来进行安装.

这一步完成以后,可以正确安装并能登录OpenCms系统. 但是你会发现一些图片或者CSS等静态资源可能丢失.不要紧, 可以在下一步中解决这个问题.

步骤 2: 配置 OpenCms

在 D:\Tomcat5.5\webapps\ROOT\WEB-INF\config\opencms-importexport.xml 配制文件中,找到 staticexport/rendersettings/..prefix 节点,并除去其中的 ${SERVLET_NAME} 变量. 经过编辑,内容应该如下:

  <rendersettings>
<rfs-prefix>${CONTEXT_NAME}/export</rfs-prefix>
<vfs-prefix>${CONTEXT_NAME}</vfs-prefix>
<userelativelinks>false</userelativelinks>
<exporturl>http://127.0.0.1:8080${CONTEXT_NAME}/handle404</exporturl>
...
</rendersettings>

在 D:\Tomcat5.5\webapps\ROOT\WEB-INF\config\opencms-system.xml 配制文件中, 找到 system/sites 节点并配置站点如下:

  <sites>
<workplace-server>http://www.wangyi.com<workplace-server>
<default-uri>/sites/default/</default-uri>
<site server="http://www.wangyi.com" uri="/sites/default/"/>
</sites>

在 OpenCms 配置中要做的就只有这两部分了,其他的需要交给Apache和Tomcat了.

注意: 尽管作出了上述修改, 但是经过配置 Tomcat 和 Apache 以后,整个站点才能正确运行.

指定 Aliases

当然,如果又多个域名指向一个站点,可以添加 alias  节点. 注意的是,每个域名只能是唯一的指向一个站点. 譬如,如果我要让域名 www.lixiaoyan.com 以及 www.myopencms.cn 也指向这个站点,那么只要这几个域名都可以正确解析,就都可以访问同一个站点:

<site server="http://www.wangyi.com" uri="/sites/mysite/">
<alias server="http://www.lixiaoyan.com"/>
<alias server="http://www.myopencms.cn"/>
</site>

步骤 3: 配置 Tomcat

打开 D:\Tomcat5.5\conf\ 目录下的文件 server.xml . 建议修改之前做备份.

修改之后,内容应该如下:

<Server port="8005" shutdown="SHUTDOWN" debug="0">                    
<Service name="Tomcat-Standalone">

<!-- Define a connector for the "public visible" server name -->
<Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
port="8081" minProcessors="5" maxProcessors="75"
proxyName="www.wangyi.com" proxyPort="80"
useBodyEncodingForURI="true" enableLookups="true" redirectPort="8443"
acceptCount="100" debug="0" connectionTimeout="20000"
useURIValidationHack="false" disableUploadTimeout="true" URIEncoding="utf-8" />

<Engine name="Standalone" defaultHost="localhost" debug="0">
<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
<!-- You can change "unpackWARs" and "autoDeploy" to false after the installation is finished -->
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
</Host>
</Engine>
</Service>
</Server>

你可以修改你的 server.xml 时候,把这段代码复制过去,把 www.wangyi.com 修改为你的站点名称.

以上就是 Tomcat 做的全部配置.

这里需要注意的地方有三处:

1.建议设置 useBodyEncodingForURI 为utf-8. 否则, 页面传参使用默认 ISO-8859-1 编码,可能会导致某些时候乱码.

2.Service的name 属性的值变成了"Tomcat-Standalone"

3.8080端口的 Connector 增加了 className="org.apache.coyote.tomcat4.CoyoteConnector"属性.

注意: You must first finish the Apache configuration described in the next step to check if Tomcat and OpenCms work correctly.

步骤 4: 配置  Apache

在我的Apache配置目录 D:\Apache2\conf\ 下找到 httpd.conf (当然也可能是其他配置文件,关键是配置你这个OpenCms站点的文件). 同样,修改之前建议备份.

首先,确认以下三个模块被加载.

LoadModule alias_module modules/mod_alias.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

然后配置 <VirtualHost> . 在这个例子中增加如下 <VirtualHost> 节点:

<VirtualHost *:80>
<Directory "D:\Tomcat5.5\webapps\ROOT\">
Order allow,deny
Allow from all
</Directory>
ServerName www.wangyi.com
ServerAdmin webmaster@alkacon.com
DocumentRoot "D:\Tomcat5.5\webapps\ROOT\"
ErrorLog logs\error.log

# Log only non-redirect requests in "normal" log file
SetEnvIf Request_URI "\/opencms\/*" redirect
CustomLog logs/localhost-access.log common env=!redirect

ProxyPass /opencms/ !
RedirectPermanent /opencms/ http://www.wangyi.com/

ProxyPass /resources/ !
ProxyPass /export/ !

ProxyPass / http://localhost:8081/opencms/
ProxyPassReverse / http://localhost:8081/opencms/
</VirtualHost>

同样,你用的时候也要正确修改域名和 DocumentRoot  !

启动 Tomcat 和 Apache 就可以登录OpenCms系统了.就象下面的截图一样:

怎么样?要不您也来试试吧?


我的相关日志:

2008-04-03 | 按照官方教程整合Apache+Tomcat+OpenCms
2007-10-16 | Apache Tomcat Connection and Failover-Cluster
2007-03-23 | [转]OpenCms for MySql 安装图解
2007-03-23 | [转][图文]OpenCms VFS plugin for Eclipse 安装与使用
2008-03-21 | OpenCms的官方在线演示站点
2008-03-21 | <cms:contentload>标签的使用
2008-03-18 | 来自 Alkacon Software GmbH 的邮件
2008-02-05 | 在OpenSuse下安装OpenCms的时候如何去掉路径中的opencms
2007-12-14 | <cms:editable>标签的使用
2007-12-13 | <cms:contentshow>标签的使用
2007-12-12 | <cms:contentloop> 标签的使用
2007-12-11 | <cms:contentinfo>标签的使用
2007-12-10 | <cms:contentcheck>标签的使用

分享到:
评论

相关推荐

    opencms去掉两个tomcat

    主要讲述在opencms下apache和tomcat配置,去掉两个opencms

    java+tomcat环境

    这是我opencms10.5.3配置的java环境,仅供联系,如有侵权请及时告知

    opencms用户指南 + 源码

    opencms用户指南+源码 opencms用户指南+源码 opencms用户指南+源码

    opencms9 java api

    opencms 中文网提供的java api 文档包

    OpenCMS教程

    很好的OpenCMS教程,原版不带目录导向,我加入常用的目录导向,希望方便大家

    opencms中文教程 手册 指南 汉化

    opencms中文教程 手册 指南 汉化

    OpenCms7Development+src

    OpenCms7Development+src 深入理解OpenCms和进行二次开发的好资料。。。

    OpenCms 8.0.2.zip

    OpenCms可以非常好的运行在一个完全的开源环境中(例如:Linux、Apache、Tomcat、MySQL). 当然,也可以很好的运行于商业环境下(例如:Windows NT、IIS、BEA Weblogic、Oracle DB)。 功能特色: OpenCms是真正...

    OpenCMS内容管理系统入门教程

    OpenCms是一个专业级别的开源网站内容管理系统。OpenCms可以非常容易的帮助建立和管理复杂的网站而无需专业的HTML知识。当使用一个复杂的模板引擎来规划站点,它 提供一个类似于我们熟知的office应用的所见即所得...

    OpenCms 8.0.0 SRC.zip

    OpenCms可以非常好的运行在一个完全的开源环境中(例如:Linux、Apache、Tomcat、MySQL). 当然,也可以很好的运行于商业环境下(例如:Windows NT、IIS、BEA Weblogic、Oracle DB)。 功能特色: OpenCms是真正...

    OpenCms创建网站过程图解——献给OpenCms的初学者们

    OpenCms创建网站过程图解——献给OpenCms的初学者们,一起学习吧

    opencms中文教程 手册 指南 汉化 2

    opencms中文教程 手册 指南 汉化 part2

    opencms

    opencms guide

    opencms教程.rar

    从网上找到的一个教程!

    换种方式整合Opencms和Spring+Hibernate

    NULL 博文链接:https://andyj.iteye.com/blog/269580

    opencms的flash教程

    一个简单的教程,能够让你了解cms到底是个什么东西!初学者的好东西!

    opencms8官方文档中文版

    opencms8官方文档中文版,从资源到建站整个过程介绍

    Eclipse中引用opencms

    由Alkacon公司发起和维护,OpenCms完全基于Java和XML技术实现,内容维护方便、直观,类型定义简单、快速,基于Jsp的模板机制强大、灵活,OpenCms扩展机制可以很好的与流行的Java框架整合到一起,如Struts、Hibernate...

    OpenCMS内容管理入门指南

    OpenCMS内容管理入门指南,对使用开源的基于java、xml技术OpenCMS构建网站做了详细的说明

    opencms 汉化组件

     1、从官方网站(http://www.opencms.org)下载OpenCms8.0.1 安装;  2、安装成功后登录OpenCms,在view中选择Administration接着执行:Module Management--&gt;Import Module with HTTP,选择org.opencms.locale.zh_...

Global site tag (gtag.js) - Google Analytics