配置Apache+Tomcat
那位高手能详细的告诉我怎么样配置Apache+Tomcat吗?包括要什么软件
怎么装?现在我的Tomcat和Apache都能单独工作,但就是不能相互配合。
书上和网上讲的都不详细,请各位多指教,多谢!
问题点数:200、回复次数:12Top
1 楼scarab(没有尾巴的鲨鱼)回复于 2002-04-19 17:46:11 得分 50
安装配置篇Apache+Tomcat 文章来源:www.jspcn.com
环境配置一向是一个比较烦的一件工作!本文的目的就是要轻松为你搞定安装和配置SERVLET和JSP的执行环境。
首先,到java.apache.org去下载一个tomcat3.1,tomcat3.2。笔者用的是tomcat3.1。下载的是一个ZIP文件。将它extract到一个目录下面。比如c:下面。在c盘下面就会出现一个jakatar-tomcat的目录。你可以将这个目录改个名字。我将目录名改为tomcat。现在打开c: omcatconf目录下的server.xml文件。找到ContextManager这个tag,你将可以看到:
<Connector className="org.apache.tomcat.service.SimpleTcpConnector">
<Parameter name="handler" value="org.apache.tomcat.service.http.
HttpConnectionHandler"/>
<Parameter name="port" value="80"/>
</Connector>
因为tomcat可以作为一个独立的服务器使用,所以有它自己的port号。在这里可以修改它缺省的port号。注意要修改为一个你机器上还没有被占用的port号。我改成9000。
现在到c: omcatin目录下面,你可以看到一个startup.bat的批处理文件。在执行这个文件前,如果你用的是JDK1.2.1或JDK1.2.2的话,请将JDK_HOMELIB ools.jar这个文件放到classpath中去。
(注:设置classpath的方法:右键单击“我的电脑”à 选择属性à 环境,如果还没有classpath这个环境变量,就添加一个,如果有了就在它的基础上修改,加上JDK_HOMELIB ools.jar)
现在可以执行startup.bat这个文件了。(如果在执行时出现out of environment space的提示,就将你的DOS窗口的缓冲区大小开得大些。具体作法:在DOS 窗口的菜单中的属性--> 内存 --> 总共和初始环境改大点)
在执行完后,startup.bat会在另一个窗口开start tomcat的。现在你可以享受一下你的成果了。打开浏览器,在地址栏:http://localhost:9000/
然后回车。你应该看到了一只jakatar-tomcat。现在在地址栏键入:
http://localhost:9000/examples/servlet/,回车。你应该看到一个servlet的index的页面,点击其中的例子servlet看看吧。现在在地址栏键入
http://localhost:9000/examples/jsp/,回车。你应该看到一个类似刚才servlet index页面的一个页面。点击jsp的例子看看吧。如果在点击了一个JSP的例子后出现500的错误,如果没有别的错误信息,在IE5的工具菜单à Internet选项à 高级,把显示友好的HTTP错误的选项去掉,然后IE就会报出具体的出错信息。原因是你没有将tools.jar放到classpath中去。
现在要将tomcat连接到apache上去了。首先到www.apache.org上去下载一个Apache Web Server,我用的是Apache1.3.12。再到java.apache.org上去下载一个Jserv,我用的是Jserv1.1.1。先安装Apache Web Server(比如安装在c:apache目录下面)。安装完后需要修改c:apacheconfhttpd.conf文件,找到Servername,修改为你喜欢的名字,找到port,修改为未被占用的端口。再安装Jserv(比如安装在c:Jserv目录下面)。安装Jserv需要指定JVM所在的目录,你可以指定JDK_HOMEBIN目录。需要指定JSDK所在目录,我指定的是我从java.sun.com上面下载的JSDK安装后的目录。(实际上它要找的是servlet.jar这个文件,你可以指定tomcatlibservlet.jar试一试,我并没有这样试过)
这时候实际上Apache已经支持Servlet了,但还不支持JSP。所以你需要修改c:apacheconfhttpd.conf文件。用文本编辑器打开httpd.conf,在文件最后加上:Include “Tomcat_Homeconf omcat-apache.conf”(请注意,tomcat-apache.conf这个文件是在tomcat运行后由tomcat自动产生的。所以要先开tomcat,再打开Apache)。
现在先启动tomcat(c: omcatinstartup.bat),当出现了另一个窗口后,启动Apache(c:apacheinapache.exe或者通过开始菜单à 程序à Apache Web Serverà Start Apache启动)。如果此时通过后者启动Apache,有一个DOS窗口一闪后就消失了,说明对Apache+JServ+tomcat的配置还有问题,应该通过第一种方法启动Apache,此时你就能在屏幕上看到具体的出错信息。如果出错信息是:apj* : can’t be specified more than once per host。(*号代表一些字符串,比如ApJServLogLevel等等),你就要修改c:Jservconfjserv.conf文件,将apj*的相关行注释掉就可以,可能需要注释5-6行。如果Apache也正常启动的话,现在你可以在地址栏键入http://localhost:apache_port/examples/servlet/ 来通过Apache+tomcat调试Servlet,这里apache_port是Apache的端口号,可以通过修改c:apacheconfhttpd.conf这个文件修改端口号;在地址栏键入http://localhost:apache_port/examples/jsp/ 来调试JSP。
如果读者细心的话,会发现前面测试用的都是examplesjsp目录。现在就告诉你怎么创建你自己的目录。先在c: omcatwebapps目录下面创建testdir目录。在testdir目录下面创建jsp目录和classes目录。现在用文本编辑器打开c: omcatconf目录下面的server.xml。在<ContextManager>的结束tag前面加上:
<Context path="/testdir" docBase="webapps/testdir" debug="0" reloadable="true" >
</Context>
然后将c: omcatwebapps estdirclasses目录放到classpath这个环境变量中去。用文本编辑器编辑下面这个文件。
<html>
<body>
<%
int i;
for(i=1;i<6;i++){
out.println("<h" + i + ">Hello World</h" + i + ">");
}
%>
</body>
</html>
存为c: omcatwebapps estdirjsphelloworld.jsp。在地址栏键入:
http://localhost:apache_port/testdir/jsp/helloworld.jsp 看看结果吧。
再测试一下Servlet。用文本编辑器编辑下面这个文件。
import java.io.*;
import java.text.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void service(HttpServletRequest request,
HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
ServletOutputStream out = response.getOutputStream();
out.println("<html>");
out.println("<head>");
String title = “Hello World”;
out.println("<title>" + title + "</title>");
out.println("</head>");
out.println("<body bgcolor="white">");
out.println("<body>");
out.println("<h1>" + title + "</h1>");
out.println("</body>");
out.println("</html>");
}
}
存为c: omcatwebapps estdirclassesHelloWorld.java,用javac编译后,在地址栏键入http://localhost:apache_port/testdir/servlet/HelloWorld 看看结果吧。
Top
2 楼kaitty(阿凯)回复于 2002-04-19 17:59:36 得分 0
这篇文章我看过了,但我照着她做没有成功,请高手帮忙。Top
3 楼scarab(没有尾巴的鲨鱼)回复于 2002-04-19 18:01:22 得分 0
怎么个错误法?Top
4 楼kaitty(阿凯)回复于 2002-04-19 18:14:15 得分 0
安装Apache JServ时候老说找不到jsdk.jarTop
5 楼scarab(没有尾巴的鲨鱼)回复于 2002-04-19 18:19:16 得分 0
是不是批处理例如startup中没有设对路径啊Top
6 楼kaitty(阿凯)回复于 2002-04-22 07:56:14 得分 0
我用的是windows2k,现在所有的软件都装上了,
http.conf文件尾部是这样的,
# Include the configuration for Apache JServ 1.1.2
Include "C:\Apache Tomcat 4.0\conf\tomcat-apache.conf"
# Include the configuration for Apache JServ 1.1.2
Include "C:\Apache JServ 1.1.2\conf\jserv.conf"
应该没什么错误吧,但 apache + tomcat 还是不能工作。
请大家指点,多谢。Top
7 楼JeffHe(雅永紫)回复于 2002-04-22 10:47:21 得分 0
我的安装过程:
win2k apache1.3.24 tomcat3.3.1
(1)j2sdk-1_3_1_02-win.exe:
系统变量:
path=%JAVA_HOME%\bin
classpath = .;%JAVA_HOME%\lib
JAVA_HOME = C:\jdk1.3.1_02
(2)apache_1.3.24:
Network Domain = ccit.com
Server Name = jeff.ccit.com
EMail = hjjf@263.net
Port = 80
#Change the Apache doc directory:
#DocumentRoot "C:/Program Files/Apache Group/Apache/htdocs"
DocumentRoot "C:/ApacheDocs"
#<Directory "C:/Program Files/Apache Group/Apache/htdocs">
<Directory "C:/ApacheDocs">
改默认的主页存放目录,DocumentRoot,把它后面的内容改成主页存放目录,如“d:\web”
<Directory "C:/ApacheDocs">可以更改访问目录权限
(3)tomcat 3.3.1(可以独立作为WEB SERVER的)
tomcat.zip解压缩到C:\tomcat-3.3.1目录下
TOMCAT_HOME = C:\tomcat-3.3.1
classpath += %TOMCAT_HOME%\lib
bin\startup.bat 启动 tomcat ,http://jeff:8080测试已安装完毕(看到一只可爱的cat)
(4)Apache JServ 文件即可,不是JServ所有 (不是将tomcat融入apache,JServ也可作为Servlet容器的)
修改 C:\tomcat-3.3.1\conf\jserv\tomcat.properties (不用,这个文件是JServ启动tomcat时才用的,
若手动则不用)
把ApacheModuleJServ.dll文件拷贝到$APACHE_ROOT\modules目录下
然后打开http.conf文件,加入下面的两行:
LoadModule jserv_module modules/ApacheModuleJServ.dll (也不用,在tomcat.conf中已有)
INCLUDE C:\tomcat-3.3.1\conf\jserv\tomcat.conf
在tomcat.conf中加入如下,将/test的请求由tomcat处理:
ApJServMount /test ajpv12://jeff:8007/test
在server.xml中加入,完成到绝对路径的映射:
<Context path="/test" docBase="C:/ApacheDocs/test"
debug="0" reloadable="true" >
</Context>
重启Apache服务,并执行C:\tomcat-3.3.1\bin\startup.bat
http://127.0.0.1/examples/jsp/HelloWorld.jsp,你将看到刚才看到的画面,这证明你的Tomcat已经和Apache完善地结合在一起了,错!!!!!!
要使用带有code的sample来验证!!!!!!!!!!!!!!
[optional] 如果需要,停掉tomcat的8080服务:
<!--<Http10Connector port="8080"
secure="false"
maxThreads="100"
maxSpareThreads="50"
minSpareThreads="10" />
--> 注释掉即可
(5)tomcat service to win2000 (A or B) { Don't do that now , just waiting ... }
A. Get jk_nt_service.exe (have some problems with JDK 1.3)
conf/jk/wrapper.properties:
a.Update the wrapper.tomcat_home property to point at your tomcat home.
b.Update the wrapper.java_home property to point at your Java home.
c.wrapper.jvm.options property is non-blank, or the "${wrapper.jvm.options}" string is removed from the wrapper.cmd_line property.
or B. JavaService.exeTop
8 楼kaitty(阿凯)回复于 2002-04-23 10:16:08 得分 0
ApJServMount /test ajpv12://jeff:8007/test中的ajpv12://是什么意思?
谁能告诉我配置的关键是什么地方?
Apache是如何响应*.jsp文件的。
实在不明白.Top
9 楼kaitty(阿凯)回复于 2002-04-23 10:34:14 得分 0
再加100分,有没有人告诉我???Top
10 楼Bogues(別問我是誰)回复于 2002-04-23 18:54:52 得分 20
推荐:
http://www.5xsoft.com/data/200112/1714342201.htm
http://www-900.ibm.com/developerWorks/java/l-tomcat/index.shtml
看过这两篇文章,一定搞定!!Top
11 楼JeffHe(雅永紫)回复于 2002-04-28 09:49:49 得分 130
sorry,来晚了:
在tomcat.conf中加入如下,将/test的请求由tomcat处理:
ApJServMount /test ajpv12://jeff:8007/test
ajpv12就是从apache到tomcat的通道啊,如果apache发现是jsp,
就交给tomcat处理,但如何交给tomcat呢,就是这个ajpv12Top
12 楼kaitty(阿凯)回复于 2002-04-29 10:24:53 得分 0
Thanx,jeffhe.
我现在用的是apache tomcat,不用配置就可以用,省去了很多麻烦。
很感谢你的解答。Top




