返回列表 回复 发帖

[蓝冰原创]APACHE 2.2.4与TOMCAT6.0.2整合教程

为了让服务器执行PHP+JSP,我们可以使APACHE支持JSP。其实并不是真正让APAHCE来执行,只是让APACHE把JSP文件让给TOMCAT来执行。
一、前期准备工作:安装用的程序
APAHCE 2.2.4下载:
apache_2.2.4-win32-x86-no_ssl.msi
TOMCAT6.0.13下载:
Windows Service Installer

APACHE-tomcat连接器:mod_jk-apache-2.2.4.so(网上不太好找,为了下载方便,传到服务器上了)
本地下载: mod_jk-apache-2.2.4.rar (68.87 KB)
远程下载:http://www.hightechimpact.com/Apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.23/mod_jk-apache-2.2.4.so

二、安装过程
APAHCE安装目录:D:\Program Files\Apache Software Foundation\Apache2.2
TOMCAT安装目录:D:\Program Files\Apache Software Foundation\Tomcat 6.0
这两个安装过程就不详细说明了。
mod_jk-apache-2.2.4.so复制到APACHE安装目录下的modules目录,并新建一个workers.properties文件,用记事本打开workers.properties文件,写入如下内容:

  1. workers.tomcat_home="D:\Program Files\Apache Software Foundation\Tomcat 6.0"
  2. workers.java_home="D:\Program Files\Java\jdk1.6.0"
  3. ps=\
  4. wk.list=ajp13
  5. wk.ajp13.port=8080
  6. wk.ajp13.host=localhost
  7. wk.ajp13.type=ajp13
  8. wk.ajp13.lbfactor=50
  9. wk.ajp13.cachesize=10
  10. wk.ajp13.cache_timeout=600
  11. wk.ajp13.socket_keepalive=1
  12. wk.ajp13.socket_timeout=300
复制代码
其中
wk.list=ajp13这个要记住,一会儿会在APACHE的配置文件中用到
wk.ajp13.port=8080是TOMCAT服务器端口号,要和TOMCAT安装时设置的一样
wk.ajp13.host=localhost设置服务器IP或域名

下来再修改APACHE的配置文件D:\Program Files\Apache Software Foundation\Apache2.2\conf\httpd.conf
在最下面加入

  1. #TOMCAT整合开始
  2. LoadModule jk_module modules/mod_jk-apache-2.2.4.so
  3. JkWorkersFile modules/workers.properties
  4. JkOptions     +ForwardKeySize +ForwardURICompat -ForwardDirectories
  5. JkRequestLogFormat     "%w %V %T"
  6. JkMount  /*/servlet/* ajp13
  7. JkMount  /*.jsp ajp13
  8. #TOMCAT整合结束
复制代码
其中可以看到
JkMount  /*/servlet/* ajp13
JkMount  /*.jsp ajp13
这个是告诉APACHE如果有请求JSP文件的,就直接交给TOMCAT处理。网上有些人把这个地方写错了,写成JkMount  /* ajp13,这样下来会出现所有的页面请求都会交给TOMCAT处理,那还不如直接用TOMCAT运行,所有的设置都是“脱裤子放屁,多此一举”。这里我教正一下。
  通过上面的设置,基本上是把APACHE和TOMCAT整合到一起了,但我们要访问JSP是通过网页来访问的,而不止一个域名,也就是说APACHE和TOMCAT要进行虚拟主机的设置。
  
APACHE的虚拟主机设置如下:
修改 conf/httpd.conf找到
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
修改为
# Virtual hosts
Include conf/extra/httpd-vhosts.conf
然后编辑
conf/extra/httpd-vhosts.conf
加入如下代码:

  1. NameVirtualHost www.3qit.com
  2. <VirtualHost www.3qit.com>
  3.     ServerAdmin wk@3qit.com
  4.     DocumentRoot E:/WWW/jsp/
  5.     ServerName www.3qit.com
  6.     DirectoryIndex index.html index.jsp
  7.         
  8. <Directory E:/WWW/jsp/>
  9.   Options -Indexes FollowSymLinks
  10.   AllowOverride None
  11.   Order allow,deny
  12.   Allow from all
  13. </Directory>
  14. </VirtualHost>
复制代码
其中的域名和路径根据你自己情况设置

然后再设置TOMCAT虚拟主机
打开TOMCAT安装目录里的conf/server.xml文件,在原本的HOST节点后再加入一个HOST节点,内容如下:

  1.   <Host name="www.3qit.com" debug="0" appBase="E:\WWW\jsp" unpackWARs="true" autoDeploy="true">
  2.    <alias>www.3qit.com</alias>
  3.    <Context path="" docBase="E:\WWW\jsp" debug="0" reloadable="true"/>
  4.   </Host>
复制代码
这个设置是和APACHE的虚拟主机设置相对应。

通过这些设置,基本上是可以通过http://www.3qit.com来测试JSP的执行了。

三、启动服务,测试JSP执行
先启动TOMCAT服务,再启动apache服务。如果配置没有问题的话,应该是可以正常启动。

然后再我们新建的虚拟主机目录“E:\WWW\jsp”下新建一个index.jsp文件,写入如下内容:

  1. <%@ page contentType="text/html; charset=gb2312" language="java"%>
  2. <%
  3. out.println("JSP文件执行成功!");
  4. %>
复制代码
然后再通过http://www.3qit.com来访问一下,浏览器会显示出

JSP文件执行成功!
然后再通过
http://www.3qit.com:8080访问一下,你会发现和通过http://www.3qit.com访问的内容是一样的。
这样就说明apache和TOMCAT整合成功!
网络无限,生活无限
感觉好复杂哦```
︷釹亼說話_﹏﹏ソ娚亼少偛蟕﹖ ωǒ有點兒乖. 有點兒懷┊⊕o.⊿﹎.僐俍又._`/~呵愛┊▽┊ぐ 看吥慣得滾!..
不会。。。不过顶了。。。看不懂。嘿
不行、,不懂,现在发现自己无知得很啊什么都不懂啊    要好好学习啊
只恨自己懂得太少
吴坤大哥,我按你的步骤弄的。
我用的是localhost,访问http://127.0.0.1/出现“HTTP 错误 403 - 禁止访问 ”
而访问http://127.0.0.1:8080/出现的是“If you're seeing this page via a web browser, it means you've setup Tomcat successfully. Congratulations!”的页面。也不知道哪里弄错了,真郁闷。

有问题

我是配置是
apache 2.2.8
tomcat 6.0.16
mod_jk2.2.4

照你的配置

测试
http://love:8080/index.jsp 没有问题

http://love/index.jsp

却直接把我的代码显示出来了

<%@ page language="java" import="java.util.*"
        contentType="text/html; charset=UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%
        String path = request.getContextPath();
        String basePath = request.getScheme() + "://"
                        + request.getServerName() + ":" + request.getServerPort()
                        + path + "/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
        <head>
                <base href="<%=basePath%>">

                <title>My JSP 'index.jsp' starting page</title>
                <meta http-equiv="pragma" content="no-cache">
                <meta http-equiv="cache-control" content="no-cache">
                <meta http-

这样的数据?这是怎么回事啊?
极有可能是因为你的APACHE版本太新,mod_jk-apache模块不能正常工作
网络无限,生活无限
mod_jk-apache的版本要和APACHE的版本一致
网络无限,生活无限
蓝冰好强!```
返回列表