OpenCMS环境的搭建
最近,邮件的帮助系统准备放在自己的服务器上
为了便于产品人员更新发布页面
所以需要一个简单的CMS系统,然后上网搜了一堆
最后还是瞄准了OpenCMS,开始以为安装和配置应该很简单的
但真正操作后,才发现,这个玩意还真挺复杂的......
记录一下安装配置的过程:
1.OpenCMS是和Tomcat绑定的,开始想把它弄到Resin上,结果发现部署后有问题(也许是还没找到配置的方法吧)
无奈,就改到Tomcat上了
2.安装过程还是比较简单的,但就是太慢了。安装后,它默认的url会是/opencms/opencms/system/login,如果想把它们给去掉,
安装时,最好把opencms.war修改成ROOT.war,这样就会去掉第一个/opencms了
3.去掉第2个OpenCMS,参考文档:
http://localhost/alkacon-documentation/howto_apache_httpd/mod_proxy.html
修改Apache2的虚机配置:
ProxyPass /opencms/ !
RedirectPermanent /opencms/ http://${DOMAIN_NAME}/
ProxyPass /resources/ !
ProxyPass /export/ !
ProxyPass / http://localhost:8081/opencms/
ProxyPassReverse / http://localhost:8081/opencms/
修改Tomcat的配置:
<Connector port="8081" protocol="HTTP/1.1" connectionTimeout="20000"
redirectPort="8443" useBodyEncodingForURI="true" proxyName="192.168.41.236" proxy Port="80" />
修改opencms-system.xml
<workplace-server>http://192.168.41.236</workplace-server>
<default-uri>/sites/default/</default-uri>
<site server="http://192.168.41.236" uri="/sites/default/"/>
4.配置多个站点,这个相对来说比较简单,在apache2中增加相应的虚机,同时修改Tomcat的service.xml和opencms-system.xml
5.发布站点时自动export静态文件,需要修改opencms-importexport.xml中的staticexporthandler为CmsAfterPublishStaticExportHandler,这样可以自动导出,使用它默认的handler,似乎是有问题
6.关于和前端的反向代理的配合问题,由于前端都是用mail.test.sohu.com/help来反向代理到OpenCMS的服务器上,这样就有2个问题:
1)export的路径问题,OpenCMS默认是/export/的,但是我们的站点必须得是/help开头的,需要修改opencms-importexport.xml
增加如下的规则:
<rfs-rule>
<name>mailhelp</name>
<description>This is the rfs-rule for mysite</description>
<source>/sites/mailhelp/.*</source>
<rfs-prefix>/help/export</rfs-prefix>
<exportpath>export</exportpath>
<related-system-res>
<regex>/system/modules/com.sohu.mail.help/.*</regex>
<regex>/system/galleries/pics/mail_pic/.*</regex>
</related-system-res>
</rfs-rule>
2)页面之间的链接问题:这个问题最是郁闷了,直接用相对路径应该就可以了,比如href="test.html",但发现OpenCMS的html编辑器会自动把它转变成href="/test.html",这样,过前端的反向代理就有问题了,无奈,只能在链接时,手工加上href="/help/test.html",但这样就又碰到了一个问题,预览时会出404。上网Google了几把,没找到解决方案,只能用apache2的Rewrite了,增加一个规则,这样预览就正确了,总觉得这么解决很别扭.....
RewriteEngine on
RewriteRule /help/(.*) http://192.168.41.236/$1