A-A+

centos7.5 安装 tomcat7 并设置开机自启动

2018年10月24日 22:34 学习笔记 暂无评论 共2878字 (阅读2,668 views次)

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

首先去tomcat官网网站,找到7的版本对应的tar.gz,然后下载,地址:http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz

tomcat7

这里我用了默认的centos7.5系统的JAVA环境,如果你没有这个环境,你需要装一个java环境,这个可以百度一下的。

(1)进入目录

cd /usr/local

(2)创建目录

mkdir tomcat

(3)查看目录

ll 或 ls

##然后下载文件。例如刚才我找到的地址的文件。
wget http://ftp.meisei-u.ac.jp/mirror/apache/dist/tomcat/tomcat-7/v7.0.91/bin/apache-tomcat-7.0.91.tar.gz

(4)解压tomcat安装包

tar -zxvf apache-tomcat-7.0.91.tar.gz

(5)删除tomcat安装包(如果需要)

rm -rf apache-tomcat-7.0.91.tar.gz

(6)修改文件名(解压后的文件名过长,可以考虑修改短)

mv  apache-tomcat-7.0.91 tomcat7

(7)进入tomcat的目录(根据自己的安装目录来)

cd /usr/local/tomcat/tomcat7/bin

##测试是否可以正常启动tomcat
./startup.sh

##命令启动Tomcat 输入http://ip:8080 访问,如果访问不了,可能是防火墙没空开放8080端口
##如果你可以正常访问了,那么关掉tomcat。
./shutdown.sh

下一步:设置tomcat开机自启动
在/lib/systemd/system目录下增加tomcat8.service文件(似乎在/usr/lib/systemd/system下也行),内容如下:

vim /usr/lib/systemd/system/tomcat7.service

然后输入如下内容:

[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target
 
[Service]
Type=forking
ExecStart=/usr/local/tomcat/tomcat7/bin/startup.sh
ExecStop=/usr/local/tomcat/tomcat7/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
 
[Install]
WantedBy=multi-user.target

然后保存。允许tomcat8开机启动,运行:

systemctl enable tomcat7

tomcat8常见命令

systemctl start tomcat8.service    //启动tomcat
 
systemctl stop tomcat8.service    //关闭tomcat   
 
systemctl restart tomcat8.service   //重启tomcat 
 
systemctl status tomcat8.service   //查看状态tomcat

d

二、解决tomcat执行遇到的问题
1 服务器防火墙拦截
问题描述:当tomcat启动成功后,访问web服务器,请求失败。导致失败的原因之一可能就是防火墙将8080端口或者其他端口拦截掉了,我们需要重新开放8080或者其他端口,不建议关闭防火墙。

iptables防火墙设置参考文章地址:CentOS之——CentOS7安装iptables防火墙

(1)查看防火墙状态

service iptables status

(2)添加8080端口允许外网访问

/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT

(3)保存规则设定

service iptables save

(4)重启防火墙

service iptables restart

2 启动tomcat很慢
问题描述:启动tomcat会用几分钟甚至十几分钟的时间,这就说明tomcat启动被某种机制卡住了,后来查资料说是通过随机数生成秘钥的时候卡住了,导致Tomcat启动慢或失败。因为在tomcat8中,Tomcat的Session ID通过SHA1算法计算得到的,计算Session ID的时候必须有1个秘钥,为了提高安全性Tomcat在启动的时候通过随机数生成秘钥。但是我的版本是tomcat7.0.68,也遇到了类似的问题。解决办法就是增大熵池(影响随机数的强度的是生成用的熵)。

(1)解决办法一:使用rngd 软件增大熵池(推荐)

需要cpu支持 (可不执行)

grep rdrand /proc/cpuinfo

安装rngd服务(熵服务,增大熵池)

yum install rng-tools

启动服务

systemctl start rngd

(2)java环境下修改配置文件

vim $JAVA_HOME/jre/lib/security/java.security

###############
securerandom.source=file:/dev/random
##上方的内容改为如下
securerandom.source=file:/dev/urandom

centos7.5

(3)可以通过配置JRE使用非阻塞的Entropy Source(未验证)

vim $TOMCAT_HOME/bin/catalina.sh

if [[ "$JAVA_OPTS" !=*-Djava.security.egd=* ]]; then
JAVA_OPTS="$JAVA_OPTS -Djava.security.egd=file:/dev/urandom"
fi

这个系统属性egd表示熵收集守护进程(entropy gathering daemon)

总结:
tomcat启动慢可能我们开始不会注意到,我们测试的时候开启tomcat正常,关闭tomcat的时候出错,说明进程未关闭(默认8005进程),我们通常会使用kill -9 进程号杀掉进程。如果经常出现tomcat关闭异常这个问题,可能就是我们tomcat启动过慢导致的。

3 tomcat防火墙和启动正常,无法访问tomcat
问题描述:这个是我遇到最大的坑,防火墙正常,tomcat启动正常,但是就是一直无法访问。因为我使用的是阿里云的服务器,我设置了安全组,导致从阿里云服务器一直拦截我的端口,这里就要重新设置你的安全组规则。重新设置安全组,开放8080或其他端口即可正常访问。

部分文章资料来源参考:
https://blog.csdn.net/w410589502/article/details/77988912
https://blog.csdn.net/wqc19920906/article/details/82470353

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×
标签:

给我留言