(转)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 的官方下载页面, 目前官网上提供如下几个版本以供下载
| 版本 | Documentation | Download |
|---|---|---|
| 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没有权限
ll发现是没有, 运行权限的
linux下ls某文件夹需要文件夹有r读权限.cd某文件夹 需要文件夹有x运行权限chmod +x ./*同样想要运行bin下的脚本也需要运行权限, 因此
chmod +x ./bin/*.sh
2.2.4 配置和运行
bin 下存储了我们运行和配置 tomcat 所需要的脚本信息

| 脚本 | 描述 |
|---|---|
| daemon.sh | 守护进程(服务)的方式启动和关闭tomcat, 以jsvc管理tomcat, jsvc可以由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 | 完善的服务脚本, 支持 start, stop, version 等方式, 可以直接放到 /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

- 关闭
./shutdown.sh
等价于
sudo sh catalina.sh stop
打开http://localhost:8080

2.2.5 配置启动脚本
catalina.sh 脚本可以直接作为服务来使用, 我们做一个了链接即可
cd /etc/init.d
sudo ln -s /opt/apache-tomcat/catalina.sh ./tomcat8

当然我们也可以自己做一个
#!/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

更多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
(转)linux下装tomcat的更多相关文章
- Linux查看tomcat 控制台输出命令
用远程登陆客户端登陆linux进入tomcat/logs/文件夹下键入指令:tail -f catalina.out
- Linux下Tomcat服务器重启与关闭
Linux下Tomcat重新启动 详细请参照原网站链接http://www.cnblogs.com/tovep/articles/2473147.html 在Linux系统下,重启Tomcat使用命令 ...
- 阿里云OneinStack,Linux下tomcat命令
阿里云OneinStack,Linux下tomcat命令 Linux下如何查看tomcat是否启动在Linux系统下,重启Tomcat使用命令操作的首先,进入Tomcat下的bin目录cd /usr/ ...
- Linux下tomcat部署
进入Tomcat下的bin目录 cd /usr/local/tomcat/bin 如果你想直接干掉Tomcat,你可以使用kill命令,直接杀死Tomcat进程 kill -9 7010 然后继续查看 ...
- Linux下tomcat服务
一:Linux下tomcat服务的启动.关闭与错误跟踪,使用PuTTy远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务:切换到tomcat主目录下的bin目录(cd usr/loca ...
- linux下tomcat服务的启动、关闭与错误跟踪
linux下tomcat服务的启动.关闭与错误跟踪,远程连接到服务器以后,通常通过以下几种方式启动关闭tomcat服务: 1).启动tomcat服务 进入tomcat主目录下的bin目录,然后执行如下 ...
- linux+nginx+tomcat负载均衡,实现session同步
linux+nginx+tomcat负载均衡,实现session同步 花了一个上午的时间研究nginx+tomcat的负载均衡测试,集群环境搭建比较顺利,但是session同步的问题折腾了几个小时才搞 ...
- linux jdk tomcat
linux jdk tomcat mysql的安装 mysql的话,推荐使用命令行安装,而不是用外部的源码去编译,因为简单粗暴. mysql服务:sudo apt-get install mysql- ...
- Linux下Tomcat catalina.out自动归档,以及logrotate 配置详解
Linux下Tomcat catalina.out自动归档 如果 catalina.out 日志达到 2GB 大小的时候,Tomcat 因为缓存问题,便没有办法继续输出日志了. 为了避免这种情况,你 ...
随机推荐
- bzoj1044题解
[题意分析] 本题等价于如下描述: 有一个长度为n的正整数序列,要求将其分解成m+1个子串,使最大子串和最小.求这个最大子串和及对应的分解方案数. [解题思路] 第一问二分+贪心即可.容易证明对于确定 ...
- 关于swiper动态更改,无法更新的悖论
关于swiper动态更改,无法更新的悖论 以前都觉得swiper的使用很简单,那是因为使用swiper时都是写的数据,按照官网上介绍直接初始化swiper,随便丢一个地方初始化就ok了,但是在很多需求 ...
- idea无法引用jar包中的class
最近由eclipse换idea的过程中,出现了一个很奇妙的问题! 项目是maven+git+idea管理的,idea某次在使用的过程中,电脑死机重启后,发现无法引用jar包中的class.包括jdk中 ...
- 网页压缩--gzip和deflate的区别
我们在配置网站GZip压缩的时候,会发现有两个模块可以设置的,一个是GZip模块的参数配置,另一个是Deflate模块的参数配置,他们的设置方法是一样的.刚开始时我不太明白,这两地方有什么不同?网站开 ...
- error C3867: “std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str”: 函数调用缺少参数列表;请使用“&std::basic_string<char,std::char_traits<char>,std::allocator<char>>::c_str”创建指向成员的指针
这个问题找了很多没有找到满意的答案.仔细看了一下,是使用了c_str的问题. 我直接把使用string.c_str的地方使用char*代替即解决问题.
- linux学习的任督二脉-进程调度和内存管理
转自 宋宝华老师的博客原文:https://blog.csdn.net/21cnbao/article/details/77505330 内功心法 学习或遇到问题时,反过来主动思考如果我是设计者,我会 ...
- Java全栈,MySQL搞透,架构手到擒来,还有面试官搞不定?
五月最后一天啦,时间过得真快,做技术的难免做了几年就感觉很迷茫,那就需要多读点书,多学点技术才能有安全感. 栈长之前推荐过不少极客时间的课程,几乎每周都推荐一个,很多朋友评论说,课程太多学不过来,今天 ...
- APP接口测试和功能测试点
- 推荐20个让你学习并精通CSS的网站
1. A List Apart CSS Topics A List Apart,学习网页设计和最佳实践的首选网站.这个网站从1999年就开始发表关于CSS的文章,其中大部分文章都是面向那些更注重符合标 ...
- <%#Eval() %>的常用方法
<%# %>用于数据绑定,通常是用在数据源控件里,比如GridView,Repeater等. 1.绑定Repeater 基础用法 <%# Eval("DriverName& ...

