阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

CentOS 6.5下安装Tomcat

118次阅读
没有评论

共计 3783 个字符,预计需要花费 10 分钟才能阅读完成。

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 笔记 http://www.linuxidc.com/Linux/2015-01/111414.htm)

      假设您已经在 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 服务程序就可以了。

Linux 下 Apache 与多个 Tomcat 集群负载均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm

Nginx Tomcat 集群负载均衡解决笔记 http://www.linuxidc.com/Linux/2013-07/86827.htm

实例详解 Tomcat 组件安装 +Nginx 反向代理 Tomcat+Apache 使用 mod_jk 和 mod_proxy 反向代理和负载均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm

Apache+Tomcat 环境搭建(JK 部署过程)http://www.linuxidc.com/Linux/2012-11/74474.htm

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

更多 CentOS 相关信息见CentOS 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=14

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计3783字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中