最近由于公司系统迁移,老大要求apache负责处理静态页面,动态页面由tomcat处理,网上看了下资料,立即开工,具体的安装过程中也遇见了几个问题,现记录下安装过程:

系统及软件环境如下:

red hat enterprise linux 5.8

httpd.2.2.3.tar.gz ; jdk-6u37-linux-i586.bin ;apache-tomcat-6.0.36.tar.gz ;

tomcat-connectors-1.2.37-src.tar.gz

1、apache安装

tar -zxvf httpd.2.2.3.tar.gz

cd httpd.2.2.3

./configure --prefix=/usr/local/apache2 \

--enable-modules=most \ 

--enable-mods-shared=all \

--enable-so \  

make

make install

2、jdk安装

 

  chmod 777 jdk-6u37-linux-i586.bin   #赋予安装包的执行权限

  ./jdk-6u37-linux-i586.bin

 mv jdk1.6.0_37 /usr/local/java               #修改下文件夹名称

3、安装tomcat

 tar -zxvf apache-tomcat-6.0.36.tar.gz

mv apache-tomcat-6.0.36 /usr/local/tomcat

4、tomcat和java的连接

 Tomcat的bin目录主要存放各种平台下启动和关闭tomcat的脚本文件,在linux下主要有catalina.sh、startup.sh和shutdown.sh 3个脚本,而startup.sh和shutdown.sh其实都用不同的参数调用了catalina.sh脚本。
Tomcat在启动的时候会去查找jdk的安装路径,因此,我们需要配置系统环境变量,这里详细讲述下linux下环境变量的设定。
 /etc/profile:是配置系统全局环境变量,系统中所有应用都可以使用这个环境变量。
~/.bash_profile:是用户环境变量,每个用户可以通过配置这个文件而设定不同的环境变量。
针对java环境变量的设置,可以在/etc/profile中指定JAVA_HOME,也可以在启动tomcat的用户环境变量.bash_profile中指定JAVA_HOME,这里我们在catalina.sh脚本中指定java环境变量,编辑catalina.sh文件,添加如下内容:
# OS specific support.  $var _must_ be set to either true or false.
JAVA_HOME=/usr/local/java
export JAVA_HOME

cygwin=false
os400=false
上面加粗部分是新加内容,其它为catalina.sh文件原有内容。通过JAVA_HOME指定了JDK的安装路径,然后通过export设置生效。

另一方法首先我们添加环境变量

vi /etc/profile

export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/lib

安装tomcat-connectors

tar xzvf tomcat-connectors-1.2.37-src .tar.gz
cd tomcat-connectors-1.2.37-src/native
chmod 755 buildconf.sh
 ./buildconf.sh
./configure \ --with-apxs=/usr/local/apache2/bin/apxs  #这里指定的是apache安装目录中apxs的位置
 make
 make install
ll /usr/local/apache2/modules/mod_jk.so


可以看到有mod_jk.so文件生成,这就是我们需要的JK连接器,默认情况下JK模块会自动安装到/usr/local/apache2/modules目录下,如果没有自动安装到此目录,手动拷贝此文件到modules目录即可。

 5、apache与tomcat整合

[root@localhost ~]#vi /usr/local/apache2/conf/workers.properties
worker.list=tomcat1
worker.tomcat1.port=8009
worker.tomcat1.host=localhost
worker.tomcat1.type=ajp13
worker.tomcat1.lbfactor=1

 

[root@localhost ~]#vi  /usr/local/apache2/conf/uriworkermap.properties
/*=tomcat1

!/*.jpg=tomcat1
!/*.gif=tomcat1
!/*.png=tomcat1
!/*.bmp=tomcat1
!/*.html=tomcat1
!/*.htm=tomcat1
!/*.swf=tomcat1
!/*.css= tomcat1
!/*.js= tomcat1

编辑http.conf在最底行加入以下代码

LoadModule jk_module modules/mod_jk.so

JkWorkersFile /usr/local/apache2/conf/workers.properties
JkMountFile   /usr/local/apache2/conf/uriworkermap.properties
JkLogFile /usr/local/apache2/logs/mod_jk.log
JkLogLevel info
JkLogStampformat "[%a %b %d %H:%M:%S %Y]"

下面开始建虚拟主机

NameVirtualHost *
表示启用虚拟主机,如果开启虚拟主机,上面DocumentRoot指令指定的配置将失效,以虚拟主机中指定的DocumentRoot为主。
<VirtualHost *>
    ServerAdmin webmaster@ixdba.net
    DocumentRoot /webdata/www
    ServerName 192.168.60.198
    ErrorLog logs/error_log
    CustomLog logs/access_log common
 JkMountFile  conf/uriworkermap.properties
</VirtualHost>