Linux下安装整合Apache和Tomcat全过程

一、环境准备于介绍:

 

1.假设您已经成功设置系统的Java运行开发环境,包括JDK的安装,JAVA_HOME,PATH,CLASSPATH等等环境变量的设置。

 

2.Apache web服务器[版本不限]

 

3.Jakarta-Tomcat[目前推荐版本:5.0.16-5.0.28之间]

 

4.jk2连接器(jakarta-tomcat-connectors-jk2-src-current.tar.gz)[下载地址:http://jakarta.apache.org/site/sourceindex.cgi]

 

二、Apache安装:

 

1.从apache.org下载httpd-2.0.52.tar.gz后解压缩得文件夹httpd-2.0.52。

 

2.进入httpd-2.0.52/bin目录,运行

 

./configure -prefix=/usr/local/apache -enable-so

 

-prefix指定安装目录,-enable-so用于加载jk2连接器,此项必须。

 

3.make,make install,这没的说。

 

4./usr/local/apache/apachectl start,然后用浏览器访问一下localhost,应该成功了吧!

 

三、Tomcat安装:

 

这个不用说了吧?Java环境搭建好,随便找个地方解压,$TOMCAT_HOME/bin/startup.sh一下,看看8080端口,应该错不了。

 

四、jk2的编译和加载

 

1.解压jakarta-tomcat-connectors-jk2-src-current.tar.gz得到目录jakarta-tomcat-connectors-jk2-src-current,进入目录jakarta-tomcat-connectors-jk2-src-current/jk/native2,运行

./configure --with-apxs2=/usr/local/apache/bin/apxs (注意你的apache安装目录),然后make之。

 

2.等到make完毕以后,你会发现多了一个jakarta-tomcat-connectors-jk2-src-current/jk/build目录,进入jakarta-tomcat-connectors-jk2-src-current/jk/build/jk2/apache2,执行/usr/local/apache/bin/apxs -n jk2 -i mod_jk2.so,之后你会发现mod_jk2.so文件已经存在于/usr/local/apache/modules/中了。

 

3.在你的apache/conf/httpd.conf最下面加上一行

LoadModule jk2_module modules/mod_jk2.so

 

4.在apache/conf/中新建文件workers2.properties,其内容如下:

 

[logger.apache2]

level=DEBUG

[shm]

file=/usr/local/apache2/logs/shm.file

size=1048576

# Example socket channel, override port and host.

[channel.socket:localhost:8009]

port=8009

host=127.0.0.1

# define the worker

[ajp13:localhost:8009]

channel=channel.socket:localhost:8009

# Uri mapping

[uri:/*]

worker=ajp13:localhost:8009

 

此时启动apache于tomcat,访问localhost的80端口,看到了tomcat的欢迎页面,试着访问tomcat的jsp/servelt-examples,也能运行成功,祝贺您,您已经初步成功。请继续往下进行。

 

五、其他配置

 

上面的配置感觉就是把tomcat的8009端口的服务通过ajp13转给了apache,真没意思,我们想要的是jsp才交给tomcat处理,这个简单,我们继续:

 

假设你的apache的页面根目录为/var/www,我们首先来更改tomcat的server配置,把一个webapp放到/var/www:在/var/www下面按照web application的那套规范建立WEB-INF,web.xml,calsses,lib等等目录和文件,之后修改$TOMCAT_HOME/conf/server.xml,在元素之间加入一个context元素:

< Context path="" docBase="/var/www" debug="0" reloadable="true" crossContext="true">

< /Context>

修改workers2.properties

 

# Uri mapping

[uri:/*]

worker=ajp13:localhost:8009

修改为:

# Uri mapping

[uri:/*.jsp]

worker=ajp13:localhost:8009

 

现在好了,apache只有碰到jsp页面的时候才去请求tomcat的8009,而且我们作的东西扔进/var/www这个webapp就好了。

 

提示:

1.apache服务器可以让用户目录下的public_html文件夹得到web访问,为了让这些用户也得到jsp的支持,你可以为每个用户添加一个context到tomcat的server.xml中。其中path="/~username" docBase="/home/username/public_html"。其他和刚才添加的哪个context相同。

 

2.worker2.properties文件中的

 

# Uri mapping

[uri:/*.jsp]

worker=ajp13:localhost:8009

 

很有意思,如果你使用spring,struts等等framework并进行了自定义后缀,把相应的后缀加进去就可以了,apache会把这里定义的访问形式统统交给tomcat处理

猜你喜欢

转载自liujianguangaaa.iteye.com/blog/1000662