`

Jdk1.6+Tomcat6+Apache2+MySql5 安装(Windows版)

阅读更多

Apache

Apachehttp服务器,我们利用其对Tomcat进行负载均衡。目前最新版本为2.2.17,下载地址为http://httpd.apache.org/download.cgi#apache22。如下图:

 

目前已经出现Apache2.3.11,但是为beta版本,所以没有使用。

下载后直接安装msi即可,如果没有其他的http服务器(iis)则应该可以成功安装,端口即为80,能够访问http://localhost/说明安装成功。

Tomcat

Tocmat7目前已经出现稳定版本的7.0.12Tomcat6则为6.0.32。经我测试,这2个版本的Apache负载均衡配置过程都是一样的,因此下面的配置在Tomcat67集群是通用的。但是按照下面的配置,集群中Tomcat不能既有Tomcat6又有Tomcat7,否则虽能够负载均衡,但不能进行session复制,不知其他方式配置的集群是否可以。

Tomcat就不用怎么介绍了。既然在本地需要多个节点,那么需要下载ZIP版本的Tomcat

JK

JKTomcat提供给http服务器的插件(个人理解的),下载地址为http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.31/。如下图:

 

  

这里选择的是mod_jk-1.2.31-httpd-2.2.3.so,如果http服务器是Apache2.0.X版本,则必须选择mod_jk-1.2.31-httpd-2.0.52.so,页面下方有英文的说明,大家可以看下。

其实我也在网上看到Apache2.2已经集成Tomcat插件模块了,可以不用JK插件就可以实现Tomcat负载均衡,但也需要一些配置,而JK这个配置相比也不复杂,就先记录下来。

配置过程

下面就直接写过程了,我也是网络上学习的,只是总结下过程并且利用最新的ApacheTomcat测试了下,还是与网络上有些不同的。

修改Apache配置

1、修改httpd.conf

我的Apache安装在D:\Program Files\Apache Software Foundation\Apache2.2,找到conf目录下的httpd.conf,在文件的最后一行添加

include "D:\Program Files\Apache Software Foundation\Apache2.2\conf\mod_jk.conf"

2、新建mod_jk.conf文件,内容如下:

LoadModule jk_module modules/mod_jk-1.2.31-httpd-2.2.3.so

JkWorkersFile conf/workers.properties

#指定那些请求交给tomcat处理,"controller"为在workers.propertise里指定的负载分配控制器名

JkMount /*.jsp controller

3、将下载的JK插件mod_jk-1.2.31-httpd-2.2.3.so复制到Apache安装目录的modules目录下。

4、新建并编辑workers.properties文件,内容如下:

#server

worker.list = controller

#========tomcat1========

worker.tomcat1.port=11009

worker.tomcat1.host=localhost

worker.tomcat1.type=ajp13

worker.tomcat1.lbfactor = 1

#========tomcat2========

worker.tomcat2.port=12009

worker.tomcat2.host=localhost

worker.tomcat2.type=ajp13

worker.tomcat2.lbfactor = 1

#========tomcat3========

worker.tomcat3.port=13009

worker.tomcat3.host=192.168.0.80 //在我的虚拟机中的,可以算远程的吧

worker.tomcat3.type=ajp13

worker.tomcat3.lbfactor = 1

 

#========controller,负载均衡控制器========

worker.controller.type=lb

worker.controller.balanced_workers=tomcat1,tomcat2,tomcat3

worker.controller.sticky_session=false

worker.controller.sticky_session_force=1

#worker.controller.sticky_session=1

这里可以配置任意多个Tomcat,此处配置了3Tomat服务器,2个本地,1个远程,所以为了它们都能够顺利启动起来,本地的服务器端口都是不同的,如果Tomcat不再同一机器上,没必要改端口的。

配置Tomcat

配置3Tomcat服务器,将Tomcat解压后复制3份,我将每个文件夹分别命名为Tomcat1Tomcat2Tomcat3,修改每一份的server.xml配置,将Tomcat1中修改部分如下图:

Tomcat2中以上部分的server.xml为:

Tomcat3中以上部分的server.xml为: 

因为Tomat3在远程服务器,所以没必要改端口的,而我先进行的本地集群测试后将Tomcat3复制到远程服务器,所以这3Tomcat端口都不同。

AJP13connectorpoatjvmRoute名称和workers.properties中配置对应。

由于截图面积有限,还需要保证本地2个本地Tomcat配置serverportconnectorhttp1.1port都不相同。

测试

建立测试项目

建立test项目,需要在项目的web.xml中添加<distributable/>

建立test2.jsp,内容如下(网上都用这个测试,我就省的麻烦了)

<%@ page contentType="text/html; charset=GBK" %>

<%@ page import="java.util.*" %>

<html><head><title>Cluster App Test</title></head>

<body>

Server Info:

<%

out.println(request.getLocalAddr() + " : " + request.getLocalPort()+"<br>");%>

<%

  out.println("<br> ID " + session.getId()+"<br>");

  // 如果有新的 Session 属性设置

  String dataName = request.getParameter("dataName");

  if (dataName != null && dataName.length() > 0) {

     String dataValue = request.getParameter("dataValue");

     session.setAttribute(dataName, dataValue);

  }

  out.println("<b>Session 列表</b><br>");

  System.out.println("============================");

  Enumeration e = session.getAttributeNames();

  while (e.hasMoreElements()) {

     String name = (String)e.nextElement();

     String value = session.getAttribute(name).toString();

     out.println( name + " = " + value+"<br>");

         System.out.println( name + " = " + value);

   }

%>

  <form action="test2.jsp" method="POST">

    名称:<input type=text size=20 name="dataName">

     <br>

    :<input type=text size=20 name="dataValue">

     <br>

    <input type=submit>

   </form>

</body>

</html>

上面的测试页面就不解释了,很好理解。

Session测试

将项目部署到3个服务器,然后分别启动Apache3Tocmat服务器,这些Tomcat启动顺序随意,然后打开http://localhost/test/test2.jsp,结果如下图:
 

F5刷新页面,分别出现:

 

多次刷新页面的sessionID看是同一个ID,说明session是复制成功了。那么session中的存储的东西呢,在输入框中分别输入112233后,显示结果如下图: 

 

 

 

 

以上的测试说明,集群中的session已经共享,每个集群对于同一访问均有相同的session,而且session中存储的变量也复制了。

 

节点插拔测试

 

插拔意思是应该保证当运行的集群中某节点中关闭或者启动时,集群正常工作并且节点能够正常工作。

下面描述测试过程了,贴图太占地方了。

关闭Tomcat2,刷新页面,则不断访问Tocmat1Tomcat3,再关闭Tomcat1后,则只访问一个Tomcat3,说明节点关闭时运行正常。

如果重启Tomcat2,无论怎么刷新,始终访问Tomcat3,难道Apache不能将请求转发给中途启动的Tomcat2?。。。这时利用另外台机器访问页面,发现Tomcat2正常,然后在刷本地页面,又可以访问Tomcat2了。

从上面可以看出Apache的负载均衡时的算法了,对于每个新来的sessionApache按照节点配置中的lbfactor比重选择访问节点,如果某节点node1不能访问,则寻找下一可访问节点,并且将此node1就在该访问session的访问黑名单中,以后该session的访问直接不考虑node1,即使node1又可以访问了。而新来的session是无黑名单的,如果新的session能够访问到node1了,则会将node1在其他所有session访问的黑名单删除,这样其他session就又能访问node1节点了。以上只是个人经过测试后的猜想。

经过以上测试,说明Tomcat集群和负载均衡已经实现了。

 

关于集群我还有些疑问,所以又测试了下,直接把结论写出来:

1.集群下的相同的应用可以名称不同(好像没必要啊),只要配置server.xmlhost下的context具有相同的path即可。

2. 如果应用名称可以不同,那么应用下内容是否可以不同呢(这里考虑将不同应用通过集群看起来是一个应用,并且共享session),然后集群下不同应用映射为相同的访问path,具有相同的路径则负载,如果某路径只某个应用具有,则一直访问该应用。可现实很骨干啊,答案是否定的,至少我以上的配置不能实现。如果访问只有某应用具有的特别路径,那么只有负载到该应用才可以访问,否则直接路径未找到的错误页面了。

 

 

 如果您看过网上其他Apache+Tomcat的集群配置,您可能有的疑问?

1.网上大部分的文章配置2个tocmat的集群,有的将workers.properties下的worker.controller.sticky_session=1,
然后tomcat1中的server.xml中的jvmRoute设置为tomcat2,将tomcat2中的jvmRoute设置为tocmat1,当然我这样设置
也成功了,但是如果3个或者更多tocmat呢,怎么设置每个tomcat的jvmRoute,我不会所以才考虑现在的配置

2.server.xml中的Cluster配置问题,网上大部分都是使用BackupManager方式,即Cluster下又粘贴了一堆配置。其实
只要将其中注释掉的<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>去掉注释就完成session的集群
复制了。只是这俩种复制采用的方式不同而已。http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
这页面已经说的挺清楚了,集群的session复制默认是DeltaManager,是all to all的复制,意思是将集群下1个tomcat应用下的session
对所有的集群中的节点进行复制,即使那个节点没有发布应用。显然是不好的方式,但这在小规模的集群下并没神马问题。
而采用BackupManager,就是众多网上配置那样,对于需要复制的节点设置BackupManager自然也没问题,
但是它的性能并没有DeltaManager 好使“ Downside of the BackupManager: not quite as battle tested as the delta manager”。
因此,具体怎么设置就看大家了,通常说如果不是大规模集群,就默认就好了。反正我自己翻译的就是这个意思了,希望没有误导大家。

 

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

软件下载:
1, j2se jdk1.6
http://java.sun.com/javase/downloads/index.jsp

2, Tomcat 6
http://archive.apache.org/dist/tomcat/tomcat-6/

3, Apache 2.2.4
http://archive.apache.org/dist/httpd/

4, MySql5.0.27
http://dev.mysql.com/downloads/mysql/

5, mysql-connector-java-5.0.5
http://dev.mysql.com/downloads/connector/j/

6,mod_jk-apache-2.2.4.so
http://tomcat.apache.org/download-connectors.cgi

 可以根据需要下载最新的或最稳定的版本,如果部署线上环境可以用稳定的版本,
 但是如果在学习和调试,可以尝试新的版本,因为事物是向前发展的。

 一般网页程序或服务,如果不是非常巨大,用Tomcat做Web server就可以了,没有必要整合apache+tomcat。
 当然如果确实有必要,比如要把静态文件(html,图片等)和Java文件分别由apache和tomcat来解析,
 或者为了学习、测试、以及还要运行php等等情况,可以考虑整合下apache + tomcat。

 如果只需要JSP网页服务器的,只要安装JDK+Tomcat就可以了,安装过程非常简单。

                                               http://jiarry.blogchina.com/

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

安装过程
本篇安装介绍下载文档:
http://jarryli.googlepages.com/Jdk1.6Tomcat6Apache2MySql5Install.txt


Step 1 JDK安装
----------------------------------------------------------------------------------
 1.1 点击jdk-6u1-windows-i586-p.exe文件安装Jdk,选择目录(假使E:\jdk1.6),一路回车,安装完成
 1.2 添加JAVA环境变量(我的电脑右键->属性->高级->环境变量->系统变量)
        CLASSPATH   设置变量值  .;%JAVA_HOME%/bin;%JAVA_HOME%/jre/bin;%JAVA_HOME%/lib;%JAVA_HOME%/lib/tools.jar;%JAVA_HOME%/lib/dt.jar
        JAVA_HOME   设置变量值  E:/jdk1.6
        PATH        设置变量值  .;%JAVA_HOME%;%JAVA_HOME%/bin;
 1.3 在DOS命令行状态下测试Java是否成功安装,敲入java -version可以查看版本
     c:\>java -version
     java version "1.6.0_01"
     Java(TM) SE Runtime Environment (build 1.6.0_01-b06)
     Java HotSpot(TM) Client VM (build 1.6.0_01-b06, mixed mode, sharing)
 1.4 测试HelloWorld,新建一个HelloWorld.java的文件,内容如下
     public class HelloWorld {
        public static void main(String arg[]) {
           System.out.println("Hello World!这是Java测试程序,说明你已成功安装了Java -- Jarry!"); 
        }
     }
     在命令行输入javac HelloWorld.java,编译一下,然后再执行java HelloWorld,就能看到正常的输出了。
     出现错误一般是环境变量或大小写等有问题,仔细检查就没有问题了。     


Step 2 Tomcat安装
----------------------------------------------------------------------------------
 2.1 点击apache-tomcat-6.0.10.exe文件安装Tomcat,选择目录(假使E:\Tomcat6)安装完成后
 2.2 添加TOMCAT环境变量(我的电脑右键->属性->高级->环境变量->系统变量)
         TOMCAT_HOME   设置变量值  E:/Tomcat6
 2.3 从程序菜单或是服务里启动Tomcat,然后你在浏览器输入http://localhost:8080/就可以看到Tomcat欢迎页面。
     正常情况下都会成功,如果启动失败,请检查jakarta_service_日期.log日志,通过它一般可以解决问题。
 
     比如出现类似报错:
     [947  prunsrv.c] [error] Failed creating java
     看一下系统盘windows/system32/下是否丢失msvcr71.dll文件,如果缺失,需要从别的机器拷贝一个过来。

     打开浏览器 进入http://localhost:8080/,当看见Tomcat小猫的图标了,这样表示安装成功。

    至此,JSP服务器就搭建完成了,用于学习和测试没有问题了,如果想要更高级的配置,可以往下面继续看。

 Tomcat 6与Tomcat 5或者之前版本不一样的就是,首页没有显示具体的版本,猫猫也变大了些。
 没有admin管理页面了,admin在Tomcat 5.5来默认都没有了,不过可以下载admin包。
 而Tomcat 6.0没有看见admin包,不过这并不要紧,一般情况下也不需要admin包。

 Tomcat 6.0默认也没有开启servlet、禁止目录浏览。这需要去conf/下配置web.xml文件。
 修改listings为true即可以目录浏览,

            <param-name>listings</param-name>
            <param-value>true</param-value>
            <!-- false disable listings -->
            <!-- <param-value>false</param-value>-->
          <!-- false</param-value> -->

  开启servlet直接访问功能,把这两段注释打开。
 
    <servlet>
        <servlet-name>invoker</servlet-name>
        <servlet-class>
          org.apache.catalina.servlets.InvokerServlet
        </servlet-class>
        <init-param>
            <param-name>debug</param-name>
            <param-value>0</param-value>
        </init-param>
        <load-on-startup>2</load-on-startup>
    </servlet>

  <servlet-mapping>
        <servlet-name>invoker</servlet-name>
        <url-pattern>/servlet/*</url-pattern>
    </servlet-mapping>

    

 
 2.4 部署一个新项目testApp,去conf/下配置server.xml
 
    <Context path="/testApp" reloadable="true" docBase="E:/testApp"
    workDir="E:\Tomcat6\webapps\testApp\work" />
   
    docBase是你程序的目录,假设放在E根目录下
    这样新项目testApp就建立了,重启Tomcat,访问http://127.0.0.1:8080/testApp就可以看到你的目录了

 2.5 mysql-java连接器
     下载mysql java连接器,可以根据需要选择3.x 或是 5.x,之前我们通用3.x,现在可以试一下5.x
     http://dev.mysql.com/downloads/connector/j/
     将下载下来得 mysql-connector-java-5.0.5-bin.jar 文件放到 Tomcat6\commom\lib目录下
     (Tomcat 6.0 修改了目录结构,原common/lib下的所有jar包现在统一到lib目录下,
     因此你需要将你原来放置在common/lib目录下的jar改到lib目录下。)

 2.6 JDBC数据库连接池,假设已经安装了mysql(没安装就先安装),并且建立了数据库test, 修改conf/下server.xml

  <Context path="/testApp" docBase="E:/testApp"
        debug="5" reloadable="true" crossContext="true"  workDir="">
  <Resource  name="jdbc/testApp"
             auth="Container"
    type="javax.sql.DataSource"
             maxActive="100" maxIdle="30" maxWait="10000"
             username="root" password=""
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost:3306/test?autoReconnect=true&amp;useUnicode=true&amp;characterEncoding=utf-8"/>
 </Context> 

 
  对应输入端口和用户名密码,还要注意&要写成&amp; characterEncoding和useUnicode用来解决中文乱码问题,地版本配置会略有不同。
 
   另外,在项目文件夹/webapps/testApp/WEB-INF/下新建web.xml文件,添加下面的内容
  
 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4">
  <description>MySQL Test App</description>
     <resource-ref>
      <description>DB Connection</description>
      <res-ref-name>jdbc/testApp</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
      <res-auth>Container</res-auth>
  </resource-ref>
  </web-app>
 
 2.7  建立JDBCtest.jsp,可以来检测JDBC连接是否成功
     <!--page <br />&nbsp;&nbsp;&nbsp;&nbsp; language="java"<br />&nbsp;&nbsp;&nbsp;&nbsp; contentType="text/html; charset=GB2312"<br />&nbsp;&nbsp;&nbsp;&nbsp; pageEncoding="GB2312"<br />&nbsp;&nbsp;&nbsp;&nbsp;-->
 <%@ page
     language="java"
     contentType="text/html; charset=GB2312"
     pageEncoding="GB2312"
     %>
     <%@ page import="java.sql.*"%>
     <%@ page import="javax.sql.*"%>
     <%@ page import="javax.naming.*"%>
     数据库连接池测试结果:
     <%
     out.println("JDBC驱动检查<br>");
     try {
      Class.forName("com.mysql.jdbc.Driver");
      out.println("检查成功!<br>");
     } catch (ClassNotFoundException cnfe) {
      out.println("JDBC驱动创建失败!<br>");
      cnfe.printStackTrace();
     }
    
     out.println("<br>环境命名空间检查<br>");
     try {
  &nbs;   javax.naming.Context ctx = new javax.naming.InitialContext();
      javax.naming.Context envContext =
       (javax.naming.Context) ctx.lookup("java:/comp/env");
      out.println("检查成功!<br>");
      
      out.println("<br>查找数据源<br>");
      
     // org.apache.commons.dbcp.BasicDataSource ds =
     //   (org.apache.commons.dbcp.BasicDataSource) envContext.lookup("jdbc/testApp");
       DataSource ds =(DataSource)ctx.lookup("java:comp/env/jdbc/testApp");
      out.println("查找成功!<br>");
     // 早期版本可以用BasicDataSource接收以获得比DataSource接口更具体的信息,便于错误查找
      
      out.println("<br>检查数据库<br>");
      Connection conn = ds.getConnection();
      DatabaseMetaData metaData = conn.getMetaData();
      ResultSet rs = metaData.getCatalogs();
      while (rs.next())
      out.println(rs.getString(1) + "<br>");
      rs.close();
     } catch (javax.naming.NamingException e) {
      out.println("环境变量上下文创建失败!<br>");
      e.printStackTrace();
     } catch (SQLException e) {
      out.println("数据库操作执行失败!<br>");
      e.printStackTrace();
     }
   %>

  2.7 servlet映射,如果你不想通过/servlet/com.file.web.HelloWorld来访问你的程序,添加映射是好方法,
  修改项目文件夹WEB-INFO/web.xml文件,添加
 
  <servlet>
    <servlet-name>HelloWorld</servlet-name>
    <servlet-class>com.file.web.HelloWorld</servlet-class>
  </servlet>
  <servlet-mapping>
    <servlet-name>HelloWorld</servlet-name>
    <url-pattern>/hello</url-pattern>
  </servlet-mapping>

 
  这样就可以通过/hello来访问servlet程序。


Setp 3  Apache安装
----------------------------------------------------------------------------------

 3.1 Apache 一路回车安装即可
     敲入http://127.0.0.1/就能看见欢迎界面。
     欢迎界面与2.0.x或者1.x不一样,你看见的将是 It works!, 而不再是,您能看见这个页面,说明您已经成功安装之类的。

 3.2 连接apache 与 tomcat,通过apache来解析静态文件,tomcat解析java确实不错。
     如果你打算只用Tomcat做服务器的话,那就不用安装apache了,实际上Tomcat作为服务器也非常好。
     当然了,整合apahce + tomcat 也不麻烦,主要是下载mod_jk.so文件,和增加两个配置文件。
 
     3.2.1 下载 mod_jk.so (http://mirrors.ibiblio.org/pub/mirrors/apache/tomcat/tomcat-connectors/)
           参阅文章: http://tomcat.apache.org/connectors-doc/webserver_howto/apache.html
                      http://tomcat.apache.org/connectors-doc/reference/workers.html
           这里使用的是jk而不是jk2,下载得到的是mod_jk-apache-2.2.4.so文件,可以根据apache版本来选择合适的。
           将下载文件copy至Apache的modules目录下
           
    3.2.2 新建workers.properties,便于管理就在apache2/conf下,加入下面内容
   
          JkAutoAlias E:/Tomcat6/webapps     #tomcat绝对路径webapps目录
          JkMount /*.jsp ajp13
          JkMount /*/servlet/ ajp13
  
  
    3.2.3  新建mod_jk.conf文件,也放在apache2/conf目录下,加入下面内容
          # Load mod_jk module
          LoadModule jk_module modules/mod_jk-apache-2.2.4.so
         
         # Where to find workers.properties
          JkWorkersFile conf/workers.properties
         
#对刚新建的workers.properties文件
         
          # Where to put jk logs
          JkLogFile logs/mod_jk.log
         
          # Set the jk log level [debug/error/info]
          JkLogLevel info
         
          # Select the log format
          JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
         
          # JkOptions indicate to send SSL KEY SIZE,
          JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
         
          # JkRequestLogFormat set the request format
          JkRequestLogFormat "%w %V %T"
         
          # Send servlet for context /examples to worker named ajp13
          JkMount /servlet/* ajp13    
          # Send JSPs for context /examples to worker named ajp13
          JkMount /*.jsp ajp13
          JkMount /*.do ajp13
         
        &nsp; # 增加testApp目录,把改目录下所有文件全部交给tomcat处理,
          # JkMount /testApp/* ajp13
          # 也可以根据需要来设定,比如只把testApp/*.jsp交给tomcat处理
          JkMount /testApp/*.jsp ajp13
    
   3.2.4  修改conf/httpd.conf文件,把mod_jk.conf文件include装载进来,添加如下
         
          Include conf/mod_jk.conf
          #jarry add for contact to tomcat 
         
          给apache添加testApp目录
         
          #添加testApp
          Alias  /testApp  "e:/testApp"
          <Directory  "e:/testApp"> 
                  Options  Indexes  MultiViews 
              Options Indexes FollowSymLinks Includes ExecCGI
                  AllowOverride  None          
                  Order  allow,deny   
                  Allow  from  all   
          </Directory>          
         
          重启apache,
          通过http://172.18.101.17:8080/testApp/http://172.18.101.17/testApp/
          都能访问Tomcat项目,说明整合成功。
          也可以建立一个jsp文件来测试,如果不用8080端口能直接解析,那说明整合成功。  
          如果出现问题注意查看,apache/logs/下的log文件,仔细对照,一般就能解决啦。             
                                   

Setp 4 MySql安装
----------------------------------------------------------------------------------

 MySql与Apache一样,一路回车即可。
 MySql5.x 与 4.x 安装区别不大,5.x会提示配置Mysql一些属性,诸如语言啦。根据需要设定即可。
 启动通过mysql/bin下键入 mysql -uroot -p或者从菜单栏MySQL Command Line Client进入到命令行。
     4.1 从程序菜单找到mysql命令行或在mysql/bin目录下,执行mysql -uroot -p密码就可以进入mysql
     Enter password:
     Welcome to the MySQL monitor.  Commands end with ; or \g.
     Your MySQL connection id is 42 to server version: 5.0.27-community-nt
    
     Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
    
     mysql>

    
     4.2 敲入 \s 可以查看MySql版本信息
     mysql> \s
     --------------
     E:\MySQL5\bin\mysql.exe  Ver 14.12 Distrib 5.0.27, for Win32 (ia32)
    
     Connection id:          42
     Current database:
     Current user:          
root@localhost
     SSL:                    Not in use
     Using delimiter:        ;
     Server version:         5.0.27-community-nt
     Protocol version:       10
     Connection:             localhost via TCP/IP
     Server characterset:    gbk
     Db     characterset:    gbk
     Client characterset:    gbk
     Conn.  characterset:    gbk
     TCP port:               3306
     Uptime:                 2 days 4 hours 52 min 9 sec
    
     Threads: 2  Questions: 382  Slow queries: 0  Opens: 28  Flush tables: 1  Open ta
     bles: 0  Queries per second avg: 0.002

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

总的说来,安装新版与老版本差不多,只是一时兼容性不是太好。
不过用来开发和学习,使用新版还是挺不错的,可以学到新的方法和东西,新版本整合更容易些
而如果部署对外的服务,还是采用经典或是成熟的版本吧。:)
安装过程要多看apache官方网站的文档,http://tomcat.apache.org/tomcat-6.0-doc/
通过文档就可以详细了解安装步骤了,出错了也好检查,版本不同配置等难免会有一点不同,这是看官方文档就很重要了。

参考资料:
安装Jdk+Tomcat+Apache+PHP+MySql (Windows) 详细介绍 http://jiarry.bokee.com/2375369.html
安装Jdk+Tomcat+Apache+PHP+MySql (Linux) 详细介绍 http://jiarry.bokee.com/2425368.html

下载文档:
http://jarryli.googlepages.com/Jdk1.6Tomcat6Apache2MySql5Install.txt

 


 

补充一下之前的一些记录:

配置apache与php与tomcat,让apache支持php与jsp,servlet,这样强壮的apache做为web server,专门来运行强大的网站,所以文件放到E:\Apache2\htdocs下即可。当然tomcat还是可以当独用的,只不过用来开发或测试还是不错的,如果作为网站来发布还是用apache这种方式好。这下,apache才发挥出功效来。呵呵。

下载并正确装apache好jdk、tomcat,开始整合apahce+tomcat
修改apache/conf/下的httpd.conf文件添加如下内容,以支持jsp与php

1,拷贝mod_jk_2.0.46.dll文件到E:\Apache2\modules目录下
2,修改http.conf文件,添加如下jk模块内容
LoadModule jk_module modules/mod_jk_2.0.46.dll
# 或者.so文件
#装载mod_jk模块,用于处理Apache和Tomcat的连接
JkWorkersFile "E:/Apache/conf/workers.properties"
#指出mod_jk模块工作所需要的工作文件workers.properties的位置
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13
#将所有servlet 和jsp请求通过Ajp13的协议送给Tomcat,让Tomcat来处理
JkLogFile "E:/Apache/logs/mod_jk2.log"
JkLogLevel info

3,支持php,根据目录修改文件。
#jarry added for php
ScriptAlias /php/ "E:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php-cgi.exe"
AddType application/x-httpd-php .php .phtml .php3 .php4
AddType application/x-httpd-php-source .phps

4,将以下内容存成workers.properties文件至apache/conf下。
# Created by JarryLi
# Copyright all reserved!
# Email:jiarry@hotmail.com

 # 根据现行安装目录做修改
workers.tomcat_home=E:\Tomcat5
 #让mod_jk模块知道Tomcat
workers.java_home=E:\j2sdk1.4
 #让mod_jk模块知道j2sdk
ps=\
worker.list=ajp13
 #模块版本,现有ajp14了,不要修改
worker.ajp13.port=8009
 #工作端口,若没占用则不用修改
worker.ajp13.host=localhost
 #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13
 #类型
worker.ajp13.lbfactor=1
 #代理数,不用修改
 
5,访问apache下的一个目录,试试访问php文件和jsp,如果均能访问表示正确。如有问题,请仔细检查log文件,一般都能解决。

或者



1、exe安装
2、选择目录
3、修改http.conf文件,增加目录
4、开启目录浏览,其他index文件浏览等功能
5、添加php

# 加载tomcat支持 added by jarry
# LoadModule jk2_module modules/mod_jk2.so

# For PHP 5 do something like this:
# LoadModule php5_module "E:/PHP/php5apache2.dll"
# AddType application/x-httpd-php .php .php3 .phps
# configure the path to php.ini
# PHPIniDir "E:/php"

# 添加php #修改为自己安装目录下的php*.exe。 added by jarry
ScriptAlias /php/ "E:/PHP/"
Action application/x-httpd-php "/php/php-cgi.exe"
#Action application/x-httpd-php "/php/php.exe"
AddType application/x-httpd-php .php .phtml .php3
AddType application/x-httpd-php-source .phps

6、整合apache+tomcat

[Sat Jun 23 20:01:23 2007] [error] [client 127.0.0.1] client denied by server configuration: E:/PHP/php-cgi.exe, referer: http://127.0.0.1/phpApp/
<Directory />
    Options FollowSymLinks
    AllowOverride None
#    Order deny,allow
#    Deny from all
    Order allow,deny
    Allow from all
    Satisfy all
</Directory>

把配置文件改改,是apache 2.2.2的配置文件问题。

7、php.ini可以放在windows或者php根目录下

8、添加虚拟目录
Alias /ut    "E:/ut"
<Directory "E:/ut">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

10、整合apache2.2.2 + tomcat 5.5.16 mod_jk-apache-2.x.x.so

10.1
下载 mod_jk-apache-2.2.4.so,把so文件放到apahce modules文件夹下
http://mirrors.ibiblio.org/pub/mirrors/apache/tomcat/tomcat-connectors/jk/binaries/win32/jk-1.2.23/

10.2
apahce/con/下新建 workers.properties 文件
添加内容
workers.tomcat_home=E:/Tomcat5.5     #让mod_jk模块知道Tomcat的位置
workers.java_home=E:/Jdk1.5          #让mod_jk模块知道jre的位置
ps=\
worker.list=ajp13                     #模块版本
worker.ajp13.port=8009                #工作端口,若没占用则不用修改
worker.ajp13.host=localhost           #本机,若上面的Apache主机不为localhost,作相应修改
worker.ajp13.type=ajp13               #类型
worker.ajp13.lbfactor=1               #代理数,不用修改

或者是

JkAutoAlias E:/Tomcat5.5/webapps     #tomcat的绝对路径webapps目录
JkMount /*.jsp ajp13
JkMount /*/servlet/ ajp13

10.3
修改apahce/con/httpd.conf,在末尾添加, 或者把这些放入到新建mod_jk.conf文件里,在通过httpd.conf装载进来(Include conf/mod_jk.conf)。

LoadModule jk_module modules/mod_jk-apache-2.2.4.so
#此处mod_jk的文件为你下载的文件
JkWorkersFile "E:/Apache2/conf/workers.properties"
#指定tomcat监听配置文件地址
JkLogFile "E:/Apache2/conf/mod_jk.log"
# 记录日志的工作级别
JkLogLevel info
# 将所有servlet 和jsp请求通过Ajp13的协议送给Tomcat,让Tomcat来处理
JkMount /*/servlet/* ajp13
JkMount /servlet/* ajp13
JkMount /*.jsp ajp13

10.4
在testApp目录下分别建立php,jsp,serlvet文件测试,如果都能解析说明成功。


另附:
Tomcat6在JDK1.6下不能启动
以及Tomcat5在JDK1.6下不能启动的解决:

Tomcat6在JDK1.6下不能启动的解决[转]

    今天在一台新的机器上, 装开发环境, 下载了新的JDK1.6和Tomcat6. 安装完毕后, Tomcat无法正常启动,
在Tomcat的Logs中发现有以下错误:

 javajni.c] [error] The specified module could not be found.

到底是怎么回事呢?
因为是模块加载的问题, 所以拿出从systeminternals下载的FileMon来监测到底是哪个东西加载失败了.
启动FileMon,
然后, 尝试启动Tomcat, 结果当然是失败了.
然后在FileMon中过滤一下, 很快就找到了一个错误: MSVCR71.dll, 这个动态链接库加载失败.
经过搜索后发现在JDK的bin目录下有这个文件.
将其复制到system32目录下, 然后再启动Tomcat, 果然成功了!

这个问题可能和jakarta_servic加载动态链接库的LOAD_WITH_ALTERED_PATH选项有关.
分享到:
评论

相关推荐

    安装myeclipse+JDK1.6+tomcat6.0+mysql5.1及部署应用

    安装 MyEclipse+JDK1.6+Tomcat6.0+MySQL5.1 及部署应用 本资源提供了详细的安装和配置指南,涵盖了 JDK1.6、Tomcat6.0、MySQL5.1 和 MyEclipse 的安装、配置和部署。该手册适合初学者和经验丰富的开发者,帮助他们...

    jdk1.6+mysql5.0+tomcat6.0+bat免安装说明

    标题中的"jdk1.6+mysql5.0+tomcat6.0+bat免安装说明"揭示了这个压缩包文件包含的是三个核心组件——Java Development Kit(JDK)1.6版本,MySQL数据库5.0版本,以及Apache Tomcat应用服务器6.0版本的免安装版本,...

    jdk16+apache2+tomcat6+mysql5

    jdk16+apache2+tomcat6+mysql5 软件下载 安装过程 JDK安装 Tomcat安装 Apache安装 MySql安装

    JDK + Tomcat + MySQL环境集成工具

    "JDK + Tomcat + MySQL环境集成工具"是一个组合了三个核心组件的解决方案,它们分别是Java Development Kit(JDK)、Apache Tomcat服务器和MySQL数据库。这个集成工具旨在简化开发和部署过程,帮助开发者快速建立一...

    JDK+TOMCAT+MYSQL图文安装指南

    总结,本指南详细介绍了JDK、Tomcat和MySQL的安装过程,以及如何配置相应的环境变量。这些是搭建Java Web开发环境的基础,对于后续的JEECMS或其他Java Web应用的开发和部署至关重要。每个步骤都需要仔细操作,确保每...

    Jdk+jsp+tomcat+mysql配置过程

    本文将详细介绍如何在Windows操作系统上配置JDK(Java Development Kit)、JSP(Java Server Pages)、Tomcat服务器以及MySQL数据库的过程。通过本教程,您将能够搭建一个完整的Java Web开发环境。 #### 二、下载所...

    集成jdk+mysql+tomcat+web项目打包成rpm

    本篇将深入探讨如何将Java环境(JDK)、MySQL数据库、Tomcat应用服务器以及Web项目整合打包成一个RPM软件包,以便实现一键安装。 首先,让我们理解RPM的基本概念。RPM是一种用于安装、升级、查询、验证和卸载软件的...

    tomcat+mysql+jdk_jdk_tomcat+mysql+jdk脚本安装_Mysql+Tomcat+JDK_

    标题和描述提到的“tomcat+mysql+jdk脚本安装”表明这是一个自动化安装过程,通过脚本来一次性设置这些组件,便于快速搭建开发或生产环境。下面将详细解释这三个组件以及它们的相互作用。 1. JDK(Java Development...

    安装Jdk+tomcat+apache+PHP+mysql(linux).pdf

    在Linux环境下搭建一个完整的Web开发环境,包括JDK、Tomcat、Apache、PHP和MySQL,是许多开发者在初期阶段必须掌握的基本技能。本教程将基于内核为2.4.20-8的Red Hat 9 Linux操作系统进行,尽管其他Linux发行版或...

    jdk+jsp+tomcat+mysql配置过程

    - **安装**: 运行`jdk-1_5_0_04-windows-i586-p.exe`安装程序,默认安装即可或自定义安装路径。 - **环境变量配置**: - **JAVA_HOME**: 设置为JDK的安装路径(例如:`C:\Program Files\Java\jdk1.5.0_04`)。 - **...

    jdk8+tomcat8.5+maven

    根据提供的文件标题、描述、标签以及部分内容来看,这里主要涉及的是Java开发环境的配置与使用,具体包括JDK 8、Tomcat 8.5 和 Maven这三个关键组件。下面将详细解析这些知识点。 ### 一、JDK 8 #### 1.1 概述 JDK...

    apache+mysql+php+phpadmin+zend+tomcat+jsp+perl+cgi.exe

    apache+mysql+php+phpadmin+zend+tomcat+jsp+perl+cgi.exeapache+mysql+php+phpadmin+zend+tomcat+jsp+perl+cgi.exeapache+mysql+php+phpadmin+zend+tomcat+jsp+perl+cgi.exe

    服务器CentOs6.6+ JDK1.7+Tomcat7+MySQL5.6安装部署记录

    ### 服务器CentOs6.6+ JDK1.7+Tomcat7+MySQL5.6安装部署记录 #### 一、安装CentOs6.6 **步骤解析:** 1. **下载与烧录ISO镜像:** - 首先需要下载好Linux (CentOs6.6mini) 的ISO文件,通过U盘制作工具如“大白菜...

    Eclipse+Tomcat+MySql搭建javaweb开发环境借鉴.pdf

    我们可以从Apache的官方网站下载Tomcat 6.X。我们下载的是32-bit/64-bit Windows Service Installer版本的Tomcat。 4. MySql的下载和安装 MySql是一款轻巧开源的数据库引擎。我们可以从MySql的官方网站下载MySql ...

Global site tag (gtag.js) - Google Analytics