surfingbean写著 '花了几天时间摸索apache和tomcat在linux下的整合问题,略有收获.写出来与大家共享,希望对您有所启发.
网上已经有很多类似的文章,这里着重解释一些初学者难以理解的问题,以及谈一谈自己的体会.
花了几天时间摸索apache和tomcat在linux下的整合问题,略有收获.写出来与大家共享,希望对您有所启发.
网上已经有很多类似的文章,这里着重解释一些初学者难以理解的问题,以及谈一谈自己的体会.
1.准备文件并解压缩至/temp/:
apr-0.9.1.tar.gz
httpd-2.0.40.tar.gz
j2sdk-1_4_1_02-linux-i586-rpm.bin(直接运行)
jakarta-tomcat-4.1.18.tar.gz
jakarta-tomcat-connectors-4.1.27-src.tar.gz
注; 这些文件在其官方网页上下载较慢,但都可以在天网上找到.
然后将生成的jakarta-tomcat-4.1.18/ 和 jakarta-tomcat-connectors-4.1.27-src/ 拷贝至/opt/下
#cp -r jakarta-tomcat-4.1.18/ /opt/
#cp -r jakarta-tomcat-connectors-4.1.27-src/ /opt/
2.安装JDK(java development Kit)
#rpm -ivh j2sdk-1_4_1_02-fcs-linux-i586.rpm
默认安装目录是/usr/java/j2sdk1.4.1_02/
3.设定环境变量:
在/etc/profile中,加入:
#java environment variable settings
JAVA_HOME=/usr/java/j2sdk1.4.1_02
export JAVA_HOME
CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export CLASSPATH
CATALINA_BASE=/opt/jakarta-tomcat-4.1.18
export CATALINA_BASE
CATALINA_HOME=/opt/jakarta-tomcat-4.1.18
export CATALINA_HOME
PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
需重启才能生效.
测试JDK:运行
# java -version
# javac -version
看到版本信息则JDK安装成功
测试tomcat:运行
# /opt/jakarta-tomcat-4.1.18/bin/startup.sh
在浏览器中输入: http://ip地址:8080
能看到tomcat页则安装成功.
4.安装apache
进入apache的解压目录 /temp/httpd-2.0.40/
config.layout文件确定了各种风格的apache的各安装目录. 这里将选择RedHat. 建议将文件中RedHat的prefix改为/etc/httpd .
# ./configure --enable-layout=RedHat --enable-module=so
-- 生成makefile 文件. 这里选择了config.layout文件中的RedHat设置. 并采用DSO(Dynamic Shared Object)方式编译
# make
-- 编译
# make install
-- 安装
测试apache:运行
# /etc/httpd/sbin/apachectl start
在浏览器中输入: http://ip地址
能正确显示则安装成功.
5.编译Jakarta-Tomcat-connectors
# cp -r /temp/apr-0.9.1/ /opt/jakarta-tomcat-connectors-4.1.27-src/webapp/apr
-- 将apr-0.9.1/目录拷贝并改名
# cd /opt/jakarta-tomcat-connectors-4.1.27-src/webapp
-- 进入目录
# ./support/buildconf.sh
-- 生成编译配置文件
# ./configure --with-apxs=/etc/httpd/sbin/apxs
-- 生成Makefile编译文件.这里指明了apxs文件的位置.它可能根据apache安装目录的不同而不同.
# make
-- 编译生成mod_webapp.so
# cp apache-2.0/mod_webapp.so /etc/httpd/lib/apache/
-- 将mod_webapp.so 拷贝. 这里的目的目录其实可以任意指定,但必需与以后httpd.conf中的设置对应.
这里是一个习惯的位置.
6.修改/etc/httpd/conf/httpd.conf
1)在# Dynamic Shared Object (DSO) Support之后,添加如下内容(第230行左右):
LoadModule webapp_module /etc/httpd/lib/apache/mod_webapp.so
-- 加载我们刚刚编译的模块mod_webapp
2)在文件尾部添加如下内容:
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
--建立于tomcat的关联, 并设定虚拟目录 /examples/
如果计算机有自己的域名(在/etc/hosts文件中可以设),就用它代替localhost,并在ServerName处
(大概在290行)添加
ServerName your_domain_name:80
3)为了让apache更好支持中文,将AddDefaultCharset ISO-8859-1改为
AddDefaultCharset off
4)语法检查:运行
# /etc/httpd/sbin/apachectl configtest
如果显示Syntax OK, 则语法正确
否则根据提示查看httpd.conf的修改是否正确
5)修改/opt/jakarta-tomcat-4.1.18/conf/server.xml文件
默认情况下与8008端口相关的信息是被注释掉了,需要删掉注释的语句.
如果是比tomcat4.1.18更高的版本,里面可能没有这不分内容.那就将如下文本拷贝到文件最后
在最后一行 之前:
as its servlet container. Please read the README.txt file coming with
the WebApp Module distribution on how to build it.
(Or check out the "jakarta-tomcat-connectors/webapp" CVS repository)
To configure the Apache side, you must ensure that you have the
"ServerName" and "Port" directives defined in "httpd.conf". Then,
lines like these to the bottom of your "httpd.conf" file:
LoadModule webapp_module libexec/mod_webapp.so
WebAppConnection warpConnection warp localhost:8008
WebAppDeploy examples warpConnection /examples/
The next time you restart Apache (after restarting Tomcat, if needed)
the connection will be established, and all applications you make
visible via "WebAppDeploy" directives can be accessed through Apache.
--
port="8008" minProcessors="5" maxProcessors="75"
enableLookups="true" appBase="webapps"
acceptCount="10" debug="0"/>
name="Apache" debug="0">
prefix="apache_log." suffix=".txt"
timestamp="true"/>
7.整体测试
运行:
# /opt/jakarta-tomcat-4.1.18/bin/shutdown.sh
# /opt/jakarta-tomcat-4.1.18/bin/startup.sh
# /etc/httpd/sbin/apachectl restart
在浏览器中输入如下地址
http://服务器IP/examples/jsp/index.html,如果能够显示正常的网页,则安装成功
然后选择几个jsp的例子,出现动态网页的话,安装就成功了.
8.几点补充:
1)apache和tomcat的整合令人感觉并不完善.jsp动态网页只能通过apache的虚拟目录访问, 即不能正常访问
apache默认目录下的动态网页.哪位高人知道解决方法,还望不吝赐教.
2)如果要在计算机启动的时候就运行httpd服务,可以在/etc/rc.d/rc.local文件中加入这几行:
#start apache
/etc/httpd/sbin/apachectl start
#start tomcat
/opt/jakarta-tomcat-4.1.18/bin/startup.sh
3)为了接收外部访问,别忘了打开防火墙http的端口:
# setup
-> Firewall Configuration
4)在实验和撰写本文过程中,参考了很多大牛们的文章,这里一并表示感谢.文中难免有谬误疏漏之处,还望各?
批评指正.
surfingbean
surfingbean@yahoo.com
'