热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结

Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结,阅读Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结,1.作者:moonsbird题目:Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经

1.作者:moonsbird 
  题目:Windows下Apache+Tomcat+MySQL+jsp+php的服务器整合配置经验总结
  时间:2004.8.19
  最初发表于西南交通大学锦城驿站  
2.本文是作者学习几年来学习jsp/配置服务器环境的经验总结。可以转载,但请注明出处.
   
   开始学习jsp很久了,网上有许多关于jsp整合的例子,但存在着许多问题。
对于Apache+Tomcat+MySQL+jsp+php的整合,针对不同的Tomcat和apache的版本,稍微有些区别。
即使你E文很好,去看Tomcat和Apache的手册,也不一定能完全整合成功。暑假在家,网速不像
在交大那样---老黄牛拉破车样的慢,所以基于此作者查阅大量网上资料,汲其精华,写这篇文
章希望能为初学者提供方便,也可以作为高手的参考手册。
    jsp是优秀的,它基于Java技术,利用JavaBean/Servlet制作动态网站,Java强大的面向对
象编程使Jsp相对于php和asp有着得天独厚的优势。但学习jsp相对于php和asp来说是有难度的。
我想原因之一就是jsp服务器环境的配置要棘手一些。对于动态网页制作,在交大asp曾很长时
间占据上风,不太多的“高手”(也许很多人认为使用jsp的是高手吧)使用jsp,交大比较成功的
jsp网站如世纪星网(Tomcat)、网络教育学院网站(Resin)、交大招生就业网(Tomcat),服务器是
Linux 9,运行相对来说比较稳定可靠。Linux下的Apache和Tomcat整合我曾经发过一篇文章,需
要的大家在锦城搜搜。linux和windows下整合思想是相同的,利用apache来解析*.html/*.htm
静态网页,当遇到*.jsp和servlet时,通过一个apache中的module把jsp页面抛给Tomcat(或者
resin)来处理,在linux下通过编译来制作这个module,要麻烦一些,本文通过现成的win下的一
个module来完成整合。
废话不说啦,下面开始整合:

所需软件
  (1) j2sdk-1_4_2-windows-i586.exe
   jdk的版本关系倒不是很大,不影响Apache和Tomcat的整合,配置环境变量时注意一些就行了.
  (2) apache_2.0.49-win32-x86-no_ssl.exe
   apache版本对整合影响不是太大,但最好利用此版本。
  (3) jakarta-tomcat-4.1.30.exe
   版本最好用这个版本,其他的我没有试过,有可能会导致整合不成功。
  (3) php-4.3.3-Win32.zip
  是一个压缩包,下载下来直接解压就行了。
  (4) mod_jk.dll
  这个module是放到apache中的module中去的,利用它来使Tomcat和Apache之间通讯。
  (5) mysql-max-3.23.46a-win.zip 
  数据库mysql,其版本对整合影响不大.
  (6) jdbc驱动
   mysql的驱动程序,和数据库连接时用
   以上软件我就不把down的地址贴出来啦,去网上搜baidu、北大天网,只要用心找,应该问题
不大,如果真的找不到,发信找我要吧。

一.安装j2sdk
   在Windows下,直接运行下载的j2sdk-1_4_1_01-windows-i586.exe文件,根据安装向导安装
到一个目录,例如安装到d:\server\j2sdk
   1.配置环境变量:
   添加CLASSPATH变量
变量值为
./;%CLASSPATH%;D:\server\j2sdk1.4.0\lib\dt.jar;d:\server\j2sdk1.4.0\lib\tools.jar;
             d:\server\j2sdk1.4.0\bin
   这个配置保证java运行时可以找到class类。
   2.添加JAVA_HOME变量,变量值为d:\server\j2sdk1.4.0
   3.在原来的path变量中,添加d:\server\j2sdk1.4.0\bin,这样无论在何处运行java名令都行。
重新启动

cmd进入dos,运行java和javac看有没有反应,如果出现命令的帮助,那么java就安装成功了
也可以运行一个java小程序看看.

public class test{
  public static void main(String args[]){
    System.out.println("看到这个说明java安装成功!");
}
}
把上以程序存放在test.java文件中,一定要是test.java才行,然后利用命令编译
javac test.java
如果没有错误,则说明编译成功,如果有错,在程序书写正确的基础上,刚说明java环境变量没
有配置好,刚重新配置。如果编译成功,则运行:
java test
注意,不是java test.java!如果无误,刚会打印出:

   看到这个说明java安装成功!

gxgx,jdk安装成功啦!可以进行下一步.

二.apache安装
    1.运行apache_2.0.49-win32-x86-no_ssl.exe,一路点"确定"和"接受"就行,路径选
d:\server\apache group\apache2。
    此时apache已经安装成功,且已运行,在IE中输入可以看到
apache的主页。安装成功!
    2.修改httpd.conf
     apache的配置文件是httpd.conf,位于apache根目录的下的conf文件夹下
    (1).修改默认网站根目录:
       在d:\server下建立文件夹www,以此作为网站的根目录
       DocumentRoot "D:/server/Apache Group/Apache2/htdocs"
       改为DocumentRoot "D:/server/www
    (2).修改字符设置
      apache解析中文网页时会产生乱码,
      修改AddDefaultCharset ISO-8859-1为AddDefaultCharset GB2312
    (3).修改默认主页
       当访问目录时,apache会自动导入的主页,优先级以先后顺序为准
       把DirectoryIndex index.html index.html.var改为
       DirectoryIndex index.html index.jsp index.php default.jsp default.php index.html.var
    (4).设置错误页面
      这样对于你的网站会更安全些,如果没设置,别人在你的网址后随便输入一个路径,会显示404错
    误,并且会显示你的服务器版本号,服务器配置一目了然,为了避免这种情况,可以设置错误页面。
      当出现404错误,即找不到网页时,把访问者导入到一个错误页面
  找到:
    #
    # Customizable error responses come in three flavors:
    # 1) plain text 2) local redirects 3) external redirects
    #
    # Some examples:
    #ErrorDocument 500 "The server made a boo boo."
    #ErrorDocument 404 /missing.html
    #ErrorDocument 404 "/cgi-bin/missing_handler.pl"
    #ErrorDocument 402
    #
       httpd.conf中的这一部分,#ErrorDocument 404 /missing.html
      一行修改为ErrorDocument 404 /error/noFile.htm,其中noFile.htm为d:\server\www\error\下一个错误文件,需
   要你自己建立。当发生404错误时,进入noFile.htm页面,可以提示网页没有找到。这样就不可能看到
你的服务器软件信息了。也可以设置其它的错误导向的页面,具体http响应错误编号请查阅相关资料。
重新启动apache,如果没意外,此时已经安装成功,把静态页面放到d:\server\www\error\目录下,看能不能成功解析。
随便输入一个:http://localhost/sdagasgdasasg.htm,看是不是导向你设置的404错误,即noFile.htm错误页面.
成功了吧!
    关于apache中其他参数的意义,我就不说啦,你可以去网上查,其实最好的方法是看httpd.conf中的注释部
分,已经说得很清楚啦。
好啦,到此apache安装成功,你可以休息一下,听首音乐,开始下一步的安装:)

三.php安装
   解压php-4.3.3-Win32.zip,到d:\server\php目录下.下配置PHP和Apache,使之能解析php程序。
   将d:\server\php\目录中的“php.ini-dist”改名“php.ini”,并复制到C:\windows\system32
(Win2K目录为:C:\winnt\system32)下,在apache的配置文件httpd.conf中下入以下几行,使之
支持php.
    ScriptAlias /php/ "d:/server/php/"
    AddType application/x-httpd-php .php3
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php .phtml
    Action application/x-httpd-php "/php/php.exe"
    在d:\server\www下建立网页:index.php,内容为:
   
    
            phpinfo();
     ?>
   
  用文本编辑器编辑好为存为index.php,重新启动apache,在IE中输入,如果出现php的
环境变量,说明php,安装成功,如果不能解析中的部分,则说明没有成功安装。

四.Tomcat的安装
   我用的是jakarta-tomcat-4.1.30.exe安装文件,在windows下一路点"确定"就行了,比较简单,安装目录为
d:\server\tomcat
   下面设置环境变量:
   同jdk的环境变量,添加变量TOMCAT_HOME,值为d:\server\tomcat;增加变量CATALINA_HOME,值为
d:\tomcat\server,在path变量中加入d:\server\tomcat\bin
   下面启动tomcat,运行tomcat目录下的,bin/startup.bat文件就行啦,出现tomcat运行控制台,tomcat成功
启动.
   在IE中输入,看到大猫的吧,则tomcat安装成功.

五.安装MySQL

   第一步:解压 mysql-max-3.23.46a-win.zip,运行mysql安装文件,把mysql安装到d:\server\mysql
   第二步:在环境变量path中加入 d:\server\mysql\bin
   第三步:进入d:\server\mysql\bin目录,运行winmysqladmin,刚会出现对话框,设置mysql用户密码,假设
帐号为:root 密码为:123
   第四步:进入dos,进入mysql/bin下,运行以下命令打开mysql
   mysqld-nt --standalone
   则mysql开启
   然后运行:
   mysql
   如果开启,则出现以下文字:
   Welcome to the MySQL monitor. Commonds end with ; or \g.
   Your MySQL connection id is 1 to server version: 3.23.46-nt
   Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
   mysql>
   注意:此时mysql没有设置密码,为了不让别人进入你的数据库,请为mysql设置密码,具体操作请参阅mysql
的中文说明文档。
   至此,mysql安装成功!

六.安装MySQL的驱动类jdbc
   解开jdbc驱动包,把里面的org文件夹复制到jsp可以找到的位置就行啦。可以是tomcat的根目录common/classes
文件夹下,也可以是jsp网站class类WEB-INF/class/下。当加载驱动程序时,以便能找到相关的类。或者把jdbc包
的路径加入到classpath变量中。

七.Tomcat和Apache的整合配置
   Tomcat只是一个用来解析*.jsp文件的容器,它不是服务器,其解析静态htm/html文件的能力远远不如apache,
整合后在同一个端口使apache来解析静态网页,而遇到*.jsp网页时,交由tomcat来解析.
  第一步:把 mod_jk.dll复制到apache根目录module文件夹下。
  第二步:配置APACHE

  打开apache根目录下conf\httpd.conf

添加以下语句:

     #------------------------------------------

    #connecting to tomcat using ajp13
    LoadModule jk_module modules/mod_jk.dll
    JkWorkersFile "d:/server/tomcat/conf/workers.properties"
    JkMount /servlet/* ajp13
    JkMount /*.jsp ajp13


    #-----------------------------------------------------

   注意:以上语句的基本意思是:
   loadModule一行:加载mod_jk.dll动态链接库模块,使之与tomcat通讯
   jkWorkersFile:指明工作时tomcat相关文件workers.properties位置
   jkMount:两行指明当遇到*.jsp和servlet时,交由ajp13协议,继而转发给tomcat处理。
  第三步:建立workers.properties文件,在tomcat根目录conf下建立workers.properties文件,内容为:
workers.tomcat_home=d:\server\tomcat
workers.java_home=d:\server\j2sdk1.4.0
ps=\
# worker.list=ajp13
worker.list=ajp12,ajp13 

worker.ajp12.port=8007
worker.ajp12.host=localhost
worker.ajp12.type=ajp12
worker.ajp12.lbfactor=1
            
worker.ajp13.port=8009        
worker.ajp13.host=localhost     
worker.ajp13.type=ajp13
worker.ajp13.lbfactor=1

worker.loadbalancer.type=lb

worker.loadbalancer.balanced_workers=ajp12, ajp13
worker.inprocess.type=jni
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)classes
worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)jaxp.jar

worker.inprocess.class_path=$(workers.tomcat_home)$(ps)lib$(ps)parser.jar

worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)jasper.jar

worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)servlet.jar

worker.inprocess.class_path=$(workers.tomcat_home)$(ps)common$(ps)lib$(ps)webserver.jar

worker.inprocess.class_path=$(workers.java_home)$(ps)lib$(ps)tools.jar

worker.inprocess.cmd_line=-config

worker.inprocess.cmd_line=$(workers.tomcat_home)/conf/jni_server.xml

worker.inprocess.cmd_line=-home

worker.inprocess.cmd_line=$(workers.tomcat_home)

worker.inprocess.jvm_lib=$(workers.java_home)$(ps)jre$(ps)bin$(ps)classic$(ps)jvm.dll


worker.inprocess.stdout=$(workers.tomcat_home)$(ps)inprocess.stdout

worker.inprocess.stderr=$(workers.tomcat_home)$(ps)inprocess.stderr

worker.inprocess.sysprops=tomcat.home=$(workers.tomcat_home)

注意以上文件第一、二行填上tomcat和jdk的相关目录.
 
  第四步:配置tomca/conf下的server.xml文件,这个是tomcat的主要配置文件,重要配置如下:
    1.虚拟目录设置:
     找到下面内容:
            unpackWARs="true" autoDeploy="true">
    修改为:
           unpackWARs="true" autoDeploy="true">
    使tomcat主目录为d:\server\www.
    找到下面内容:
                     reloadable="true" crossCOntext="true">
    修改为
                     reloadable="true" crossCOntext="true">
    这个我的理解是应该是使tomcat根目录下的jsp作为一个虚拟主机吧.
   2.设置tomcat监听端口,找到下面的内容:
            port="8080"     minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" cOnnectionTimeout="0"
               useURIValidatiOnHack="false" disableUploadTimeout="true" />
    默认的端口是8080,但这个大家都知道,最好修改一下,假设修改为:8123,则如下:
            port="8123"     minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="100" debug="0" cOnnectionTimeout="0"
               useURIValidatiOnHack="false" disableUploadTimeout="true" />
   3.找到以下8009端口的地方,这个很重要,通过8009,tomcat与apache互相通讯,如果下面的部分
被注释掉,一定要把去掉.
   
                   port="8009" minProcessors="5" maxProcessors="75"
               enableLookups="true" redirectPort="8443"
               acceptCount="10" debug="0" cOnnectionTimeout="0"
               useURIValidatiOnHack="false"
               protocolHandlerClassName="org.apache.jk.server.JkCoyoteHandler"/>
    第五步:配置tomcat的conf/web.xml文件:
    类似于apache下404错误页面的配置,在最后一行之前加入以下内容:
     
      
        404
        /error/noFile.htm
     

     
       java.lang.NullPointerException
       /error/error.jsp
     

      第一个之间的是404未找到jsp网页的错误导向页面,使之发生404错误时,
网页导向至/error/noFile.htm,也可以用类似方法添加其多的错误代码导向页面。
      第二个之间的是当jsp网页出现java.lang.NullPointerException导常时
导向至/error/error.jsp错误页面。那么需要在第个jsp网页中加入以下内容:
      <%@ page  errorPage="/error/error.jsp" %>
      典型的error.jsp错误页面的程序写法如下:
  
    <%@ page cOntentType="text/html;charset=GB2312"%>
    <%@ page isErrorPage="true"%>
   
   

   
    出错了:

错误信息: <%= exception.getMessage() %>

    Stack Trace is :

<%
    java.io.CharArrayWriter cw = new java.io.CharArrayWriter();
    java.io.PrintWriter pw = new java.io.PrintWriter(cw,true);
    exception.printStackTrace(pw);
    out.println(cw.toString());
    %>

   
   
        当出现NullPointerException异常时tomcat会把网页导入到error.jsp,且会打印出出错信息。
        第五步主要是安全考虑,在正常情况下,如果找不到网页即出现404错误或者jsp程序出错,在客户端
    会列举出类似于如下的信息(以tomcat为例,resin类似):
      HTTP Status 404 - /sdags.jsp

      --------------------------------------------------------------------------------

      type Status report

      message /sdags.jsp

      description The requested resource (/sdags.jsp) is not available.


       --------------------------------------------------------------------------------

      Apache Tomcat/5.0.19
     
      这样服务器版本会被别人看到,如果完成第五步的配置,就不会出现这种情况.
    第六步:配置httpd.conf文件
    这种方法把tomcat和apache的根目录设置为同一目录,但是必须限制客户对目录下一些文件的访问,比如存入class
的web-inf,在httpd.conf下添加以下代码:
        #deny the access to WEB-INF
   
          Order allow,deny
          Deny from all
   

     这样,当试图记问时,apache将会拒绝.
     
     到此为至,tomcat和apache的整合就完成啦.重新启动tomcat和apache,
 把jsp网页放到d:\server\www\下,例如:
    
    JSP test


    <%out.println("Hello World!");%>

   
    存为index.jsp,在IE中输入
    如果出现了
    Hello World!
    刚说明tomcat运行正常,在IE中输入,如果也出现
    Hello World!
    恭喜你!整合成功啦,你在jsp漫长艰辛的道路上迈出了一大步~!

    以上整合文章我是在仓促的的时间完成的,可能有些错误。或考虑不周的地方,但是总体应该没
 太大问题,我是反复使用这种方法整合成功的。如果有疑问,可以直接给我联系.
   moonsbird:    mail:pengw97@163.com


推荐阅读
  • Linux学习精华:程序管理、终端种类与命令帮助获取方法综述 ... [详细]
  • 深入解析Tomcat:开发者的实用指南
    深入解析Tomcat:开发者的实用指南 ... [详细]
  • 手机上编写和运行PHP代码的最佳软件推荐 ... [详细]
  • 如何使用Python高效绘制矩形图形
    本文详细介绍了如何利用Python的Turtle库高效绘制矩形图形,适合初学者快速上手。通过具体示例代码,帮助读者理解Turtle库的基本绘图方法和技巧,同时探讨了在不同应用场景中绘制矩形的实际操作,为后续复杂图形的绘制打下坚实基础。 ... [详细]
  • 如何将PHP文件上传至服务器及正确配置服务器地址 ... [详细]
  • Ceph API微服务实现RBD块设备的高效创建与安全删除
    本文旨在实现Ceph块存储中RBD块设备的高效创建与安全删除功能。开发环境为CentOS 7,使用 IntelliJ IDEA 进行开发。首先介绍了 librbd 的基本概念及其在 Ceph 中的作用,随后详细描述了项目 Gradle 配置的优化过程,确保了开发环境的稳定性和兼容性。通过这一系列步骤,我们成功实现了 RBD 块设备的快速创建与安全删除,提升了系统的整体性能和可靠性。 ... [详细]
  • MySQL性能优化与调参指南【数据库管理】
    本文详细探讨了MySQL数据库的性能优化与参数调整技巧,旨在帮助数据库管理员和开发人员提升系统的运行效率。内容涵盖索引优化、查询优化、配置参数调整等方面,结合实际案例进行深入分析,提供实用的操作建议。此外,还介绍了常见的性能监控工具和方法,助力读者全面掌握MySQL性能优化的核心技能。 ... [详细]
  • Django新手指南:第三步——构建你的首个项目
    在本教程中,我们将引导你完成创建第一个Django应用的步骤。通过实际操作,你将逐步了解Django框架的核心概念和基本功能。从项目结构到视图和模板的实现,我们将详细介绍每个环节,帮助你快速上手并构建出一个功能完整的Web应用。 ... [详细]
  • HTML5大文件传输技术深度解析与实践分享
    本文深入探讨了HTML5在Web前端开发中实现大文件上传的技术细节与实践方法。通过实例分析,详细讲解了如何利用HTML5的相关特性高效、稳定地处理大文件传输问题,并提供了可供参考的代码示例和解决方案。此外,文章还讨论了常见的技术挑战及优化策略,旨在帮助开发者更好地理解和应用HTML5大文件上传技术。 ... [详细]
  • NoSQL数据库,即非关系型数据库,有时也被称作Not Only SQL,是一种区别于传统关系型数据库的管理系统。这类数据库设计用于处理大规模、高并发的数据存储与查询需求,特别适用于需要快速读写大量非结构化或半结构化数据的应用场景。NoSQL数据库通过牺牲部分一致性来换取更高的可扩展性和性能,支持分布式部署,能够有效应对互联网时代的海量数据挑战。 ... [详细]
  • 构建顶级PHP博客系统:实践与洞见
    构建顶级PHP博客系统不仅需要扎实的技术基础,还需深入理解实际应用需求。本文以Zend Studio为开发环境,MySQL作为数据存储,Apache服务器为运行平台,结合jQuery脚本语言,详细阐述了从环境搭建到功能实现的全过程,分享了开发PHP博客管理系统的宝贵经验和实用技巧。 ... [详细]
  • 如何在MySQL中安全地更改主键值
    在MySQL数据库中,更改主键值是一项敏感操作,需要谨慎处理以确保数据的完整性和一致性。本文将详细介绍如何通过安全的方法在MySQL中修改主键值,包括备份数据、更新外键约束和验证更改的有效性等步骤。此外,还将探讨一些常见的错误及其解决方法,帮助读者在实际操作中避免潜在的风险。 ... [详细]
  • 本指南详细介绍了如何使用 `apt-get` 命令在 Ubuntu 系统上部署 MySQL 5、Apache 2、PHP 5 及 phpMyAdmin。首先,建议读者查阅 Ubuntu 的官方文档以获取更多背景信息。通过本文,您将逐步了解每个软件包的安装过程及其配置方法,确保系统环境的稳定性和安全性。此外,还将提供一些常见问题的解决方案,帮助用户顺利完成部署。 ... [详细]
  • Java 零基础入门:SQL Server 学习笔记(第21篇)
    Java 零基础入门:SQL Server 学习笔记(第21篇) ... [详细]
  • 本文详细介绍了如何在微信小程序中使用JavaScript实现图片上传至PHP服务器的方法。通过具体的代码示例,帮助开发者掌握从客户端选择图片、处理图片数据到服务器端接收并保存图片的完整流程。同时,文章还提供了常见问题的解决方案和优化建议,确保上传过程的高效性和稳定性。 ... [详细]
author-avatar
陈翔_是学长
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有