• Ubuntu下安装Tomcat7


    第一部分:基本安装

    1、打开http://tomcat.apache.org/download-70.cgi,下载apache-tomcat-7.0.68.zip。

    2、拷贝至合适位置,如/usr/local/tomcat/,运行tar -zxvf ./apache-tomcat-7.0.68.zip解压,重命名解压后的目录:mv apache-tomcat-7.0.68 tomcat7。

    3、配置tomcat的jdk变量,编辑/usr/local/tomcat/tomcat7/bin/catalina.sh ,在顶部加入(各种路径请根据环境调整):

         JAVA_HOME=/usr/lib/jvm/jdk1.8.0_45 

         CATALINA_HOME=/usr/local/tomcat/tomcat7

         CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib

         CATALINA_OPTS="$CATALINA_OPTS -Djava.security.egd=file:/./dev/urandom"  

         JAVA_OPTS="-Xms1024m -Xmx1024m"  

         红色标识处非常重要,如果tomcat启动巨慢,配置本参数即可,原理请参考:http://ifeve.com/jvm-random-and-entropy-source/

    4、修改tomcat的配置文件server.xml,修改如下 (如果已经是正确的,则不需要改,注意红色字体)

         <Host name="localhost"  appBase="/opt/xxx"  unpackWARs="true" autoDeploy="false">

         红色标注为你应用发布目录,如果你的应用目录不想与tomcat分离,那么此处配置不用改,应用直接发布在webapps目录下即可。

    5、安装tomcat服务,运行命令 ln -s /usr/local/tomcat/tomcat7/bin/catalina.sh /etc/init.d/tomcat7

         然后就可以使用service tomcat7 start/stop等命令来启动或停止tomcat了。

    6、开机自启动,将这个shell文件的link连到/etc/rc2.d/目录下。

         linux的/etc/rcX.d/目录中的数字代表开机启动时不同的 run level,也就是启动的顺序,

         Ubuntu9.10下有0-5六个level,不能随便连到其他目录下,可能在那个目录中的程序启动时 Tomcat所需要的一  些库尚未被加载,

         用ln命令将tomcat的链接链过去:ln -s /etc/init.d/tomcat7/etc/rc2.d/S16Tomcat。rcX.d目录下的命名规则是很有讲究的,更具不同需要可能是S开头,也可能是K开头,之后的数字代表他们的启动顺序

         reboot重启后就可以看到tomcat已经自动运行了。

     

    第二部分:扩展,关于非root用户启动tomcat

    有三种方式可以实现(建议使用第一种方式,还可以运行小于1024的端口):

    1、第一种方式使用tomcat自带的工具jsvc,需要gcc支持,如果本机没有安装gcc,通过sudo apt-get install gcc。

         jsvc 是一个源码是c的程序,通过fork出子进程去启动java,而进程成为控制进程,可以实现监视java子进程的目地。

         在tomcat的bin目录下找到一个叫commons-daemon-native.tar.gz的包,运行tar -zxvf commons-daemon-native.tar.gz 解压,得到commons-daemon-1.0.15-native-src的目录.  

         然后按顺序执行以下命令即可:

         1)  cd commons-daemon-1.0.15-native-src/unix

         2)   ./configure --with-java=/usr/lib/jvm/jdk1.8.0_45   #注:这是你机器上具体的jdk的路径,根据实际情况修改,如果已经配置了jdk环境变量,--with-java参数可省略,即./configure回车即可。   

         3)   make 

         4)   cp -r jsvc /usr/local/tomcat/tomcat7/bin  #执行make后会生成一个jsvc的文件,将其复制到tomcat的bin目录

         5) useradd tomcat -M -d / -s /usr/sbin/nologin  #新建一个tomcat用户

         6)   修改bin目录下的daemon.sh,在顶部位置加上以下配置(与catalina.sh相似):
               JAVA_HOME=/usr/lib/jvm/jdk8
               JAVA_OPTS="-Xms512m -Xmx512m -XX:MaxPermSize=512m"
               CATALINA_HOME=/usr/local/tomcat/tomcat7
               CATALINA_OPTS="$CATALINA_OPTS -Djava.security.egd=file:/./dev/urandom"
               CLASSPATH=.:$JAVA_HOME/lib:$CATALINA_HOME/lib
               TOMCAT_USER=tomcat

         7)   参考第一部分的第5点,把catalina.sh换成daemon.sh来运行即可。

         8) tomcat服务重启后,通过命令: ps -ef | grep tomcat    会看到进程是以tomcat身份来运行的了。

    2、第二种方式,使用su命令 
         tomcat的启动脚本中,tomcat的启动命令那行改为su -c service  tomcat,tomcat即为启动tomcat的用户

         修改文件: vi /etc/rc.local
         在最后加入: su - tomcat -c '/usr/local/tomcat/bin/startup.sh'

    3、使用sudo命令 
         tomcat的启动脚本中,tomcat的启动命令那行改为sudo -u tomcat /home/tomcat/bin/startup.sh,tomcat即为启动tomcat的用户 
         使用sudo时要注意,sudo默认是需要tty的,通过修改/etc/sudoers文件,将 Defaults requiretty 注释掉即可,否则系统启动时是不会自动运行的

  • 相关阅读:
    【转载】关于Java String, StringBuilder, StringBuffer, Hashtable, HashMap的面试题
    LeetCode: 【L4】N-Queens 解题报告
    【转载】在美国找工作秘籍
    Lintcode: Kth Largest Element 解题报告
    LeetCode: Reverse Integer 解题报告
    Lintcode: First Bad Version 解题报告
    九章面试题:Find first K frequency numbers 解题报告
    tomcat之虚拟目录
    百度搜索结果如何屏蔽百家号内容
    CentOS7之Rsync+Inotify架构实现实时同步文件和文件夹
  • 原文地址:https://www.cnblogs.com/clonen/p/5239808.html
Copyright © 2020-2023  润新知