• 软件测试技术
  • 软件测试博客
  • 软件测试视频
  • 开源软件测试技术
  • 软件测试论坛
  • 软件测试沙龙
  • 软件测试资料下载
  • 软件测试杂志
  • 软件测试人才招聘
    暂时没有公告

字号: | 推荐给好友 上一篇 | 下一篇

Apache+tomcat+jdk+jk安装配置

发布: 2007-6-08 22:43 | 作者: seanhe | 来源: | 查看: 472次 | 进入软件测试论坛讨论

领测软件测试网
Apache+tomcat+jdk+jk安装
一. 下载软件:
下载apache:
    http://httpd.apache.org/download.cgi
下载tomcat:
    http://jakarta.apache.org/site/binindex.cgi
下载jdk:
    http://java.sun.com/j2se/downloads/index.html
下载jk:
    http://jakarta.apache.org/site/binindex.cgi
sco unix下载:
HTTP: http://www.sco.com/download
FTP:  ftp://ftp.sco.com/pub/openserver5
二. 安装配置apache
安装:略
配置:
1. 编辑./conf/httpd.conf文件
windows加入:
LoadModule vhost_alias_module modules/mod_vhost_alias.so(去掉#号)
LoadModule jk2_module modules/mod_jk2.so
DirectoryIndex index.html index.html.var index.htm index.jsp(原有补充)
DefaultLanguage .zh-cn(原有修改)
AddDefaultCharset GB2312(原有修改)
NameVirtualHost 192.168.1.122:80
<Directory ~ "/WEB-INF/"> (代替workers2.properties文件中uri和worker)
    Order allow,deny 
    Deny from all 
</Directory>
<VirtualHost 192.168.1.152:80>
    ServerAdmin jiupima@163.com
    DocumentRoot "D:/web/Tomcat 5.0/webapps/sh_abc"
    ServerName www.sh_abc.com(无域名服务直接加ip地址)
    ErrorLog logs/ sh_abc.com-error_log
    CustomLog logs/ sh_abc.com-access_log common
    <Location "/*.jsp">(用ajp13协议将*.jsp文件交由tomcat处理)
      JkUriSet worker ajp13:localhost:8009
    </Location>
</VirtualHost>
           Sco unix加入:
LoadModule vhost_alias_module libexec/mod_vhost_alias.so(去掉#号)
LoadModule jk_module libexec/mod_jk.so(sco507下屏蔽conf/cf.d/tomcat文件中已有配置)
AddModule mod_jk.c (sco507下屏蔽conf/cf.d/tomcat文件中已有配置)
DirectoryIndex index.html index.htm index.jsp(原有补充)
NameVirtualHost 192.168.1.122:80
<VirtualHost 192.168.1.122:80>
    ServerAdmin jiupima@163.com
    DocumentRoot "/usr/lib/apache/tomcat/webapps/sh_abc"
    ServerName www.sh_abc.com(无域名服务直接加ip地址)
    ErrorLog logs/ sh_abc.com-error_log
    CustomLog logs/ sh_abc.com-access_log common
</VirtualHost>
include /usr/lib/apache/conf/cf.d/tomcat
2. 编辑workers2.properties文件(windows下)
    [shm]
file=D:\web\apache\Apache2\logs\shm.file
size=1048576
[channel.socket:localhost:8009] 
port=8009
host=127.0.0.1
[ajp13:localhost:8009] 
channel=channel.socket:localhost:8009 
[uri:/sh_abc/*] 
worker=ajp13:localhost:8009
         3. 编辑/conf/cf.d/tomcat文件(unix下)
            # Update this path to match your conf directory location
JkWorkersFile /usr/lib/apache/tomcat/conf/workers.properties
            # the /sh_abc context
Alias /sh_abc "/usr/lib/apache/tomcat/webapps/sh_abc"
<Directory "/usr/lib/apache/tomcat/webapps/sh_abc">
              Options Indexes FollowSymLinks
</Directory>
# Send everything for context /sh_abc to worker named worker1 (ajp13)
JkMount /*.jsp worker1(支持输入:http://ip)
JkMount /init_servlet worker1
JkMount /trad_servlet worker1
JkMount /mid_servlet worker1
JkMount /sh_abc/*.jsp worker1(支持输入:http://ip/sh_abc)
JkMount /sh_abc/init_servlet worker1
JkMount /sh_abc/trad_servlet worker1
JkMount /sh_abc/mid_servlet worker1
# The following line prohibits users from directly accessing WEB-INF
<Location ~ "/WEB-INF/">
              AllowOverride None
              deny from all
</Location>
三. 安装配置tomcat
安装:略
配置:
1. 先安装jdk。
2. 编辑server.xml文件
在<Host/>中加入:
<Context path="/sh_abc" docBase="sh_abc" debug="0" 
reloadable="true" crossContext="true"/> 
<Context path="" docBase="sh_abc" debug="0" 
reloadable="true" crossContext="true"/>
3. 编辑jk2.properties文件
    handler.list=channelSocket,request
channelSocket.port=8009
4.       编辑workers.properties文件(unix下,一般用默认值)
四. 安装配置jdk
安装:略
配置:略
五. 安装配置jk
安装:略
配置:
1. 拷贝mod_jk.so(mod_jk2.so)到apache的libexec(modules)目录下
2. 在apache的httpd.conf中加入mod_jk.so(mod_jk2.so)
3. 编辑tomcat的jk2.properties文件
4. 编辑apache的workers2.properties文件(windows下) 
5. 编辑apache的/conf/cf.d/tomcat文件(unix下)
六. 环境配置
windows:在“系统属性”里面->“高级”->点“环境变量”按钮,如果你希望所有用户都能用,就建立在“系统变量”里面,点“新建”按钮,变量名是 “JAVA_HOME”,变量值是你安装java的路径 D:\web\java\jdk1.5.0 ,然后编辑path变量,在变量值最后加上;%JAVA_HOME%\bin
sco unix:编辑.profile文件
JAVA_HOME=/usr/java
CATALINA_HOME=/usr/lib/apache
PATH=$ JAVA_HOME /bin:$CATALINA_HOME/bin:PATH
export JAVA_HOME CATALINA_HOME PATH
七. Sco unix 下服务自启动与停止配置
自启动编辑文件/etc/rc2.d/S99WEBSERV(文件名自定义)
JAVA_HOM=/usr/java
CATALINA_HOME=/usr/lib/apache/tomcat
/usr/lib/apache/bin/apachectl start
/usr/lib/apache/tomcat/bin/startup.sh
echo "apache tomcat has been started !"
自停止编辑文件/etc/rc0.d/P99WEBSERV(文件名自定义)
JAVA_HOMa=/usr/java
CATALINA_HOME=/usr/lib/apache/tomcat
/usr/lib/apache/bin/apachectl stop
/usr/lib/apache/tomcat/bin/shutdown.sh
echo "apache tomcat has been stoped !"
一般格式
su - 用户名 –c “命令”
八. 其它问题
sco 507中不能启动apache
报错Could not determine the server's fully qualified domain name, using 127.0.0.1 for ServerName,原因是/etc/hosts和/etc/hosts.equiv文件中主机域名与apache主机域名不同导致取不到ip,在logs中查看主机域名
报错Syntax error on line 1110 of /usr/lib/apache/conf/cf.d/httpd.conf:Invalid command  'JkUriSet', perhaps mis-spelled or defined by a module not included in the server configuration,原因未知,httpd.conf中去除行JkUriSet worker ajp13:localhost:8009
报错module mod_jk.c is already added, skipping,去除conf/cf.d/tomcat中加载mod_jk.so和mod_jk.c两行,移到conf/httpd.conf中加载即可
tomcat显示中文问题,在jsp文件中加入一行:<%@ page contentType="text/html;charset=gb2312" %>即可。html文件显示中文加入<meta http-equiv="Content-Type" content="text/html; charset=gb2312">不管用,需要apache显示,结合起来就没问题了。
sco507打了mp3包后,记不请是tomcat还是apache的配置文件上有个错误,好像是拼写错误,我改了后来又忘了在什么地方
九. 自动保持常启动状态
脚本如下:
str=’ps –ef | grep 程序名’
if [ “x$str” = “x” ]
  then echo “程序名 错误 !”
      su - 用户名 –c “程序名”
else echo “程序名 正常 !”
        fi
在root用户的 crontab 序列中加入:0 0 * * * /u/用户名/脚本程序.sh

 jiupima 回复于:2004-11-18 17:06:14
cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月 
中的不同时段运行。(相当有用的一个命令,功能最强大。) 
At at命令。使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时 
间段或高峰负荷时间段运行。 
& 使用它在后台运行一个占用时间不长的进程。(大家应该经常用吧。) 
Nohup 使用它在后台运行一个命令,即使在用户退出(注意这点)时也不受影响。 
一.crontab命令 
crontab命令的一般形式为: 
crontab [-u user] -e -l -r 
其中: 
-u 用户名。如果使用自己的名字登录,就不用使用-u选项。 
-e 编辑crontab文件。不带-u选项可以编辑自己的crontab文件。 
-l 列出crontab文件中的内容。不带-u选项可以列出自己的crontab文件的内容。 
-r 删除crontab文件。小心使用哦。 

crontab文件(各个用户的这个文件放在/var/spool/cron/crontab/目录中,以用户名来区别。) 
每个条目中各个域的意义和格式如下。 
下面就是这些域: 
第1列分钟1~59 
第2列小时1~23(0表示子夜) 
第3列日1~31 
第4列月1~12 
第5列星期0~6(0表示星期天) 
第6列要运行的命令 

例子(注意:提交此命令会覆盖原来的文件,使用之前请做好备份。): 
30 21* * * /apps/bin/cleanup.sh 
上面的例子表示每晚的21:30运行/apps/bin目录下的cleanup.sh。 
45 4 1,10,22 * * /apps/bin/backup.sh 
上面的例子表示每月1、10、22日的4:45运行/apps/bin目录下的backup.sh。 
10 1 * * 6,0 /bin/find -name "core" -exec rm {} \; 
上面的例子表示每周六、周日的1:10运行一个find命令。 
0,30 18-23 * * * /apps/bin/dbcheck.sh 
上面的例子表示在每天18:00至23:00之间每隔30分钟运行/apps/bin目录下的dbcheck .sh。 
0 23 * * 6 /apps/bin/qtrend.sh 
上面的例子表示每星期六的11:00pm运行/apps/bin目录下的qtrend.sh。 

既然是用户向cron提交了这些作业,就要向cron提供所需的全部环境。要保证在shell脚本中提供所有必要的路 

径和环境变量,除了一些自动设置的全局变量。 


二.at命令 
at命令允许用户向cron守护进程提交作业,使其在稍后的时间运行。如果你希望在一个月或更长的时间以后运 

行,最好还是使用crontab文件。 
at命令的基本形式为: 
at [-f script] [-m -l -r] [time] [date] 
其中, 
-f script 是所要提交的脚本或命令。 
-l 列出当前所有等待运行的作业。atq命令具有相同的作用。 
-r 清除作业。为了清除某个作业,还要提供相应的作业标识(ID);有些UNIX变体只 
接受atrm作为清除命令。 
-m 作业完成后给用户发邮件。 
time at命令的时间格式非常灵活;可以是H、HH.HHMM、HH:MM或H:M,其中H和M分别是小时和分钟。还可以使用 

a.m.或p.m.。 
date 日期格式可以是月份数或日期数,而且at命令还能够识别诸如today、tomorrow这样 
的词。 

使用at命令提交作业有几种不同的形式,可以通过命令行方式,也可以使用at命令提示符。 

三.&命令 
该命令的一般形式为: 
命令 & 
注意:需要用户交互的命令不要放在后台执行,因为这样你的机器就会在那里傻等。 

四.nohup命令 
如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用 
nohup命令。该命令可以在你退出帐户之后继续运行相应的进程。 
该命令的一般形式为: 
nohup command & 


后台运行命令对于每天都运行的机器很有用,特别是对于我们这些懒的系统维护人员,可以减少我们的工作量,也可以避免某天忘记做什么重要的事情了。

 jiupima 回复于:2004-11-18 17:10:18
费了这么大功夫,不精华对不起我眼睛,如果我帖子对你有了点帮助,就顶顶让大家都看到!!

 sdccf 回复于:2004-11-18 17:33:44
这么好的帖子当然要加精华了!

 UnKnow365 回复于:2004-11-18 21:53:43
先收藏!需要的时候再拉出来看看。

 纳兰婷 回复于:2004-11-18 22:51:17
好帖~~~收藏。。。。

 md1204 回复于:2004-11-18 22:55:48
安装这个有什么用,是做什么的,请指教

 nomad79 回复于:2004-11-19 03:18:01
到网上找了一点点资料,配了一下,发现从apache连接过去,tomcat首页的图片显示不出来,直接连tomcat没有这个问题,楼主帮我一并回答一下吧,顶,加精了。

 jiupima 回复于:2004-11-19 08:32:16
[quote:8a89fc306e="md1204"]安装这个有什么用,是做什么的,请指教[/quote:8a89fc306e]
是做http服务器的,apache功能灵活多样,但不支持jsp等动态内容;tomcat建立在jdk基础上,能很好的支持jsp网页,但对html静态网页响应略慢,两者配合是目前最多的用法;而jk是apache和tomcat的连接器。
不对或不详细的地方请高手指点。

 jiupima 回复于:2004-11-19 08:37:08
[quote:3232478549="nomad79"]到网上找了一点点资料,配了一下,发现从apache连接过去,tomcat首页的图片显示不出来,直接连tomcat没有这个问题,楼主帮我一并回答一下吧,顶,加精了。[/quote:3232478549]

如果你的apache和tomcat单独能正常启动,那么请检查:
1.将apache的配置文件httpd.conf中,你使用的DocumentRoot配置为tomcat的webapps下你使用的目录。
2.确认jk安装成功。

 jiupima 回复于:2004-11-19 15:09:34
假定我们的集成目标是: 
1. 所有的静态资源由Apache处理 
2. 所有的动态资源由Tomcat处理 
配置Tomcat 
apache和tomcat整合大致上有三种方式: 
1. 在apache进程中运行tomcat来处理动态内容 
2. 通过ajp13协议,apache将动态内容的请求转发给tomcat 
3. 使用本地高速Unix domain socket,apache将动态内容的请求转发给tomcat 

方式2可以将apache和tomcat分布在不同的机器上,从而可以实现负载平衡。方式3速度比较快,当apache和tomcat分布在相同的机器上时可以考虑使用。 
本文以方式2的为例说明tomcat和apache的集成。 
为了能处理ajp13请求,tomcat需要起一个服务。 这是通过在tomcat的server.xml中定义一个Connector来实现的。 在最新的tomcat4.1.30版本中该Connector默认情况下是启用的。如果没有启用在server.xml加入 
代码: 
    <Connector className="org。apache。coyote。tomcat4。CoyoteConnector" 
               port="8009" minProcessors="5" maxProcessors="75" 
               enableLookups="true" redirectPort="8443" 
               acceptCount="10" debug="0" connectionTimeout="20000" 
               useURIValidationHack="false" 
               protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/> 

启动tomcat, 检查ajp13服务是否运行 
netstat -a | grep 8009 
或则查看tomcat标准输出上是否有类似的输出: 
代码: 
info: JK2: ajp13 listening on /0.0.0.0:8009 
2004-5-22 14:50:35 org.apache.jk.server.JkMain start 
info: Jk running ID=0 time=20/200  config=D:\Tomcat4.1\conf\jk2.properties 

配置Apache 
配置完Tomcat后,进行Apache的配置。首先,我们需要确定整个web应用所在的context,确定了context也就能确定用户通过什么样的URL可以访问该web应用。比如,网站为www.example.com, 如果web应用的context为purchase,那么用户可以通过URL http://www.example.com/purchase访问该应用;如果web应用的context为/,那么用户可以通过URL http://www.example.com访问该应用。一般而言,将web应用的context设定为/可以方便用户。如果存在多个独立的应用,可以考虑把它们放到不同的子context中去。下面介绍把应用context设为/情况下如何配置,其他情况类似。将jk的配置放在一个独立的文件里,然后在httpd。conf中Include该文件即可。 
第一步,让apache加载mod_jk: 
代码: 
#mod jk for tomcat-apache integration 
LoadModule jk_module modules/mod_jk.so 

把应用context映射到存放该应用静态资源的目录: 
代码: 
# Static files in the examples webapp are served by apache 
Alias / /www/tomcat4。1/webapps/ROOT/  

同时,因为现在静态资源不是由tomcat处理了,所以出于安全考虑和遵守JSP/Servlet规范需要禁止对WEB-INF子目录的访问: 
代码: 
# The following line prohibits users from directly access WEB-INF 
<Location "ROOT/WEB-INF/"> 
  AllowOverride None 
  deny from all 
</Location> 

在集成的调试阶段可以考虑允许目录列表功能: 
代码: 
<Directory "/www/tomcat4。1/webapps/ROOT"> 
    AllowOverride FileInfo AuthConfig Limit Indexes 
    Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec 
</Directory> 

接下来一步告诉apache哪些动态内容应该让tomcat处理,为了确定动态内容URL的特征,应该把web.xml中的所有servlet mapping中出现的URL模式在jk.conf中声明: 
代码: 
JkMount /BaseServlet worker1 
JkMount /Servlet/* worker1 
JkMount /ProductUploadServlet worker1 
JkMount /upload worker1 
JkMount /test worker1 
JkMount /*.jsp worker1 
JkMount /*.do worker1 

其它可能需要修改的配置 
配置项 说明 
JkWorkersFile 指定jk workers.properties的位置,如果是相对路径,则假定在apache的ServerRoot目录下 
JkLogFile 指定jk log文件的位置,如果是相对路径,则假定在apache的ServerRoot目录下 
JkLogLevel 指定jk log的级别有效的选项有:debug/error/info 
JkLogStampFormat 指定log中的时间格式,使用c函数strftime()的格式字符串语法 

总结Tomcat和Apache集成时通常需要一下步骤: 
1. 决定使用哪种connector 
2. 获得connector,如果没有现成的二进制的connector,则需要手工编译,根据操作系统的不同可能还要设置编译环境。 
3. 配置tomcat 
4. 配置apache,确定context,将context对应到应用的顶层目录。根据web.xml中的servlet映射把所有的动态内容的url模式配置在apache中 
5. 测试

 3sane 回复于:2004-11-22 12:04:50
[quote:5e755162b7="jiupima"]” = “x” ]
 下载jdk: 
http://java.sun.com/j2se/downloads/index.html 
下载jk: 
http://jakarta.apache.org/site/binindex.cgi 
[/quote:5e755162b7]

以上连接中我没有找到SCO版本的BIN,请告知具体下载地址?SCO能支持的JDK是1.4.2吗?

 jiupima 回复于:2004-11-22 16:25:11
[quote:f972d1a133="3sane"]

以上连接中我没有找到SCO版本的BIN,请告知具体下载地址?SCO能支持的JDK是1.4.2吗?[/quote:f972d1a133]

到sco网站可以下到,最高支持到1.4.2。

 3sane 回复于:2004-11-22 21:40:28
[quote:113c3e2d15="jiupima"]

到sco网站可以下到,最高支持到1.4.2。[/quote:113c3e2d15]

谢谢,但最近SCO的网站www.sco.com怎么也上不去(www.sco.com.cn倒是可以),DNS是127.0.0.3实在郁闷 :( 。另外我用1.3.1安装TOMCAT 4没有问题,但是TOMCAT 5就起不来,怀疑是JDK的问题。

 pguan 回复于:2004-11-23 00:15:18
好文!收了!多谢发文

 fraser5 回复于:2004-12-01 10:23:35
怎么引用

 rocky_liyang 回复于:2004-12-15 15:09:24
下载jk: 
http://jakarta.apache.org/site/binindex.cgi 
??????????应该下哪个版本啊????
为什么没有
/conf/cf.d/tomcat文件??

 onlyzhhk 回复于:2004-12-22 23:54:01
TO侠客:由于很难联上apache的mod_jk.dll的下载链接,可以共享mod_jk.dll文件么,有急用,谢谢

 unix_start 回复于:2004-12-23 13:28:30
好帖!!!!顶!!!!

 jys1059 回复于:2004-12-23 15:29:49
好帖,收藏

延伸阅读

文章来源于领测软件测试网 https://www.ltesting.net/


关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备10010545号-5
技术支持和业务联系:info@testage.com.cn 电话:010-51297073

软件测试 | 领测国际ISTQBISTQB官网TMMiTMMi认证国际软件测试工程师认证领测软件测试网