以下内容介绍如何集成 Apache httpd, Apache Tomcat 和 OpenCms 7 来实现如下效果:
以下配置在下面环境中测试通过:
请注意: 安装之前确定所用的域名可以在机器上正确解析.否则可能配置不成功.
本文档假设安装环境如下:
请注意: 请在自己测试的时候将域名和安装目录做正确替换.
请注意: 本文不涉及OpenCms的静态导出设置,需要请参考另外的文档.
在 D:\Tomcat5.5\webapps\ 目录下以 ROOT 安装OpenCms. .
重要: 确保Tomcat下没有名为 opencms/ 的项目.
譬如在这里可以在浏览器输入 http://www.wangyi.com:8080/setup 来进行安装.
这一步完成以后,可以正确安装并能登录OpenCms系统. 但是你会发现一些图片或者CSS等静态资源可能丢失.不要紧, 可以在下一步中解决这个问题.
在 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 以后,整个站点才能正确运行.
当然,如果又多个域名指向一个站点,可以添加 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>
打开 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.
在我的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 [email protected]
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系统了.就象下面的截图一样:
怎么样?要不您也来试试吧?