作者:qlampskyface
和作者联系:xiaozuidaizhi@sina.com
在配置之前,要明确以下两点。
1.为什么要配置?
2.为什么要这么配置?
1.为什么要配置?
其实,作为tomcat,安装完成之后,已经能够作为网站服务器使用了。对于很多使用者来说,它已经足够了,所以,如果你的目的不是配置,而是使用,那么你很可能就不需要看下去了。
但是,tomcat单独作为网站服务器呢,有一些缺陷,比如
1. Tomcat 处理静态页面没有apache快
2. Tomcat不如apache容易配置
3. Tomcat没有apache稳定健壮
4. apache支持CGI 脚本和API,perl,php等等
正是因为上面的原因,我们在有些场合时,将两者整合起来使用。我再重申一次-----Tomcat+Apache最大的一个好处,就是让他们各司其职:
Apache负责解析静态页面,Tomcat负责处理Servlet/Jsp.
2.为什么要这么配置?
你很有可能也听说过weblogic,websphere,和jbuilder整合的案例,这些案例也能配置网站服务器,jbuilder、weblogic...这些工具不可谓不好,但是这些工具有一个致命的弱点,那就是---They are not free!而tomcat+apache is free,而且,对于个人,以及中小型企业来说,tomcat+apache已经够用了,所以,下面的我就不用说了吧。
好了,我们开始配置我们的网站服务器吧!
我来说一下我们需要的一些安装文件吧。
j2sdk(我的是1.4.2)、Apache HTTP Server(我的是2.0.43)、Tomcat(我的是4.1.29)、mod_jk2-2.0.43.dll。为什么要提到软件的版本呢?是因为不同的版本之间可能配置的方法有细微的差别,但是也不要唯版本论,一看版本不一样了,就不知道怎么办了,其实只要懂得配置的原因,那样就万变不离其宗,你也就不用担心版本不同了。
Apache HTTP Server2.0:(找不到2.0.43就找47或48也可以)
http://www.apache.org/dist/httpd/binaries/win32/apache_2.0.43-win32-x86-no_ssl.exe
Tomcat:
http://www.apache.org/dist/jakarta/tomcat-4/v4.1.29/bin/jakarta-tomcat-4.1.29.exe
mod_jk2-2.0.43.dll:(下下来解压缩即可)
我们配置应该按照下面的五步,按步骤来,会感觉到思路很清晰。
1.安装。
2.设置环境变量。
3.整合。
4.添加。
5.测试。
一、安装。
需要注意的是,请按照j2sdk、apache、tomcat的顺序安装。这是因为,我们配置的目的,是将tomcat配置成为apache的in-process部件。当处理页面的时候,apache首先得到这个页面,然后对页面进行分析,如果这个页面仅仅是一个静态的页面的话,那么apache就自己处理,不用交给tomcat,但是如果该页面是一个非静态页面时,就交给站在后面的tomcat来处理,处理完之后再交给apache。这就是为什么要先安装apache后安装tomcat的原因。再者,在安装apache的时候需要你填入
1.域名
2.服务器名
3.email
需如实填写(如域名填为127.0.0.1等)
二、设置环境变量。
共有五项。
1.JAVA_HOME
2.PATH
3.CLASSPATH
4.CATALINA_HOME
5.TOMCAT_HOME
关于前三项的配置我就不多说了,是jdk的设置。其中CLASSPATH中要将jdk的lib目录下的tools.jar和dt.jar加上。第4和第5项的配置是相同的:都是Tomcat的安装路径(比如我的Tomcat安装在D:\Program Files\Apache Group\Tomcat 4.1)
三、整合。
将上述的mod_jk2-2.0.43.dll复制进Apache2目录下的modules文件夹即可。整合操作很简单,但意义重大,全靠这个文件,才使得Apache和Tomcat能够配合起来使用。在这个环节要特别注意的是mod_jk文件有两种,一种是我们用到的jk2,一种是jk(比如mod_jk_1.2.5_2.0.47.dll),这一点在初次配置的时候要特别注意,不要看错了,因为不同的文件配置方法完全不同,切记切记!
四、添加。
在这个环节中,有两个地方的两个文件需要进行添加。第一处是Apache2安装目录下conf文件夹里的httpd.conf配置文件的修改;第二处是Tomcat安装目录下conf文件夹里增加一个名为workers2.properties的属性文件。由于两个都是conf目录,所以不要弄错了。
第一处,修改httpd.conf文件:
打开httpd.conf文件,查找DirectoryIndex,在index.html index.html.var 后面添加index.jsp,注意要用空格隔开。这个的目的是让index.jsp作为默认打开格式的文件。在httpd.conf的最后添上以下内容。
LoadModule jk2_module modules/mod_jk2-2.0.43.dll
ServerAdmin webmaster@djb
DocumentRoot "D:/Program Files/Apache Group/Tomcat 4.1/webapps/ROOT"
ServerName djb
其中
LoadModule 是装载整合Apache与Tomcat的模块mod_jk...,这样当Apache遇到jsp文件时,就在后台将其交由Tomcat去处理了。
webmaster@djb 是你的mail地址,当服务器出现问题时,显示在错误页面上,便于别人与你联系。
DocumentRoot 是网站的入口,总的路径,这点必须要和Tomcat的入口保持一致,在这里我让它指向了Tomcat的默认页面。这里要注意的是,如果你的tomcat路径中没有空格的话,就不必用""引住路径,但是如果像我的一样,中间有空格,必须用""引住。
ServerName 是apache安装所在的机器名。在这里,尤其注意的是,你路径上面的反斜杠\必须全部被替换为/,切记切记
第二处,添加workers2.properties文件。
在Tomcat安装目录下conf文件夹下新建文件,以workers2.properties命名。在里面添加如下内容:
# Define the communication channel
[channel.socket:localhost:8009]
info=Ajp13 forwarding over socket
tomcatId=localhost:8009
# Map All webapp to the Web server uri space
[uri:/*]
info=Map the whole webapp
其中,以#开头的行是说明性文字。
这里完成的是定义apache和tomcat的交流端口(本机的8009端口)和协议(ajp13)、以及uri。
uri部分不一定按照上面的定义,可以设置对自己有用子路径。比如只想公开子路径examples下的东东时,可以如下定义:
# Map the Tomcat examples webapp to the Web server uri space
[uri:/examples/*]
info=Map the whole webapp.
五、测试。
分别启动Apache和Tomcat,然后打开浏览器,输入http://localhost/,如果你看到一只小猫变态得看着你的话,那么恭喜你,你配置成功了,如果你想验证一下,你再输入http://localhost:8080/,如果还有一只一模一样的变态小猫看着你的话,你就可以确定了。
多说几句,一般,我们开发程序的时候,需要频繁得重启、调试、中断。如果你是在apache+tomcat的组合上开发,你会发现非常麻烦。这时,适宜只用Tomcat,它也是可以直接对静态页面解析...所以,我们在开发的时候就可以不集成apache+tomcat...我们可以在程序调试成功后,再发布到一个apache+tomcat的机器上。并且,服务器的启动有两种模式:调试模式和正常模式,如果你让你的应用处于调试模式,效率也是非常低的。
所以,一般,我们写程序的時候,是在单独的Tomcat上进行的。到了发布的时候,就发布到Tomcat+Apache上。
最后,如果你不幸失败了,那么请你:
1.检查版本是否一致;
2.如果一致,那么请你检查你的操作是否正确,比如mod_jk2还是jk...,反斜杠问题;
3.如果不一致,请你搜索其他文章,并参考这篇文章.(这篇文章绝对值得参考!)