zoukankan      html  css  js  c++  java
  • (转)linux下装tomcat

      转载于:http://www.linuxidc.com/Linux/2016-11/136959.htm (linux社区)

     1 tomcat介绍


    Tomcat 是由 Apache Foundation 研发用于支持 JSP(Java Server Page) 的网络服务软件.

    2 安装tomcat


    2.1 源方式(不推荐)


    Ubuntu14.04 的源中包含了 tomcat 6/7 两个版本, 大家可以选择任意一个进行安装.

    • 安装 Tomcat
    sudo apt-get install tomcat6

    或者

    sudo apt-get install tomcat7

    稍等片刻, Tomcat6 即会被自动安装在 /usr/share/tomcat6 的目录中

    设置 Tomcat 运行的 JAVA 环境 
    首先请确保 Oracle/Sun 的 Java Development Toolkit 已经安装.

    如果尚未安装,参照Java-Ubuntu中文或者Ubuntu安装JDK详解

    • 启动和停止Tomcat

    要启动Tomcat,运行

    sudo /etc/init.d/tomcat6 start

    此时打开浏览器,在地址栏内输入 
    http://localhost:8080

    要停止Tomcat,运行

    sudo /etc/init.d/tomcat6 stop
    • Tomcat 配置文件路径
    Tomcat home directory : /usr/share/tomcat6
    Tomcat base directory : /var/lib/tomcat6或/etc/tomcat6
    • 设置Tomcat管理员帐号

    Tomcat 的用户帐号信息都保存在 tomcat-users.xml 的文件中, 运行

    sudo nano /var/lib/tomcat6/conf/tomcat-users.xml

    在的标签前添加一行

    <user username="用户名" password="密码" roles="admin,manager"/>

    保存并关闭. 重新运行 tomcat 即可输入该用户名和密码,登录Tomcat的管理页面.

    • 弊端

    Ubuntu 默认把 Tomcat 分到2个目录, 在之后配置 Eclipse Server 时会把人逼疯的, 配置哪个路径都不对, Eclipse 无法识别安装的Tomcat.

    解决方案:

    sudo ln -s /var/lib/tomcat6/conf /usr/share/tomcat6/conf
    sudo ln -s /etc/tomcat6/policy.d/03catalina.policy /usr/share/tomcat6/conf/catalina.policy
    sudo ln -s /var/log/tomcat6 /usr/share/tomcat6/log
    sudo chmod -R 777 /usr/share/tomcat6/conf

    2.2 下载安装最新版本的Tomcat


    2.2.1 官网的tomcat版本


    这种方法绕过 Ubuntu 自身的包管理器, 直接从 Apache Tomcat 的主页上下载并使用 Tomcat 软件, 该方法方便快捷的安装旧版或新测试版 Tomcat 而并不影响系统的稳定性, 轻松自在.

    从 tomcat 的官方下载页面, 目前官网上提供如下几个版本以供下载

    版本DocumentationDownload
    6.0 tomcat-6.0-doc download-60
    7.0.72 tomcat-7.0-doc download-70
    8.0.38 tomcat-8.0-doc download-80
    8.5.6 tomcat-8.5-doc download-80
    9.0.0 tomcat-9.0-doc download-90

    2.2.2 下载安装 tomcat 8.5.6


    我选择下载了 Tomcat 8.5.6 版本.

    下载 8.5.6->Binary Distributions->Core 分类中的 zip 或者 tar.gz包后, 本地解压缩并将新生成的目录重命名为tomcat, 以方便使用.

    将这个文件夹移动至某路径PATH, 比如我以调动到了 /opt/tomcat, 参考以上设置环境变量和端口设置等步骤, 大功告成!

    tar -zxvf apache-tomcat-8.5.6.tar.gz -C /opt
    cd /opt/apache-tomcat

    2.2.3 权限问题


    注意

    解压缩完以后发现, 有些目录 cd 没有权限

    <code>cd</code> 没有权限

    ll发现是没有, 运行权限的

    没有运行权限

    linux下 
    ls 某文件夹需要文件夹有 r 读权限. 
    cd 某文件夹 需要文件夹有 x 运行权限

    chmod +x ./*

    同样想要运行bin下的脚本也需要运行权限, 因此

    chmod +x ./bin/*.sh

    2.2.4 配置和运行


    bin 下存储了我们运行和配置 tomcat 所需要的脚本信息

    运行和配置的脚本

    脚本描述
    daemon.sh 守护进程(服务)的方式启动和关闭tomcat, 以jsvc管理tomcatjsvc可以由commons-daemon-native.tar.gz编译出
    setclasspath.sh 设置JAVA运行环境
    configtest.sh 检查 tomcat 运行环境和配置
    startup.sh 启动tomcat
    shutdown.sh 关闭tomcat
    version.sh 显示版本信息
    tool-wrapper.sh  
    digest.sh  
    catalina.sh 完善的服务脚本, 支持 startstopversion 等方式, 可以直接放到 /etc/init.d 下作为服务来使用
    • 配置JAVA环境变量

    首先我们需要为tomcat配置JAVA的环境变量, 直接写到 setclasspath.sh 文件的开头即可, 我写入的内容如下所示

    #---------------------
    # java path
    #---------------------
    JAVA_HOME=/usr/lib/jvm/java-8-oracle
    JRE_HOME=$JAVA_HOME/jre
    JAVA_BIN=$JAVA_HOME/bin
    CLASSPATH=$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
    PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
    export JAVA_HOME JRE_HOME PATH CLASSPATH

    刚开始的时候, 在 CLASSPATH 的开始配置了当前目录.

    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

    导致运行的时候老是出错, 其主要就是运行环境找不到, 因为 tomcat 运行需要 bootstrap.jar 和 tomcat-juli.jar, 运行的时候在当前 bin 目录下找到了这两个 bin 包, 但是关闭服务的时候, 目录更改了这两个 jar 包就没有找到, 导致服务能起来, 但是却结束不了

    • 运行环境检查

    配置完 JAVA 之后, 检查运行环境是否正确

    sudo sh configtest.sh

    我们提到了 catalina.sh 脚本其实就是一个完备的服务集合, 因此上面的命令等价于

    sudo sh catalina.sh configtest

    configtest.sh 脚本其实就是运行了catalina.sh configtest 命令, 这点可以从其源码中看到

    PRGDIR=`dirname "$PRG"`
    EXECUTABLE=catalina.sh
    exec "$PRGDIR"/"$EXECUTABLE" configtest "$@"

    如果 ERROR 的话, 说明没有配置没有问题

    运行环境检查

    • 直接运行
    sudo ./startup.sh

    等价于

    sudo sh catalina.sh start

    启动tomcat

    • 关闭
    ./shutdown.sh

    等价于

    sudo sh catalina.sh stop

    打开http://localhost:8080

    tomcat运行成功

    2.2.5 配置启动脚本


    catalina.sh 脚本可以直接作为服务来使用, 我们做一个了链接即可

    cd /etc/init.d
    sudo ln -s /opt/apache-tomcat/catalina.sh ./tomcat8

    <code>catalina.sh</code> 脚本可以直接作为服务来使用

    当然我们也可以自己做一个

    #!/bin/sh
    #
    # /etc/init.d/tomcat8 -- startup script for the Tomcat 8 servlet engine
    #
    # Written by Miquel van Smoorenburg <miquels@cistron.nl>.
    # Modified for Debian GNU/Linux by Ian Murdock <imurdock@gnu.ai.mit.edu>.
    # Modified for Tomcat by Stefan Gybas <sgybas@debian.org>.
    # Modified for Tomcat6 by Thierry Carrez <thierry.carrez@ubuntu.com>.
    # Modified for tomcat8 by Ernesto Hernandez-Novich <emhn@itverx.com.ve>.
    # Additional improvements by Jason Brittain <jason.brittain@mulesoft.com>.
    #
    ### BEGIN INIT INFO
    # Provides:          tomcat8
    # Required-Start:    $local_fs $remote_fs $network
    # Required-Stop:     $local_fs $remote_fs $network
    # Should-Start:      $named
    # Should-Stop:       $named
    # Default-Start:     2 3 4 5
    # Default-Stop:      0 1 6
    # Short-Description: Start Tomcat.
    # Description:       Start the Tomcat servlet engine.
    ### END INIT INFO
    
    set -e
    
    PATH=/bin:/usr/bin:/sbin:/usr/sbin
    NAME=tomcat8
    DESC="Tomcat servlet engine"
    
    if [ `id -u` -ne 0 ]; then
        echo "You need root privileges to run this script"
        exit 1
    fi
    
    # Make sure tomcat is started with system locale
    if [ -r /etc/default/locale ]; then
        . /etc/default/locale
        export LANG
    fi
    
    . /lib/lsb/init-functions
    
    if [ -r /etc/default/rcS ]; then
        . /etc/default/rcS
    fi
    
    
    case "$1" in
      start)
        log_daemon_msg "Starting $DESC" "$NAME"
        sh /opt/apache-tomcat/bin/startup.sh
        ;;
      stop)
        log_daemon_msg "Stopping $DESC" "$NAME"
        sh /opt/apache-tomcat/bin/shutdown.sh
        ;;
       status)
        set +e
        if [ "$?" = "0" ]; then
    
            if [ -f "$CATALINA_PID" ]; then
                log_success_msg "$DESC is not running, but pid file exists."
                exit 1
            else
                log_success_msg "$DESC is not running."
                exit 3
            fi
        else
            log_success_msg "$DESC is running with pid `cat $CATALINA_PID`"
        fi
        set -e
            ;;
      restart|force-reload)
        $0 stop
        sleep
        $0 start
        ;;
      *)
        log_success_msg "Usage: $0 {start|stop|restart|status}"
        exit 1
        ;;
    esac
    
    exit 0

    那么启动 tomcat8

    service tomcat8 start
    
    OR
    
    etc/init.d/tomcat8 start

    停止 tomcat8

    service tomcat8 stop
    
    OR
    
    etc/init.d/tomcat8 stop

    启动和关闭服务

    启动和关闭服务

    2.2.6 高级配置之jsvc启动


    sudo apt-get install jsvc

    或者直接用tomcat自带的源码包进行编译

    tar -zxvf commons-daemon-native.tar.gz
    cd commons-daemon-1.0.15-native-src/unix
    ./configure  --with-java=$JAVA_HOME
    make

    编译jsvc

    更多Tomcat相关教程见以下内容

    CentOS 6.6下安装配置Tomcat环境  http://www.linuxidc.com/Linux/2015-08/122234.htm

    RedHat Linux 5.5安装JDK+Tomcat并部署Java项目  http://www.linuxidc.com/Linux/2015-02/113528.htm 

    Tomcat权威指南(第二版)(中英高清PDF版+带书签)  http://www.linuxidc.com/Linux/2015-02/113062.htm 

    Tomcat 安全配置与性能优化 http://www.linuxidc.com/Linux/2015-02/113060.htm 

    Linux下使用Xshell查看Tomcat实时日志中文乱码解决方案 http://www.linuxidc.com/Linux/2015-01/112395.htm 

    CentOS 64-bit下安装JDK和Tomcat并设置Tomcat开机启动操作步骤 http://www.linuxidc.com/Linux/2015-01/111485.htm 

    CentOS 6.5下安装Tomcat  http://www.linuxidc.com/Linux/2015-01/111415.htm 

    Tomcat中session的管理机制  http://www.linuxidc.com/Linux/2016-09/135072.htm

    Tomcat 的详细介绍请点这里
    Tomcat 的下载地址请点这里

    本文永久更新链接地址http://www.linuxidc.com/Linux/2016-11/136959.htm

  • 相关阅读:
    关于父子页面的交互
    Spring在代码中获取bean的几种方式(转:http://www.dexcoder.com/selfly/article/326)
    关于Zookeeper
    Java 生成pdf表格文档
    Spring 框架中Http请求处理流程
    关于redis
    Xstream 解析xml文件内容
    ArrayBlockingQueue 和LinkedBlockQueue
    spring IOC
    springboot启动过程
  • 原文地址:https://www.cnblogs.com/Willie-WangLiang/p/7477231.html
Copyright © 2011-2022 走看看