生活如麻 发表于 2015-8-2 12:11:24

安装 apache tomcat

  
  http://www.google.com.hk/search?hl=en&source=hp&q=%E5%AE%89%E8%A3%85+apache+tomcat&aq=f&oq=&aqi=
  
  http://sizhefang.iteye.com/blog/34311
  Apache和Tomcat的整合,原理及例子 --copy liang blog
这类文档很多很多,但是大多是由不明原理的人拘泥于具体版本写出来的,有很多错漏或多余的部分。
最后找到一篇写得很很不错的,http://macawspark.spaces.live.com/blog/
我修正了其中的错误然后加了一些自己的理解
原理
tomcat 为一个jsp的容器,apache为一个web server,两者之间通信通过worker进行(由Tomcat使用Server.xml文件中Connector的标签来定义其端口和协议),通过 mod_jk的模块(由web服务器像apache、iis等使用)和Web Server通信。
通信协议有很多,其中jk2已经被抛弃了,现在就用jk就好了。
整个过程其实就是让apache的httpd.conf文件调用mod_jk.conf,mod_jk.conf调用workers.properties,最后配置虚拟主机。
文件说明
mod_jk.conf
主要定义mod_jk模块的位置以及mod_jk模块的连接日志设置,还有定义worker.properties文件的位置。
worker.properties
定义worker的参数,主要是连接tomcat主机的地址和端口信息。如果Tomcat与apache不在同一台机器上,或者需要做多台机器上tomcat的负载均衡只需要更改workers.properties文件中的相应定义即可。
第一部分:安装配置tomcat apache mod_jk j2sdk
准备下载下列文件
Jdk1.5
下载地址:http://java.sun.com
tomcat 5.5.9
下载地址:http://jakarta.apache.org
apache apache_2.0.59
下载地址: http://httpd.apache.org/download.cgi
jakarta-tomcat-connectors-jk2.0.43-win32-apache2.0.49(根据Apache版本决定)
下载地址:http://archive.apache.org/dist/jakarta/tomcat-connectors/
把上面所有组件都安装到D:\Server目录下,这样也方便日常管理配置和将来移植到别的服务器上去。
1:安装j2sdk
安装到 D:\server\j2sdk\ 目录下,注意安装成系统服务
2: 安装tomcat
安装到D:\server\tomcat\目录下,注意安装成系统服务
可能遇到的问题
问题1: 在解析JSP页面时,提示无法找到java compiler
请拷贝 j2sdk\lib\tools.jar 到 tomcat\common\lib下面。
使用tomcat作为service启动后总是这样,当然用startup.bat脚本启动倒是完全正常。主要原因分析起来是以service方式启动的Tomcat无法读取JAVA_HOME 和CLASS_PATH等环境变量。
问题2:如何解决通过服务方式启动tomcat时log中提示ZoneInfo:d:\server\j2sdk\lib\zi\ZoneInfoMappings(系统找不到指定的路径。)
从d:\server\j2sdk\jre\lib目录拷贝所有文件放到 d:\server\j2sdk\lib\ ,jre\lib 中的文件和j2sdk\lib\ 中的文件没有一个重复的,不用担心会覆盖掉j2sdk\lib 中原有的任何文件。
3:安装apache 到 d:\server\ (会自动生成apache2文件夹)
配置 index.jsp 为默认页 配置 GB2312为默认语言
不只Apache的httpd.conf中定义了默认页面文件,连Tomcat的web.xml配置文件的结尾处也定义了默认页面文件,而且Tomcat中定义的的优先级还高于原有的Apache中所定义的默认页。
4:加入mod_jk连接模块
拷贝 mod_jk-1.2.10-apache-2.0.43.so 到d:\server\apache2\modules\改名为mod_jk.so
5: 修改apache的配置文件
为了保持httpd.conf文件的简洁,把jk模块的配置放到单独的文件中来,就在httpd.conf中增加一行调用
代码
include D:\server\Apache2\conf\mod_jk.conf
6:配置mod_jk.conf
请注意使用绝对路径
其实最关键的就是 第一条 第二条 和最后一条,如果要精简,就保留这三条内容就可以了。
代码
# Load mod_jk module
LoadModule jk_module modules/mod_jk.so
# Where to find workers.properties
JkWorkersFile conf/workers.properties
# Where to put jk logs
JkLogFile logs/mod_jk.log
# Set the jk log level
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
上面这一行我们设置了了 /*.jsp ajp13 就是说把所有.jsp结尾的文件都由ajp13这个worker交给tomcat处理了,如果应用被映射为一个.do的URL,这样就会出错.解决方法是再添加如下一行:
代码
JkMount /*.do ajp13
7:配置apache2\conf\workers.properties
代码
worker.list=ajp13
worker.ajp13.port=8009
worker.ajp13.host=localhost#本机,若上面Tomcat主机不为localhost,作相应修改
worker.ajp13.type=ajp13#类型
worker.ajp13.lbfactor=1#代理数,不用修改

第二部分:虚拟主机的配置
举例配置2个vhost网站 一个是 localhost ,另一个是 www.ok.com
当然www.ok.com 是虚拟的,本地测试时,应该修改系统中的hosts文件,添加一行 127.0.0.1www.ok.com
1:Apache 虚拟主机配置:
Httpd.conf文件最后添加
代码
include D:\server\Apache2\conf\vhost.conf
而vhost.conf内容写
代码
NameVirtualHost *:80

ServerAdmin webmaster at localhost
DocumentRoot "D:/server/Tomcat/webapps/ROOT"
ServerName localhost
ErrorLog logs/localhost-error_log
CustomLog logs/localhost-access_log common


ServerAdmin webmaster@dummy-host dot example.com
DocumentRoot D:/server/www/
ServerName www.ok.com
ErrorLog logs/ok.com-error_log
CustomLog logs/ok.com-access_log common
         # 这样我可以看到apache服务器状态
SetHandler server-status
Order deny,allow
Deny from all
Allow from localhost
Allow from www.ok.com


2:Tomcat虚拟主机配置
添加新的www.ok.com 虚拟主机,在tomcat安装路径\conf\server.xml的最后,找到段,改为
代码








3:测试虚拟主机效果
访问http://localhost/ 应该可以看到原来的tomcat默认页面。
写一个 index.jsp
代码


test jsp



放在d:/server/www下面,访问 http://www.ok.com
页面显示Hello World! 就成功了
第三部分,部分相关性能优化及其它问题
如何使用server版jvm ?
Jvm动态库有client和server两个版本,分别针对桌面应用和服务器应用做了相应的优化,client版本加 载速度较快,server版本加载速度较慢但运行起来较快。
在开始菜单 tomcat5 ->tomcat config的java属性中 有一项 jvm路径 指向server目录下的jvm就行了。
更改默认java.exe调用的jvm.dll,这个由jvm.cfg决定。
编辑%JAVA_HOME%\jre\lib\i386\jvm.cfg
里面第一行写的是 -client 默认就是client版本 ,把第二行的-server KNOWN 放到第一行, 如下面所示
代码
-server KNOWN
-client KNOWN
-hotspot ALIASED_TO -client
-classic WARN
-native ERROR
-green ERROR
改完保存,然后看看默认版本:
C:\java -version
java version "1.4.2_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_07-b05)
Java HotSpot(TM) Server VM (build 1.4.2_07-b05, mixed mode)
关于JAVA_HOME 与CATALINA_HOME、 CLASSPATH
ClassPath 网上有人说在j2sdk1.3开始就不需要配置了,而本例中实际是不需要配置JAVA_HOME和CATALINA_HOME的,因为tomcat 以service模式启动根本不认你的java_home,当然为了让你能够在命令行运行startup.bat时也能顺利启动Tomcat,可以配置也建议配置上JAVA_HOME 与CATALINA_HOME,ClassPath就免了吧,连Resin都不需要这个了。
有关路径设置
Path=d:\server\jdk\bin;…… 放到最前,避免有多个jdk时的很多问题
关于apache2在win平台上的一个小问题
可能apache的日志中常出现类似如下的提示
(730038)An operation was attempted on something that is not a socket.: winnt_accept: AcceptEx failed. Attempting to recover.
这是由于apache 使用了微软的AcceptEx()调用的缘故,禁用掉即可,此问题只会出现在win平台且apache的2.0.49和更高版本上,出现错误的大概原因是防火墙和防病毒软件所导致,导致结果也有好几种,像apache占用很高cpu资源或者网站页面无法打开。
解决方法修改d:\server\apache2\conf\httpd.conf中的mpm部分
代码

ThreadsPerChild 250
MaxRequestsPerChild0
Win32DisableAcceptEx      #添加这一行即可,做过压力测试,对性能影响很小,可以忽略

  
  http://edu.codepub.com/2009/0418/3068.php
  本文完整的说明了Apache与Tomcat安装配置过程,希望对读者带来一定的帮助!
  很多朋友都发信给我,希望得到最新的安装文档,我就利用业余时间,安装了最新的操作系统Red Hat linux release 8.0 (Psyche)和最新的应用软件,并重新设置Apache和Tomcat整合的配置.安装和配置还算比较顺利,所以就更新了这个文档,希望对大家会有所帮助!如果有什么错误的地方,也请大家指正!好了,不罗嗦了!
1.所需的软件包
  j2sdk-1_4_1_02-linux-i586
  Apache2.0.40 (Red Hat linux)
  jakarta-tomcat-4.1.18
  jakarta-tomcat-connectors-4.1.18
2.软件包下载地址
  (1) Java J2SE1.4.1
    URL:http://java.sun.com/j2se/1.4.1/download.html
  (2) Apache2.0.40
    URL:http://httpd.apache.org
  (3) Tomcat 4.1.18
    URL:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.18/bin/jakarta-tomcat-4.1.18.tar.gz
  (4) Tomcat connectors-4.1.18
    URL:http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/v4.1.18/src/jakarta-tomcat-connectors-4.1.18-src.tar.gz
3.软件安装
  (1) 解开压缩包
    使用gunzip或tar或rpm解开下载的软件包,按照默认方式安装既可
  (2) 目录的处理
    J2SDK安装目录: /usr/j2sdk1.4.1_02
    Apache安装目录: /etc/httpd
             /usr/lib/apache
             /var/www
    Jakarta-Tomcat安装目录: /opt/jakarta-tomcat-4.1.18
    Jakarta-Tomcat-connectors安装目录: /opt/jakarta-tomcat-connectors-4.1.18-src
4.环境变量设置
  JAVA_HOME=/usr/j2sdk1.4.1_02
  CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
  CATALINA_BASE=/opt/jakarta-tomcat-4.1.18
  CATALINA_HOME=/opt/jakarta-tomcat-4.1.18
  PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH:$HOME/bin
5.特殊安装
  (1) 编译Jakarta-Tomcat-connectors
    cd /opt/jakarta-tomcat-connectors-4.1.18-src/webapp ## 进入指定的目录
    ./support/buildconf.sh ## 生成编译配置文件
    ./configure --with-apxs ## 生成Makefile编译文件
    make ## 编译生成mod_webapp.so
    注释: 生成的mod_webapp.so文件在apache-2.0目录中
  (2) 把apache-2.0目录中的mod_webapp.so文件复制到目录/usr/lib/httpd/modules
    并检查文件/usr/lib/httpd/modules/mod_webapp.so的属性,应与其它Modules文件
    属性一致,如果不相同,则使用chmod chgrp chown来修改
6.独立环境的测试
  (1) 测试Java的运行状况,如下命令:
    java -version
    javac -version
    看到版本号则表示JDK安装成功
  (2) 测试Apache的运行状况,如下命令:
    /etc/init.d/httpd restart ## 重新启动Apache Server
    使用任意一浏览器,输入服务器地址后回车,应该可以看到Apache的默认主页
  (3) 测试Jakarta-Tomcat的运行状况,如下命令:
    cd $CATALINA_HOME
    cd bin
    ./startup.sh ## 启动jakarta-tomcat-4.1.18服务
    使用任意一浏览器,输入服务器地址和端口号8080后回车,应该可以看到jakarta-tomcat-4.1.18的默认主页
    例如: http://192.192.192.1:8080
    ./shutdown.sh ## 关闭jakarta-tomcat-4.0.1服务
7.整合安装设置
  (1) 修改/etc/httpd/conf/httpd.conf文件
    在# Dynamic Shared Object (DSO) Support之后,添加如下内容
    LoadModule webapp_module modules/mod_webapp.so
  (2) 测试配置和Modules,执行以下命令
    apachectl configtest
    如果出现Syntax OK,则证明Module安装和配置成功了!
  3) 修改/etc/httpd/conf/httpd.conf文件
    在文件尾部添加如下内容
    WebAppConnection warpConnection warp localhost:8008
    WebAppDeploy examples warpConnection /examples/
  4) 再次测试配置,执行以下命令
    apachectl configtest
    如果出现Syntax OK,则证明安装成功!
    如果出现以下错误信息
    Syntax error on line 1038 of /etc/httpd/conf/httpd.conf:
    Invalid virtual host name
    则修改httpd.conf文件,找到#ServerName所在的行,并在其下面加入如下内容即可
    ServerName localhost:8008 # 制定服务器的名称和端口
  5) 检查$CATALINA_HOME/conf/server.xml文件中相关的配置,默认情况下的
    相关的信息是被注释掉了,所以需要删掉注释的语句,这样Tomcat在启动的时候才会初始化
    相关的内容并开启8008端口!
8.整合测试
  重新启动所有服务
    $CATALINA_HOME/bin/shutdown.sh
    $CATALINA_HOME/bin/startup.sh
    /etc/init.d/httpd restart
  在浏览器中输入如下地址
    http://服务器IP/examples/jsp/index.html,如果能够显示正常的网页,则安装成功
  在浏览器中输入如下地址
    http://服务器IP/examples/jsp/jsptoserv/jsptoservlet.jsp如果能够显示正常的网页和时间,则jsp和Servlet安装成功
  
页: [1]
查看完整版本: 安装 apache tomcat