CentOS学习笔记--Tomcat安装

Tomcat安装

通常情况下我们要配置Tomcat是很容易的一件事情,但是如果您要架设多用户多服务的Java虚拟主机就不那么容易了。其中最大的一个问题就是Tomcat执行权限。普通方式配置的Tomcat是以root超级管理员的身份运行的,显然,这是非常危险的,可想而知,一但网站被挂马,您的整个服务器都可以被黑客控制了。而通过编译或在线(例如redhat系列的yum, debian系列的apt-get)的方式安装,一个服务器上又只能装一个tomcat的服务,如果将多个网站放到同一个tomcat服务中,一但某一个网站出问题导致tomcat服务被卡死,则服务器上所有的网站都打不开了,无法满足各网站程序独享tomcat的需求。为了解决这些问题,我们需要配置Tomcat以指定的身份运行,且一台服务器上可以安装任意多个tomcat服务。


测试机器环境:

VMware Workstation 10 虚拟机

内存:1G

Linux版本:CentOS MinimalCD 6.5

JAVA:JAVA_HOME=/opt/jdk


一、先在 Linux系统上配置好JDK环境(CentOS学习笔记--JDK安装)

       假设您已经在Linux系统上正确安装了JDK开发环境,且JDK安装的位置在: /opt/jdk/

二、下载并解压最新版本的Tomcat,http://tomcat.apache.org,将其下载下来(我下到的是apache-tomcat-6.0.41.tar.gz)放到Linux系统的/opt/目录下,运行命令解压(并将解压出来的目录更名为tomcat):

tar xzvf apache-tomcat-6.0.41.tar.gz
mv apache-tomcat-6.0.41/ tomcat

三、编译安装tomcat daemon服务守候程序:

cd /opt/tomcat/bin/
tar xvzf commons-daemon-native.tar.gz

1、解压后会生成一个commons-daemon-1.0.15-native-src目录,cd到这个目录的Linux子目录:

cd commons-daemon-1.0.10-native-src/unix

2、注释:安装gcc(默认Mini版本没有安装gcc)

yum -y install gcc

3、执行编译配置

./configure  #(注意:需要先安装好make,gcc等编译工具)
./configure --with-java=/opt/jdk 如果提示没有jdk,使用这个命令。主要是java目录未写入系统目录

4、运行完成后会提示如下信息说明操作成功:

...
*** All done ***
Now you can issue "make"

5、执行make:

make

6、执行make后会生成一个jsvc的文件,将其复制到tomcat的bin目录。

cp jsvc /opt/tomcat/bin/

7、在tomcat/bin目录里面有一个daemon.sh 这个文件就是启动和关闭tomcat的服务守候程序。

注意:之前的一些tomcat版本,例如tomcat 6.0.x, 可能没有这个文件, 其实这个文件就是放在commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh这儿的(此目录还有一个Tomcat5.sh),只不过新版本的tomcat把它移动到了bin目录下,并取名为daemon.sh了。所以,如果您使用的是tomcat 6,那就把这个Tomcat7.sh文件复制到bin目录下,并取名为daemon.sh即可。

8、修改daemon环境变量 :

用文本编辑器(vi或emacs等)编辑它,找到类似下面这样配置段:

test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
# JAVA_HOME=/opt/jdk-1.6.0.22

9、修改TOMCAT_USER=tomcat为您要指定身份运行的linux账号用户名,此处指定用户名为tomcat。

并把JAVA_HOME=...前面的注释(即“#”号)去掉,并设置为jdk的安装目录路径,最后,修改好后的配置段变成如下:

test ".$TOMCAT_USER" = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
JAVA_HOME=/opt/jdk

10、现在修改/opt/tomcat目录的所有者为tomcat(即您要指定身份运行的linux帐号):

useradd -M tomcat #创建没有主目录的tomcat用户
chsh tomcat -s /sbin/nologin  #禁止tomcat登陆操作,类似于windows的系统账户
chown -R tomcat /opt/tomcat   #将/opt/tomcat下的所有档案与子目录进行相同的拥有者变更为tomcat用户

11、为tomcat/bin/目录下的*.sh添加相应的x权限位:

chmod +x /opt/tomcat/bin/*.sh

12、现在,可以测试一下daemon是否可以启动运行,启动方式如下:

/opt/tomcat/bin/daemon.sh  start
 curl http://localhost:8080   #测试一下是否启动

(如果出错,重点查验tomcat的bin目录下的*.sh是否有x可执行权限、linux帐号是否有tomcat目录的读写权限,是否有tomcat/logs日志目录的写权限等等。)如无错误,则tomcat的daemon守候程序已经设置成功了。

13、这时本机可以访问tomcat了,远程机器访问不了,是防火墙的问题,在 /etc/sysconfig/iptables添加

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT   #8080是tomcat的访问端口

重启iptable

service iptables restart

这样就可以访问了。

14、停止tomcat, 对应的命令为:

/opt/tomcat/bin/daemon.sh  stop

15、添加tomcat为Linux的服务,这时就简单了,只需要创建一个软链到/etc/init.d/目录中即可

ln  -s  /opt/tomcat/bin/daemon.sh  /etc/init.d/tomcat

16、现在就可以用它启动/关闭tomcat了:

/etc/init.d/tomcat  start #启动tomcat
service tomcat start      #启动tomcat
/etc/init.d/tomcat  stop  #关闭tomcat
service tomcat stop       #关闭tomcat

17、设置tomcat服务开机启动,需要在daemon.sh中增加以下的语句:

#!/bin/sh      #这句是原文件里有的,下面的2句是要添加的
# chkconfig: 2345 90 15
# description: Tomcat-en Manager

18、再运行 chkconfig命令增加tomcat服务,而达到自启动:

chkconfig --add  tomcat

重启机器,测试一下。

四、如果想再创建一个tomcat服务,只需要将/opt/tomcat这个目录复制一份,例如:

cp /opt/tomcat /opt/tomcat1

再修改一下tomcat1的端口号(/opt/tomcat/opt/tomcat1/conf/server.xml中的端口号不能与其它的服务重复)。最后从上面所述第8步开始,创建另一个服务即可。

通过这种方式,您就可以为一台Linux服务器创建任意多个tomcat服务了。最后只需要安装一个前端服务器(例如Nginx或Apache),将不同域名的请求转发到不同的tomcat服务程序就可以了。

时间: 2024-08-24 21:33:15

CentOS学习笔记--Tomcat安装的相关文章

CentOS学习笔记--JDK安装

JDK安装 大部分的服务都离不开JAVA环境,CentOS里都是OpenJDK,显然我们还是使用JAVA的JDK好.(注:minimal版没有安装OpenJDK,其它版本需要删除这个.) JDK下载 从http://www.oracle.com/technetwork/java/javase/downloads/index.html下载JDK的tar.gz版本. 利用SSH上传到/opt下. 安装 # cd /opt # tar xzvf *.tar.gz # mv *.tar.gz jdk <

CentOS学习笔记--MySQL安装

安装mysql前需要查询系统中含有的有关mysql的软件. rpm -qa | grep -i mysql //grep -i是不分大小写字符查询,只要含有mysql就显示 屏幕显示: mysql-libs-5.1.71-1.el6.i686 //它是好几个软件的依赖,其中在mini版本中postfix软件依赖mysql-libs,网络上很多建议都是直接删除, yum remove mysql-libs 或者 rpm -e --nodeps mysql-libs-5.1.71-1.el6.i68

[Linux] 学习笔记之安装学习环境(sshd, lrzsz)

紧接前一篇,在VMWare安装完Linux,这个时候我们要使用远程工具连接到虚拟机上去了,以前一直使用Putty,后来到新公司之后,推荐使用SecureCRT,使用之后,觉得效果不错,但是每次连接都失败,linux新手伤不起,在网上搜啊搜,终于找到解决办法.   搜索了很多资料之后,发现是由于我未在Linux上安装ssh服务导致无法使用SecureCRT连接. 1. 可以使用ssh localhost对此进行测试,具体使用如下: 2. 使用apt-get或者yum安装ssh服务,具体哪种操作系统

python学习笔记1——安装python

python学习笔记1--安装python centos和ubuntu的python2.7的安装方法参考:http://daixuan.blog.51cto.com/5426657/1767325 1.查看当前python版本并且 [[email protected] ~]# python -V Python 2.6.6 2.安装eple-release扩展源 [[email protected] ~]# yum install -y epel-release 3.安装pip [[email p

[Linux][VMWare] 学习笔记之安装Linux系统-网络配置

最近开始折腾Linux,在本机装了个VMWare和Centos,装完之后虚拟机里面的OS可以上网,但是使用SecureCRT连接不上虚拟机,开始折腾这个网络. vmware安装好以后,会自动添加两张网卡(vmnet1和vmnet8),中间网卡),整个机器的结构就可以抽象成:虚拟机系统(虚拟机网卡vmnet0)--(vmnet1 vmnet8),中间网卡)--实际系统网卡 vmware的网卡设置的几种方式: 1. Bridged(桥接)方式     用这种方式,虚拟系统的IP可设置成与本机系统在同

node.js在windows下的学习笔记(1)---安装node.js

1.首先打开http://www.nodejs.org/ 2.选择DOWNLOADS,跳转到下面的画面,我的系统是windows7的32位.所以选择.msi的32bit版本. 3.下载后,得到一个5.43MB大小的安装包, 4.运行安装包 点击next 打个勾,点击next 选择安装目录 最后,安装成功啦 node.js在windows下的学习笔记(1)---安装node.js,布布扣,bubuko.com

nodejs学习笔记之安装、入门

由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例子.如果想看linux下的安装可以参考http://www.cnblogs.com/meteoric_cry/archive/2013/01/04/2844481.html) 1. nodejs提供了一些安装程序,可以去官网(http://nodejs.org/download/)按照自己的机器进行下载,下载完

MongoDB 学习笔记一 安装以及基础命令

一.MongoDB安装配置 1.获取最新版本: wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.0.2.tgz 2.解压缩即可执行 tar zxvf mongodb-linux-x86_64-2.0.2.tgz tar zxvf mongodb-linux-x86_64-2.0.2.tgz cd /usr/mongodb-linux-x86_64-2.0.2/bin 但是在运行前,需要创建mongodb需要的存放数据和日志的

docker学习笔记1 -- 安装和配置

技术资料 docker中文官网:http://www.docker.org.cn/ 中文入门课程:http://www.docker.org.cn/book/docker.html docker学习笔记:http://www.open-open.com/lib/view/open1423703640748.html 深入浅出docker:http://www.infoq.com/cn/articles/docker-core-technology-preview 安装 参考:http://www