第一部分:基本安装

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 注释掉即可,否则系统启动时是不会自动运行的

Ubuntu下安装Tomcat7的更多相关文章

  1. 在Ubuntu下安装ovs-dpdk

    在Ubuntu下安装ovs-dpdk 参考资料:https://software.intel.com/zh-cn/articles/using-open-vswitch-with-dpdk-on-ub ...

  2. Ubuntu 下安装QT

    Ubuntu 下安装QT 本文使用的环境 QT Library: qt-everywhere-opensource-src-4.7.4.tar.gz QT Creator: qt-creator-li ...

  3. Ubuntu下安装JDK以及相关配置

    1.查看系统位数,输入以下命令即可 getconf LONG_BIT 2.下载对应的JDK文件,我这里下载的是jdk-8u60-linux-64.tar.gz 3.创建目录作为JDK的安装目录,这里选 ...

  4. Ubuntu下安装mod_python报错(GIT错误)

    Ubuntu下安装mod_python3.4.1版本报出如下错误: writing byte-compilation script '/tmp/tmpE91VXZ.py' /usr/bin/pytho ...

  5. TODO:Ubuntu下安装Node

    TODO:Ubuntu下安装Node Node.js 是一个基于 Chrome V8 引擎的 JavaScript 运行环境.Node.js 使用了一个事件驱动.非阻塞式 I/O 的模型,使其轻量又高 ...

  6. Ubuntu杂记——Ubuntu下安装VMware

    转战Ubuntu,不知道能坚持多久,但是自己还是要努力把转战过程中的学习到的给记录下来.这次就来记录一下,Ubuntu下如何安装VMware. 就我所知,Linux下有VirtualBox和VMwar ...

  7. 来杯Caffe——在ubuntu下安装Caffe框架并测试

    Caffe是一种深度学习框架...blablabla...... Caffe要在ubuntu下安装 1. 安装依赖 sudo apt-get install libatlas-base-dev sud ...

  8. Ubuntu 下安装 Mysql

    这里讲用Ubuntu下安装MySql ubuntu上安装mysql非常简单只需要几条命令就可以完成. 1. sudo apt-get install mysql-server   2. apt-get ...

  9. ubuntu下安装配置OpenCV

    Cmake的安装 我用的是ubuntu-software自动下载安装的. Ubuntu 下安装 OpenCV 首先下载安装相关包,然后下载OpenCV 系统:ubuntu16.04 OpenCV:2. ...

随机推荐

  1. Android中使用开源框架citypickerview实现省市区三级联动选择

    1.概述 记得之前做商城项目,需要在地址选择中实现省市区三级联动,方便用户快速的填写地址,当时使用的是一个叫做android-wheel 的开源控件,当时感觉非常好用,唯一麻烦的是需要自己整理并解析省 ...

  2. WebGIS前端瓦片地图显示原理及实现

    目前,有很多WebGIS开发包,ArcGIS API for JS.OpenLayers.LeafLetjs等为我们从事WebGIS开发的人封装了很多强大的功能.我们很方便的使用这些库的时候,也让我们 ...

  3. KoaHub.js可借助 Babel 编译稳定运行在 Node.js 环境上

    koahubjs KoaHub.js -- 基于 Koa.js 平台的 Node.js web 快速开发框架.可以直接在项目里使用 ES6/7(Generator Function, Class, A ...

  4. H5 Video + DOM

    HTML 5 Video + DOM HTML5 视频 HTML5 音频 HTML5 <video> - 使用 DOM 进行控制 HTML5 <video> 元素同样拥有方法. ...

  5. 009 Java集合浅析4

    前面一篇教程中,我们分析了List派别中的最常见也最重要的一个类ArrayList<E>.从我们的分析来看,ArrayList作为动态数组的模拟,使用的是连续内存空间来存储数据,带来了可随 ...

  6. [C++]现行的试卷封面并获取学生题目得分信息以及学号信息的原型系统

    大二的时候写的一个CV小玩意,最终决定还是把它放出来,也许会帮助到很多人,代码写的很丑,大家多多包涵.附加实验报告主要部分. 课题背景及意义: 本项目主要目标是设计一套能自动分析我校现行的试卷封面并获 ...

  7. android 关于表格布局的认识

    表格布局(TableLayout) 使用的知识点有: 控件 TableRow:为这个表格添加一行 table的特殊属性 android:layout_column:确定此表格的列数 android:s ...

  8. C#编写代码:求三个数中的最大数

    static void Main(string[] args)        {            float x, y, z, temp;            Console.Write(&q ...

  9. Linux文件权限rwx简单了解

    Ⅰ  了解Linux下的文件权限 如上图所示,ll命令详细展示当前目录下的文件或者子目录信息 红框标注的即为此文件或者目录的权限 [第一行文件10.c的权限以-开头,用来说明这是一个文件:第四行cod ...

  10. vue搭建开发环境

    windows下搭建vue开发环境 一.安装node.js 安装   vue项目通常通过webpack工具来构建,而webpack命令的执行是依赖node.js环境,所以首先要安装node.js. n ...