opencms中多站点的配置
opencms官方文档中有一篇关于整合opencms,Apache,tomcat管理多站点的文章--“Integrating OpenCms, Tomcat and the Apache webserver with mod_proxy”,这些天按照文档说明自己动手配置了一下,现在把心得体会写出来,以供opencms的研究者,使用者参考,批评指正。
官方文档的主旨是:运用Apache的Mod_proxy实现opencms的动态静态资源分离,由apache直接存储静态资源,tomcat处理请求中的动态资源,并去除前缀/opencm/opencms,我的配置测试环境是:
tool | version |
gentoo linux | 2.6 |
apache | 2.0 |
tomcat | 5.5 |
mysql | 4.1 |
opencms | 6.2 |
在作任何文件的配置修改之前,请最好作个备份!配置步骤如下:
1. 在你的域名服务中设置你的域名,稍后安装及配置过程中将会用到。我的域名是在/etc/hosts 文件中设置的:
127.0.0.1 localhost localhost.localdomain 192.168.0.136 www.lxbing.com 192.168.0.136 ww.example.com 192.168.0.136 www.doc.com |
2. 清除tomcat下/webapps目录中的全部应用,关闭tomcat,把opencms.war包改为ROOT.war,拷入 /webapps目录,因为tomcat默认的应用是ROOT,这样就去除了路径中的第一个opencms。启动tomcat,按步骤安装 opencms。 可以通过http://www.lxbing.com:8080/setup 也可以用http://Ip:8080/setup
进行安装。
3. 安装完毕后你可以通过http://Ip:8080/opencms/system/login进入opencms的工作区,可以看到还有一个/opencms存在于路径中。
找到 ${TOMCAT_HOME}/webapps/ROOT/WEB-INF/config/opencms-importexport.xml文件,编辑节点 staticexport/rendersettings 中的部分内容,去除上下文环境,因为现在opencms已经作为tomcat的默认应用了,说以它的默认上下文环境就是根目录,编辑后的节点中的相关内容为:
|
4. 修改${TOMCAT_HOME}/webapps/ROOT/WEB-INF/config/opencms-system.xml 文件,配置opencms中的多个站点,在节点system/sites 中设置需要配置的站点(所谓站点就是opencms中的microsite文件类型),由于测试用的opencms是新安装的,所以我以oepncms中 的/default/,/demopages/,/alkacon-documentation/ 为例,具体配置如下:
uri="/sites/default/demopages/"/> uri="/sites/default/alkacon-documentation/"/>
|
注意:在这种配置中,所以站点的 uri 都必须在 /site/default/目录下,否则,会报错,我没尝试过能否把/site/default/ 该为根目录/ 或是其他意义的目录,如何有人作过这方面的配置测试,希望能拿出来让大家学习! 每个站点的域名必须是在你的域名服务中定义过的,否则,会报错。
5. 配置 ${TOMCAT_HOME}/conf/ 中的server.xml 文件.
|
6. 配置 /etc/Apaches2/中的 httpd.conf文件,使用能支持mod_proxy模块
LoadModule alias_module modules/mod_alias.so LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so |
7. 配置apache 中的虚拟主机
NameVirtualHost *:80
ProxyPass /opencms/ http://www.example.com/ ProxyPass /resources/ http://localhost:8082/resources/ ProxyPass / http://localhost:8082/opencms/
ProxyPass /opencms/ http://www.lxbing.com/ ProxyPass /resources/ http://localhost:8081/resources/ ProxyPass /export/ http://localhost:8081/export/ ProxyPass / http://localhost:8081/opencms/
ProxyPass /opencms/ ! ProxyPass /resources/ http://localhost:8088/resources/ ProxyPass / http://localhost:8088/opencms/ |
在这个配置中,www.lxbing.com 代理的是 http://localhost:8081/opencms/,这个页面有一个链接到opencms登录页面的链接,如果按照官方文档中的说明配置为:
ProxyPass /opencms/ ! RedirectPermanent /opencms/ http://${DOMAIN_NAME}/ |
将无法登录opencms工作区,真确的配置为:
ProxyPass /opencms/ http://${DOMAIN_NAME}/ RedirectPermanent /opencms/ http://${DOMAIN_NAME}/ |
在配置虚拟主机时应注意 ServerName,DocumentRoot,以及 /resources/, /export/,现在配置完成,可以通过域名访问opencms中的站点了,但是apache和tomcat是怎么分别管理静态,动态资源的,我还不大明白,是不是我的配置中有什么不妥的地方,请大家多多指教!
没有评论:
发表评论