Linux系统下安装tomcat

Posted 以德为先

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux系统下安装tomcat相关的知识,希望对你有一定的参考价值。

一、前置条件

   安装tomcat需要先安装jdk,所以没有安装jdk同学,详见参考文章

二、Linux上安装tomcat

1. 下载Apache tomcat

    tomcat官网下载地址

    在左边,可以选择下载各种版本的tomcat。根据服务器操作系统选择下载。Linux操作系统就下载tar.gz包。

    我下载的文件名是:apache-tomcat-8.5.37.tar.gz

2. 检查linux是否安装tomcat 

    输入rpm -qa|grep tomcat 

    查看下系统信息,确认是32位还是64位:uname -a   

3. 上传服务器、解压缩tomcat

    使用WinSCP或者Xftp等工具将tar.gz压缩包上传到 /usr/local 目录中,以下操作命令都需要在root账户下操作。

    进入目录解压安装包

    进入目录:cd /usr/local

    解压文件:tar -zxvf apache-tomcat-8.5.37.tar.gz  

    将目录apache-tomcat-8.5.37重命名为tomcat,方便一些

    重命名文件:mv apache-tomcat-8.5.37  tomcat8

4. 配置环境变量

    输入:vim /etc/profile 打开配置文件,按 i 进入编辑模式,在profile文件尾部 unset -f pathmunge 后面添加如下内容:

unset i
unset -f pathmunge
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CATALINA_HOME=/usr/local/tomcat8
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${CATALINA_HOME}/bin
export PATH=$PATH:${JAVA_PATH}:$PATH

   编辑完之后,按Esc 并输入  :wq(小写)  保存并退出编辑,然后输入以下指令:source /etc/profile 刷新环境配置使profile文件立即生效    

5. 正常启动

    运行  /usr/local/tomcat8/bin/startup.sh  就会启动tomcat,在浏览器中访问http://localhost:8080了,能看到如下界面,说明访问成功。

6. 正常关闭

   运行 /usr/local/tomcat8/bin/shutdown.sh  就会关闭tomcat

7. 修改tomcat配置

   进入 /usr/local/tomcat8/conf 目录修改server.xml中的tomcat端口

   运行 vim server.xml,用“/8080”定位到8080端口。如下图:  

    可以修改端口,默认8080,然后按ESC键,然后按 :wq(注意有一个英文冒号),保存并退出。

8. 局域网内无法访问解决办法    

   访问本地:http://localhost:8080/正确。但局域网内无法访问,而且服务器可ping通

   先查看防火墙开放端口列表对于Centos7系统 firewall-cmd --zone=public --list-ports

   如果没有8080端口,添加端口

  •  如果是firewalld防火墙 (对于Centos7系统),开启防火墙端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent  并且重新加载防火墙 firewall-cmd --reload
  •  如果是iptables防火墙 ,执行 vi  /etc/sysconfig/iptables 加入下面内容 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT

   如上配置并重启iptables就可以在局域网内访问8080端口了

   在不同Linux系统中,操作指令会有细微的差别,Centos6防火墙相关命令: 

service  iptables  status        查看防火墙状态
service  iptables  start         开启防火墙
service  iptables  stop          关闭防火墙
service  iptables  restart       重启防火墙

  对于Centos7系统来说,只有使用下面的指令,才可以对Linux防火墙进行启停。 

查看防火墙开放端口列表命令:firewall-cmd --zone=public --list-ports
开启防火墙8080端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent
关闭防火墙命令:systemctl stop firewalld.service 禁止防火墙开机启动命令:systemctl disable firewalld.service
重新加载防火墙
命令:firewall-cmd --reload

9. 其他一些问题 

   启动以后,可以利用命令 ps -ef|grep tomcat 查看tomcat是否正常启动。 

   如果正常启动以后无法访问,可以先不修改8080端口,尝试用8080端口访问。如果可以通过8080端口正常访问,则说明80端口被其他应用占用。 

   或者使用 netstat -an|grep 8080 命令查看是否有程序占用8080端口。

三、设置tomcat开机自动启动

1. 在 tomcat/bin 目录下面,增加 setenv.sh 配置,服务启动的时候会调用,同时配置java内存参数。

 输入命令编辑:vim /usr/local/tomcat/bin/setenv.sh

#add tomcat pid  
CATALINA_PID="$CATALINA_BASE/tomcat.pid"  
#add java opts  
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m" 

2. 增加tomcat.service,在/usr/lib/systemd/system目录下增加tomcat.service

输入命令编辑:vi /usr/lib/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
Environment=\'JAVA_HOME=/usr/local/java/jdk1.8.0_221/\'
Environment=\'CATALINA_PID=/usr/local/tomcat/tomcat.pid\'
Environment=\'CATALINA_HOME=/usr/local/tomcat/\'
Environment=\'CATALINA_BASE=/usr/local/tomcat/\'
Environment=\'CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC\'

PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[unit]配置了服务的描述,规定了在network启动之后执行。

[service]配置了环境变量,JAVA_HOME,服务的pid,服务的启动,停止,重启,内存参数。

[install]配置了使用用户。

当需要启动多个tomcat时,复制多个tomcat安装文件在/usr/local/下,如/usr/local/tomcat2,并配置多个tomcat.service 如tomcat2.service,tomcat3.service 在配置中修改对应的路径即可。

因为配置pid,在启动的时候会在tomcat根目录生成tomcat.pid文件,停止之后删除。

同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。

多个tomcat可以配置在多个目录下,使用不同的端口,互不影响。

3. 设置开机自启

systemctl enable tomcat.service

4. 启动tomcat

systemctl start tomcat.service

5. 在浏览器测试(略)

6. 上述步骤操作完成后如果还是访问不了tomcat服务,可以尝试重启一下linux服务器,命令:reboot

systemctl常用命令

其中.service 可以省略

查看全部服务命令:

systemctl list-unit-files --type service

查看服务

systemctl status name.service

增加开机启动

systemctl enable name.service

启动服务

systemctl start name.service

停止服务

systemctl stop name.service

重启服务

systemctl restart name.service

删除开机启动

systemctl disable name.service

 

以上是关于Linux系统下安装tomcat的主要内容,如果未能解决你的问题,请参考以下文章

linux系统下安装两个或多个tomcat的方法

Linux系统下安装tomcat

linux下安装tomcat,并设置自动启动

linux系统下安装tomcat服务器

linux下安装tomcat,并将tomgcat添加为系统服务

CentOS-Linux系统下安装Tomcat