具体参考的文章,我已经粘贴至博客来了
一开始是用CentOS 5 默认的Tomcat5来实现jsp,但是在对mysql5的数据库调用上一直实现不了,
经过多次测试,还是有问题,所以,一狠心,卸载了Tomcat5,进行重新使用最新的jdk,以及部署了
Tomcat6,测试成功。
后来对Apache与Tomcat整合过程中,发现了重要的问题,在虚拟主机配置中,就是对Apache中
的httpd.conf与Tomcat的server.xml对应中,发现了如下问题:
对于httpd.conf
示意:
#Use name-based virtual hosting.
#
#NameVirtualHost *:80
NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
ServerName localhost
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common
</VirtualHost>
#说明:上面这个是让Apache默认一个非任意访问的网站指向,就是非以下定义的,这个要放第一个
<VirtualHost *:80>
ServerAdmin webmaster@njupt.org.cn
DocumentRoot /var/www/projects/njupt.org.cn
ServerName www.njupt.org.cn
ServerAlias njupt.org.cn
ErrorLog /var/www/projects/logs/njupt.org.cn-error_log
CustomLog /var/www/projects/logs/njupt.org.cn-access_log common
</VirtualHost>
对于server.xml
要对应建立:
<Host name="www.njupt.org.cn" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<Context path="" docBase="/var/www/projects/njupt.org.cn" debug="0" reloadable="true"
crossContext="true"/>
</Host>
这样的配置,就只要把网站放置在/var/www/projects/njupt.org.cn目录下,如果用下面的方法:
<Host name="www.njupt.org.cn" appBase="/var/www/projects/njupt.org.cn"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log." suffix=".txt" pattern="common" resolveHosts="false"/>
-->
<!--
<Context path="" docBase="/var/www/projects/njupt.org.cn" debug="0" reloadable="true"
crossContext="true"/>
-->
</Host>
这样就需要把网站主目录放在/var/www/projects/njupt.org.cn/ROOT/ 下了
但这样有一个好处就是,在
httpd 的配置mod_jk.conf中
###### 将所有servlet 和jsp请求通过ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /servlet/* worker1
JkMount /*.jsp worker1
JkMount /*.jspx worker1
JkMount /*.do worker1
这个对分目录自身属于的/*/WEB-INF 都有效,同时,在mod_jk.conf中配置的/*.do表明,在站点所有目录下的*.do都会
被Tomcat执行,而JkMount /servlet/* worker1 表明需要为/servlet/目录下的所有Servlet才可被Tomcat执行。
最后,在设置Tomcat6开机自动运行的时候,
发现按照配置,不能开机自动运行,检查配置的错误logs文件,发现了:
出现如下错误:JAVA——HOME/jre/bin/../lib/i386/client/libjvm.so: cannot restore segment prot after reloc: Permission denied
是因为selinux阻止了你的操作,关闭selinux即可或者改为允许模式。

本文详细介绍了如何从CentOS5默认的Tomcat5升级到Tomcat6,并解决了与Apache整合过程中的配置问题。包括httpd.conf和server.xml的具体配置方法,以及mod_jk.conf的设置技巧。
1460

被折叠的 条评论
为什么被折叠?



