转自:http://blog.163.com/haizai219@126/blog/static/44412555200962751636461/
inux下JDK和Tomcat的安装
Tomcat 2009-07-27 17:16:36 阅读503 评论0 字号:大 中 小
1. 参考:
l Tomcat 6.0 自带的文 档。
2. 目的:
以下详细描述linux下JDK和Tomcat的安装过程,仅作为备忘录。
3. 备忘录:
先决条件:
l 下载 Tomcat 6.0.20 (当前最 新版本),选择格式为打包压缩的 linux 版本 apache-tomcat-6.0.20.tar.gz 。
l 下载 JDK6.0 (当前最新版本, http://www.sun.com/ 已经关闭, http://java.sun.com/ 还可以访问),下载 JDK6 uapdate 14 : jdk-6u14-linux-i586.bin 。
安装过程:
Step1 ,安装 JDK ,将文件 jdk-6u14-linux-i586.bin 解压到目录 /opt/server/ 目录下。
#cd /opt/server/
# sh jdk-6u14-linux-i586.bin
根据提示 安装 jdk 。安装完后会在 /opt/server/ 下产生目录 jdk1.6.0_14 。
Step2 ,设置环境变量。
修改文件 /ect/profile, 在最上面添加如下信息:
JAVA_HOME=/opt/server/jdk1.6.0_14
JRE_HOME=$JAVA_HOME/jre
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
export JAVA_HOME JRE_HOME PATH CLASSPATH
Step3 ,检测 JDK 是否安装成功。使用如下命令检测是否成功。
# java -version
java version "1.6.0_14"
Java(TM) SE Runtime Environment (build 1.6.0_14-b33)
Java HotSpot(TM) Client VM (build 11.0-b15, mixed mode, sharing)
看到类似以上蓝色信息,则表示 JDK 安装配置成功。
Step4 ,安装 Tomcat ,将 Tomcat 文件 apache-tomcat-6.0.20.tar.gz 解压到 /opt/server/ 目录下。
#cd /opt/server/
# tar –zxvf apache-tomcat-6.0.20.tar.gz
安装完后 会在 /opt/server/ 下产生目录 apache-tomcat-6.0.20 。
Step5 ,检测 Tomcat 是否安装成功。启动服务器,
#cd /opt/server/apache-tomcat-6.0.20/bin
# sh startup.sh
访问 http://localhost:8080/ 。若能够看见可爱的 tom 猫,则表示成功。
注: Tomcat 的运行需要配置 JDK_HOME 和 JRE_HOME 环境变量, JRE_HOME 默认等于 JDK_HOME 的值,所以在启动服务器前请检查环境变量。
4. 延伸
由上面的安装配置过程, 我们发现该过程对于项目实施人员的要求很高,需要掌握的知识很多( java , tomcat 服务器, linux , shell 编程)。希望通过 shell 编程来自动化这个 过程(只实现了一部分)。
需要自动化的目标:
1. 自动安装 JDK 和 Tomcat 到指定目录。
2. 无需手动的配置环境 变量。
3. 希望使用一个命令来 管理服务器。
实现过程:
目标 1 :需要 shell 编程来实现,预留外部参数,指定 JDK 、 Tomcat 的源文件路径和安装路径。(没有 实现)。
目标 2 :编写 shell 脚本,将 JDK 的安装目录通过参数传递给脚本,然后在脚本中动态设置 JAVA_HOME 的环境变量。当脚本没有接收到 JDK 参数时,则猜测 JDK 的安装目录,算法为:查找 Tomcat 安装目录的父目 录下是否有 jdk1.6.0_14 目录,该目录值可以通过修改变量 jdk_name 的值来改变 。
目标 3 :通过 shell 脚本,将管理服务的命令集成为一个 脚本命令,通过传递给脚本的参数区分不同的请求命令,然后调用相应的脚本。
脚本: tomcat.sh
#!/bin/sh #---------------------------------------------------------------------------------------------------------- # @author : dinstone # @time : 2009-7-27 14:23:35 #----------------------------------------------------------------------------------------------------------
PRG="$0" # parsing the current command path while [ -h "$PRG" ] ; do ls=`ls -ld "$PRG"` link=`expr "$ls" : '.*-> /(.*/)$'` if expr "$link" : '/.*' > /dev/null; then PRG="$link" else PRG=`dirname "$PRG"`/"$link" fi done # get the command path PRGDIR=`dirname "$PRG"` # PRGDIR maybe ../apache-tomcat-6.0.20/bin
# get the tomcat home path tomcat_dir=`cd "$PRGDIR/.." ; pwd` top_dir=`cd "$tomcat_dir/.."; pwd`
# set the default jdk directory name jdk_name="jdk1.6.0_14" # get the default jdk path jdk_dir="$top_dir/$jdk_name" # parse the parameter $2,set the jdk path,if $2 is not empty. if [ -n "$2" ]; then jdk_dir="$2" fi
# confirm that the jdk path is effective and set the JAVA_HOME environment variable if [ -d "$jdk_dir" ]; then export JAVA_HOME="$jdk_dir" export JRE_HOME="$JAVA_HOME/jre" #echo "JRE_HOME is $JRE_HOME" else echo "The JAVA_HOME environment variable is error,this environment variable is needed to run this program.JAVA_HOME=$jdk_dir." echo "The application will exit." exit 1 fi
# handle the request:start,stop,restart,version case "$1" in start) echo -n $"Tomcat server is starting: " "$PRGDIR"/startup.sh >/dev/null RETVAL=$? if [ $RETVAL -eq 0 ] ; then echo "Tomcat server has been started." else echo "Tomcat server failed to start." fi echo ;;
stop) echo -n $"Tomcat server is stopping: " "$PRGDIR"/shutdown.sh >/dev/null RETVAL=$? if [ $RETVAL -eq 0 ] ; then echo "Tomcat server has been stopped." else echo "Tomcat server failed to stop." fi echo ;;
version) "$PRGDIR"/version.sh ;;
restart|reload) $0 stop $0 start ;;
*) echo $"Usage: $0 {start|stop|restart|version}" echo " start Start server" echo " stop Stop server" echo " restart Restart server" echo " version What version of tomcat are you running?" exit 1 esac
|
将脚本 tomcat.sh 放到 /opt/server/apache-tomcat-6.0.20/bin/ 目录下。
测试:
#cd /opt #sh /opt/server/apache-tomcat-6.0.20/bin/tomcat.sh Usage: /opt/server/apache-tomcat-6.0.20/bin/tomcat.sh {start|stop|restart|version} start Start server stop Stop server restart Restart server version What version of tomcat are you running? #sh /opt/server/apache-tomcat-6.0.20/bin/tomcat.sh start Tomcat server is starting: Tomcat server has been started.
#sh /opt/server/apache-tomcat-6.0.20/bin/tomcat.sh stop Tomcat server is stopping: Tomcat server has been stopped.
#sh /opt/server/apache-tomcat-6.0.20/bin/tomcat.sh version Using CATALINA_BASE: /opt/server/apache-tomcat-6.0.20 Using CATALINA_HOME: /opt/server/apache-tomcat-6.0.20 Using CATALINA_TMPDIR: /opt/server/apache-tomcat-6.0.20/temp Using JRE_HOME: /opt/server/jdk1.6.0_14/jre Server version: Apache Tomcat/6.0.20 Server built: May 14 2009 01:13:50 Server number: 6.0.20.0 OS Name: Linux OS Version: 2.6.18-8.el5 Architecture: i386 JVM Version: 1.6.0_14-b08 JVM Vendor: Sun Microsystems Inc.
|
注意: tomcat.sh 脚本需要在 linux 下编辑完成,可以使用 VI 来编辑。而在 Windows 下编辑,在 linux 下运行,会出现很多奇怪的语法错误,主要是 windows 和 linux 的换行符不一致导致的问题。