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

  jsp是优秀的,它基于Java技术,利用JavaBean/Servlet制作动态网站,Java强大的面向对象编程使Jsp相对于php和asp有着得天独厚的优势。但学习jsp相对于php和asp来说是有难度的。我想原因之一就是jsp服务器环境的配置要棘手一些。对于动态网页制作,在交大asp曾很长时间占据上风,不太多的“高手”(也许很多人认为使用jsp的是高手吧)使用jsp,交大比较成功的jsp网站如世纪星网(Tomcat)、网络教育学院网站(Resin)、交大招生就业网(Tomcat),服务器是Linux 9,运行相对来说比较稳定可靠。 

  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
  版本最好用这个版本,其他的我没有试过,有可能会导致整合不成功。
  (4) php-4.3.3-Win32.zip
  是一个压缩包,下载下来直接解压就行了。
  (5) mod_jk.dll
  这个module是放到apache中的module中去的,利用它来使Tomcat和Apache之间通讯。
  (6) mysql-max-3.23.46a-win.zip
  数据库mysql,其版本对整合影响不大.
  (7) jdbc驱动
  mysql的驱动程序,和数据库连接时用

  一.安装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中输入http://localhost/可以看到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 http://www.example.com/subscription_info.html
#
  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错误页面.
  成功了吧!

   三.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,内容为:
< html >
< head >< title > php测试 </ title ></ head >
<? php
phpinfo (); 
?>
</ html >
  用文本编辑器编辑好为存为index.php,重新启动apache,在IE中输入
  http://localhost/index.php
  如果出现php的环境变量,说明php,安装成功,如果不能解析<?php phpinfo(); ?>中的部分,则说明没有成功安装。

   四.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中输入http://localhost:8080/,看到大猫的吧,则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的驱动类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 omcat 
workers
. java_home = d : serverj2sdk1 . 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.虚拟目录设置:
  找到下面内容:
  <Host name="localhost" debug="0" appBase="/webapps" unpackWARs="true" autoDeploy="true">
  修改为:
  <Host name="localhost" debug="0" appBase="d:/server/www" unpackWARs="true" autoDeploy="true">
  使tomcat主目录为d:/server/www.
  找到下面内容:
  <Context path="examples" docBase="/examples" debug="0" reloadable="true" crossContext="true">
  修改为
  <Context path="" docBase="/" debug="0" reloadable="true" crossContext="true">
  这个我的理解是应该是使tomcat根目录下的jsp作为一个虚拟主机吧.

  2.设置tomcat监听端口,找到下面的内容:
< Connector className = " org.apache.coyote.tomcat4.CoyoteConnector "  
port
= " 8080 "  minProcessors = " 5 "  maxProcessors = " 75 "  
enableLookups
= " true "  redirectPort = " 8443 "
acceptCount
= " 100 "  debug = " 0 "  connectionTimeout = " 0 "
useURIValidationHack
= " false "  disableUploadTimeout = " true "   />
  默认的端口是8080,但这个大家都知道,最好修改一下,职修改为: 8123

  3.找到以下8009端口的地方,这个很重要,通过8009,tomcat与apache互相通讯,如果下面的部分被<!---->注释掉,一定要把<!---->去掉.
<!--   Define  a Coyote / JK2 AJP  1.3  Connector on port  8009   -->
< Connector className = " org.apache.coyote.tomcat4.CoyoteConnector "  
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错误页面的配置,在最后</web-app>一行之前加入以下内容:

<error-page>
<error-code>404</error-code>
<location>/error/noFile.htm</location>
</error-page>

<error-page>
<exception-type>java.lang.NullPointerException</exception-type>
<location>/error/error.jsp</location>
</error-page>

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

<% @ page contentType = " text/html;charset=GB2312 " %>
<% @ page isErrorPage = " true " %>
< html >
< head >< title > 错误页面 </ title ></ head >
< body >
出错了:
</ p >  错误信息:  <%=  exception.getMessage()  %>< br >
Stack Trace 
is  :  < pre >< font color = " red " ><%
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()); 
%></ font ></ pre >
</ body >
</ html >


  当出现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
< Directory  ~   " /WEB-INF/ " >
Order allow,deny 
Deny from all
</ Directory >

  这样,当试图记问http://localhost/web-inf/时,apache将会拒绝.

  到此为至,tomcat和apache的整合就完成啦.重新启动tomcat和apache,把jsp网页放到d:/server/www/下,例如:

< html >
< h1 > JSP test < hr >
<% out.println("Hello World!"); %>
</ html >

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

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值