redhat自带apache2.0和tomcat4.1的安装

XingKai 2009-12-23

最近给朋友装台webserver用到了apache+tomcat,使用了linux自带的apache,其间费了一些挫折,把这些写出来,供大家今后使用,希望能够节省大家的时间.

使用的组件:

redhat9自带的apache2.0.40(也可以使用redhat8,他的apache也是2.0.40)

httpd-2.0.40.tar.gz(使用自带的apache,为什么还要他的原码呢?之后的操作中我告诉你他的用处)

j2sdk-1_4_1_04-linux-i586-rpm.bin(你也可以选用其他版本的JDK)

tomcat4.1.24(其中tomcat4.1.18我也调试了,都可以)

tomcat-connectors-4.1.24为了把apache和tomcat整合到一起需要的connector.(这里的整合其实就是用这个连接器把apache的一些请求重定向到tomcat)

使用自带apache的原因:

因为自带的apache的modules里面包括了基本所有流行的module,如果你下载原码自己编译的话,就要编译所有的module,不过如果其他的功能你不需要的话,也根本不用费那个劲.但我为了防止以后会用到别的module,所以我选择使用系统自带的apache.编译新的模块比较麻烦,所以建议大家业使用自带的apache.以下是系统apache所带的module,如果这些都自己编译,累不说,还不敢保证是对的.

mod_access.so

mod_actions.so

mod_alias.so

mod_asis.so

mod_auth_anon.so

mod_auth_dbm.so

mod_auth_digest.so

mod_auth.so

mod_autoindex.so

mod_cern_meta.so

mod_cgi.so

mod_dav_fs.so

mod_dav.so

mod_deflate.so

mod_dir.so

mod_env.so

mod_expires.so

mod_headers.so

mod_imap.so

mod_include.so

mod_info.so

mod_log_config.so

mod_mime_magic.so

mod_mime.so

mod_negotiation.so

mod_proxy_connect.so

mod_proxy_ftp.so

mod_proxy_http.so

mod_proxy.so

mod_rewrite.so

mod_setenvif.so

mod_speling.so

mod_status.so

mod_suexec.so

mod_unique_id.so

mod_userdir.so

mod_usertrack.so

mod_vhost_alias.so

mod_webapp.so&这个就是需要自己编译的connector

整合apache+tomcat费劲就在于编译这个connector.

Apache没有把这个connetor(mod_webapp.so)编译进去是因为他和使用的tomcat的版本相关,所以在不知道用户使用那个版本的情况下,不能加这个module.

其中的下载地址.(仅供参考)

http://apache.te8.com/dist/jakarta/tomcat-4/

tomcat-4.1.24.tar.gz(这个解开包就可以直接运行,不用下载原码在自己编译,不然tomcat的编译也很麻烦)

http://apache.te8.com/dist/jakarta/tomcat-4/source/

在这里可以下载到(这个是原码要自己编译)

tomcat-connectors-4.1.24-src.tar.gz

也可以下载到4.1.18版本

http://apache.todayisp.com/httpd/old/

httpd-2.0.40.tar.gz

http://java.sun.com/j2se/1.4.1/download.html

j2sdk-1_4_1_04-linux-i586-rpm.bin

这些地址有的时候有问题,建议大家只要记住名字可以在北大的天网搜索,都可以找到而且速度一般都挺快的.http://e.pku.edu.cn/

过程:

1.先安装JDK

j2sdk-1_4_1_04-linux-i586-rpm.bin

是个可执行文件,安装没有难度,不提他

安装的目录是/usr/local/jdk1.4.1

2.安装tomcat

下载的这个版本的解开后就可以执行.如果不能正常运行你在下载原码自己编译

不过我试了几个版本都可以.要运行tomcat之前要先完成3.设置系统的环境变量

为了使用tomcat的管理界面管理tomcat,你要修改conf/tomcat-users.xml

添加

<rolerolename="manager"/>;

<rolerolename="admin"/>;

并给一个用户赋予这两个用户角色

<userusername="both"password="tomcat"roles="admin,tomcat,role1,manager"/>;

在其后的使用中你就可以用web界面管理tomcat了

#cd/opt

#tar–zxvftomcat-4.1.24.tar.gz

安装目录

/opt/jakarta-tomcat-4.1.24

3.设置系统的环境变量

编辑/etc/profile

PATH=$PATH:/opt/jakarta-tomcat-4.1.24/bin:/usr/local/jdk1.4.1/bin

JAVA_HOME=/usr/local/jdk1.4.1

CATALINA_HOME=/opt/jakarta-tomcat-4.1.18

exportPATHJAVA_HOMECATALINA_HOME

4.找个没用的地方安装httpd-2.0.40.tar.gz

注释:必须用和系统相同的apache版本,不然会出问题。我最开始用了最新的apache2.0.47,结果编译后的mod_webapp.so不能使用,有不认识的符号。

我是把他装在/opt下面的

#cd/opt

#tar–zxvfhttpd-2.0.40.tar.gz

#cdhttpd-2.0.40

#./configure./configure--prefix=/opt/apache40--enable-module=so--enable-rule=SHARED_CORE

#make

#makeinstall

5.编译connector(mod_webapp.so)

注释:编译2.0.40的connector不需要apr,编译1.x.x的版本的时候需要apr

我在安装apache+tomcat之前看到的很多文章说需要apr,但我做的时候确实没有用到

我编译了apache2.0.40for4.1.24和4.1.18的connector都没有用到

但在编译apache1.3.38的connector时用到了apr.

#cd/opt

#tar–zxvftomcat-connectors-4.1.24-src.tar.gz

#cdjakarta-tomcat-connectors-4.1.24-src/webapp

#./support/buildconf.sh

#./configure--with-apxs=/opt/apache40/bin/apxs

因为系统却省的apache没有apxs.

哈哈,知道为什么系统有apache,还要编译安装个apache的原因了吧.

那么apxs是干什么的呢?看看www.apache.org上的解释

apxsisatoolforbuildingandinstallingextensionmodulesfortheApacheHyperTextTransferProtocol(HTTP)server.Thisisachievedbybuildingadynamicsharedobject(DSO)fromoneormoresourceorobjectfileswhichthencanbeloadedintotheApacheserverunderruntimeviatheLoadModuledirectivefrommod_so.

#make

#cdapache-2.0

#cpmod_webapp.so/etc/httpd/modules/

===============================================================

好了,现在的所有的准备工作都做完了要测试了

编辑httpd.conf

vi/etc/httpd/conf/httpd.conf

LoadModulewebapp_modulemodules/mod_webapp.so

仅此一条就够了,很多地方介绍的时候说

还要AddModule之类的是apache1.x.x中的做法,我开始的时候就按照别的介绍,加了一些别的语句都报错了,最好调好的系统中,调用mod_webapp.so就这么一句话。

为了测试还要在末尾添加

WebAppConnectionwarpConnectionwarplocalhost:8008

WebAppDeployexampleswarpConnection/examples/

WebAppInfo/webapp-info

解释:在apache+tomcat的应用中,其实是把tomcat作为一个applicationserver。apache把其中的一些请求转发给tomcat。所以apache和tomcat可以在不同的机器上。配置时只要你把localhost改成tomcat服务器的IP就可以了,其中的8008是标准的端口,完全可以在tomcat中重新设定。

WebAppDeployexampleswarpConnection/examples/

这行是把tomcat中的examples连接到apache上来,也就是用户请求examples时,请求转发给tomcat.

编辑tomcat的配置文件server.xml

去掉关于Tomcat-Apache服务的那段注释,使connector生效

<!--DefineanApache-ConnectorService-->;

<Servicename="Tomcat-Apache">;

<!--(这行删除)

<Connectorclassname="org.apache.catalina.connector.warp.WarpConnector"

port="8008"minProcessors="5"maxProcessors="75"

enableLookups="true"appBase="webapps"

acceptCount="10"debug="0"/>;

<Engineclassname="org.apache.catalina.connector.warp.WarpEngine"

name="Apache"debug="0">;

<Loggerclassname="org.apache.catalina.logger.FileLogger"

prefix="apache_log."suffix=".txt"

timestamp="true"/>;

<Realmclassname="org.apache.catalina.realm.MemoryRealm"/>;

</Engine>;

</Service>;

-->;(这行删除)

把其中的Apache给成可以连接tomcat的webserver的IP地址,或主机名称,这里我是该成了localhost,因为是给本机的apache用的。

起动tomcat

#cd/opt/jakarta-tomcat-4.1.24/bin

#./startup.sh

UsingCATALINA_BASE:/opt/jakarta-tomcat-4.1.24

UsingCATALINA_HOME:/opt/jakarta-tomcat-4.1.24

UsingCATALINA_TMPDIR:/opt/jakarta-tomcat-4.1.24/temp

UsingJAVA_HOME:/usr/local/jdk1.4.1

测试:

在IE浏览器中敲入http://x.x.x.x:8080其中的x.x.x.x是你运行tomcat的机器

如果你可以看到tomcat的缺省web界面就对了

起动apache

#/etc/init.d/httpdstart

Startinghttpd:OK]

在IE浏览器中敲入http://x.x.x.x其中的x.x.x.x是你运行apache的机器

如果你可以看到apache的缺省web界面就对了

测试apache+tomcat的整合

在IE浏览器中敲入http://x.x.x.x/examples/<--不要丢了/不然……

于是你就可以看到jsp和servlet的例子了。

其余的更多的使用配置,大家好好看文档吧。

如果其中有错误,请大家指出.调了很多次很多个,可能有记错的地方

相关推荐

lionelf / 0评论 2020-07-28