要让Apache和Tomcat联合工作,还必需有一个连接器(Connector)把它们联系起来,目前大致上有JK1.x,JK2,mod_webapp三种connector可以使用。jk 是mod_jserv的替代者,它是Tomcat-Apache插件,处理Tomcat和Apache之间的通信。JK使用比较广泛,JK2是JK1.x的改进,比较新。这三种Connector的配置方法大相径庭,另外,Tomcat是用Java写的,所以我们的操作系统必须有JDK或JRE。
红帽企业 Linux AS4的已经内置的RPM(Red Hat Package Manager)版的Apache服务器,版本为2.0.52(如图1);由于我们要在 Apache中整合tomcat,必须要下载Apache的tar.gz文件格式的源代码版,重新编译安装,编译采用允许动态加载模块的方式,主要是为了加载mod_jk2这个整合模块。因为默认的已经编译好的RPM版的Apache不能加载mod_jk2模块。

图1
在这里我们在下载Apache的源代码版(Linux)为2.0.54版本(如图2),下载Tomcat 5.5.9的tar.gz文件格式的源代码版(如图3), Apache 和 Tomcat整合的连接器在本文中我们选用JK2,下载的版本为2.0.4(如图4);由于Tomcat需要java的运行环境,下载J2SE 5的升级3版即JDK 1.5.0_03(如图5)。
将这4个下载文件拷贝到/ghq目录,下面我们就可以进行安装了。

图2

图3

图4

图5
软件的安装与配置
1、Apache服务器的安装
打开一个终端,进入到ghq目录下,解压httpd-2.0.54.tar.gz,然后编译安装。
[root@www ~]#cd /ghq (进入ghq目录)
[root@www ghq]#tar –zxvf httpd-2.0.54.tar.gz (解开.tar.gz 压缩文件)
[root@www ghq]#cd httpd-2.0.54 (切换到解开目录下)
[root@www httpd-2.0.54]#./configure –prefix=/ghq/apache2 –-enable-mods-shared=all –-enable-so (执行组态配置文件,编译的Apache服务器软件安装在/ghq/apache2目录下,允许动态加载so模块,选择所需要的所有模块,如图6所示)

图6
[root@www httpd-2.0.54]#make (编译Apache服务器的相关文件,如图7所示)

图7
[root@www httpd-2.0.54]#make install (将Apache服务器安装到红帽企业 Linux AS4系统,如图8所示)

图8
2、Tomcat独立运行环境的安装与配置
① 安装JDK
[root@www ~]#cd /ghq (进入ghq目录)
[root@www ghq]#chmod 711 jdk-1_5_0-03-Linux-i586-1.bin(使JDK具有执行权)
[root@www ghq]#./ jdk-1_5_0-03-Linux-i586-1.bin(运行JDK程序,如图9和图10所示)

图9

图10
JDK被安装到/ghq/jdk1.5.0_03目录下。
② 安装Tomcat软件
[root@www ~]#cd /ghq (进入ghq目录)
[root@www ghq]#tar –zxvf Jakarta-tomcat-5.5.9.tar.gz (解开Tomcat压缩文件,如图11所示)

图11
[root@www ghq]#cd Jakarta-tomcat-5.5.9 (进入tomcat目录)
[root@www Jakarta-tomcat-5.5.9]#ls (查看tomcat目录下的文件目录系统)
③ 设置环境变量
[root@www Jakarta-tomcat-5.5.9]#vi ~/.bash_profile
设置好Java和Tomcat运行的目录和路径,以及环境变量,如下图12所示,然后保存此文件。

图12
[root@www Jakarta-tomcat-5.5.9]. ~/.bash_profile(执行此文件,让设置有效)
[root@www Jakarta-tomcat-5.5.9]java –version (查看目前Java运行的版本,如图13所示)

图13
3、整合Apache 和 Tomcat 服务器软件
① 连接器的解压与配置
[root@www ghq]#tar–zxvf Jakarta-tomcat-connectors-jk2-src-
current.tar.gz (解开connectors压缩文件,如图14所示)

图14
[root@www ghq]#cd Jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2(进入连接器目录中)
[root@www native2]#./configure --with-apxs2=/ghq/apache2/bin/apxs --with-apr-lib=/ghq/apache2/bin --with-tomcat-559=/ghq/tomcat5.5.9 --with-java-home=/ghq/jdk1.5.0_03 --with-jni(执行组态配置文件,编译apache 、Tomcat和JDK的运行目录和路径,如图15所示)

图15
② Makefile文件的修改与编译,mod_jk2模块so文件的生成
[root@www native2]# cd server/apache2 (进入server目录中apache2目录)
[root@www apache2]# vi Makefile 文件如下图16所示,然后保存此文件。

图16
[root@www native2]# make (编译connectors,产生mod_jk2.so文件,如下图17所示。)

图17
将编译生成的两个文件(jkjni.so、mod_jk2.so)拷贝到/ghq/apache的modules目录,这两个文件就是负责Tomcat和Apache通信的,如下图18、19所示。

图18

图19
Apache和Tomcat配置与测试
1、Apache的httpd.conf和workers2.properties文件的配置
打开/ghq/apache2/conf目录下的httpd.conf文件,首先将监听端口listen修改为9000,在LoadModule后添加一行,LoadModule jk2_module modules/mod_jk2.so,如图20所示,然后保存此文件。

图20
在/ghq/apache2/conf目录下的创建workers2.properties文件,主要是在Apache服务器里添加Tomcat的虚拟目录,如图21所示。

图21
2、Tomcat的jk2.properties配置
[root@www native2]# cd /ghq/Jakarta-tomcat-5.5.9/conf
[root@www conf]# vi jk2.properties
对Tomcat的jk2.properties进行配置,只需要修改一行,找到shm.file,去掉该行的注释符,并将路径改为/ghq/apache2/logs/jk2.shm,如图22所示。

图22
3、启动Apache和Tomcat服务并进行测试
① 启动Tomcat服务并进行测试
[root@www conf]# cd /ghq/Jakarta-tomcat-5.5.9/bin
[root@www bin]# ./startup.sh
如下图23所示。

图23
启动Tomcat独立的运行环境,用8080端口进行测试,如图24所示。

图24
②启动Apache服务并进行测试
[root@www bin]# cd /ghq/apache2/bin
[root@www bin]# ./apachectl start
如下图25所示。

图25
启动Apache的运行环境,用9000端口进行测试,如图26所示。

图26
③ Apache+Tomcat整合测试
在这里我们就以Tomcat本身带的jsp-examples中的date.jsp例子来测试。首先我们用Tomcat(8080)来测试,如下图27所示,说明Tomcat服务器能解析JSP文件;然后将date.jsp文件拷贝到/ghq/apache2/htdocs目录中,用Apache(9000)来测试,如图28、29所示,说明Apache服务器单独不能解析JSP文件;最后采用Apache+Tomcat整合来测试date.jsp例子,如图30所示,说明整合在一起可以解析JSP文件。

图27

图28

图29

图30
至此Apache+Tomcat整合环境架构步骤就已全部完成。