文章目录
Centos7 安装 Tomcat8 的正确姿势 并设置开机自启 实践笔记
1.配置防火墙:
关闭防火墙和加入放行端口二选一
1.1 直接关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态(关闭后显示notrunning,开启后显示running)
[root@localhost ~]# firewall-cmd --state
not running
[root@localhost ~]#
1.2 加入放行端口
firewall-cmd --zone=public --add-port=80/tcp --permanent #添加放行端口(–permanent永久生效,没有此参数重启后失效)
firewall-cmd --reload #刷新防火墙 使其生效
firewall-cmd --zone=public --list-ports #查看防火墙放行端口列表
[root@localhost ~]# firewall-cmd --zone=public --add-port=8080/tcp --permanent #(–permanent永久生效,没有此参数重启后.效)
success
[root@localhost ~]# firewall-cmd --reload
success
[root@localhost ~]# firewall-cmd --zone=public --list-ports
80/tcp 8080/tcp
[root@localhost ~]#
表示成功
2.安装wget
yum -y install wget
3.下载tomcat8
wget http://mirrors.shuosc.org/apache/tomcat/tomcat-8/v8.5.42/bin/apache-tomcat-8.5.42.tar.gz
若失效,官网自己查下载地址,或者使用下面我提供的官方原版软件
4.解压
tar -zxvf apache-tomcat-8.5.42.tar.gz
5.移动到/usr/local
mv apache-tomcat-8.5.42 /usr/local/tomcat8
6.配置tomcat的jdk环境变量
yum -y install vim
vim /usr/local/tomcat8/bin/catalina.sh
在 OS specific support. 前面加入如下代码:
export JAVA_HOME=/usr/local/java/jdk1.8.0_211
export JRE_HOME=$JAVA_HOME/jre
7.配置tomcat8开机启动
在/usr/lib/systemd/system目录下增加tomcat8.service文件,内容如下:
vi /usr/lib/systemd/system/tomcat8.service
[Unit]
Description=Tomcat-8
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=oneshot
ExecStart=/usr/local/tomcat8/bin/startup.sh
ExecStop=/usr/local/tomcat8/bin/shutdown.sh
ExecReload=/bin/kill -s HUP $MAINPID
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
8.允许tomcat8开机启动
systemctl enable tomcat8
9.tomcat8常见命令
systemctl enable tomcat.service //开机自启tomcat
systemctl disable tomcat.service //禁用开机自启tomcat
systemctl start tomcat8.service //启动tomcat
systemctl stop tomcat8.service //关闭tomcat
systemctl restart tomcat8.service //重启tomcat
systemctl status tomcat8.service //查看状态tomcat
10.常见错误解决方案
1、如果使用systemctl start tomcat8.service启动报错,并报如下错误
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
原因
因为启动tomcat会调用tomcat安装文件中的startup.bat,而它调用了catalina.bat则调用了setclasspath.bat。因此需要在setclasspath.bat的开头手动声明环境变量。
解决方案
用vim打开tomcat的bin目录下的setclasspath.sh,添加JAVA_HOME和JRE_HOME两个环境变量(下图红色方框内),两个环境变量路径为您安装的java JDK的路径。
成功用service tomcat start开启tomcat服务。
配置开机自启详细版本
1、配置环境变量
# 使用vim /ect/profile命令
# java tomcat env
export JAVA_HOME=/usr/java/jdk1.8.0_92
export CLASS_PATH=.:$JAVA_HOME/lib
export CATALINA_HOME=/opt/tomcat8
export CATALINA_BASE=/opt/tomcat8
export PATH=$PATH:$JAVA_HOME/bin:$CATLINA_HOME:/bin
# 使用source使环境变量立即生效source /etc/profile
2、简单介绍systemctl命令的使用
systemctl list-unit-files --type service #查看全部服务命令
systemctl status name.service #查看服务命令
systemctl start name.service #启动服务
systemctl stop name.service #停止服务
systemctl restart name.service #重启服务
systemctl enable name.service #增加开机启动
systemctl disable name.service #删除开机启动
3、配置tomcat的启动参数
# 编辑/opt/tomcat8/bin/setenv.sh,没有的话就新建
vim /opt/tomcat8/bin/setenv.sh
# 输入以下配置选项(tomcat有很多配置选项)
# 设置tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
# 设置java参数,提高性能
JAVA_OPTS="-server -XX:MetaspaceSize=256M -XX:MaxMetaspaceSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
# 保存文件
# 修改文件权限变为可执行
chmod a+x /opt/tomcat8/bin/setenv.sh
4、配置systemctl来管理tomcat
# 在/usr/lib/systemd/system目录下新建tomcat8.service文件
cd /usr/lib/systemd/system
# 创建tomcat8.service文件
vim tomcat8.service
# 输入以下内容
[Unit]
Description=Tomcat-8
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/home/software/tomcat/apache-tomcat-8.5.40/tomcat.pid
ExecStart=/home/software/tomcat/apache-tomcat-8.5.40/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
# 保存wq!
设置tomcat开机启动
systemctl enable tomcat8