一、前置条件

安装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通。

注意:如果执行 firewall-cmd --zone=public --add-port=3690/tcp --permanent,提示FirewallD is not running错误,则说明防火墙未开启。

1. 通过 systemctl status firewalld 查看firewalld状态,发现当前是Active: inactive (dead)状态,即防火墙未开启。

2. 通过  systemctl start firewalld  开启防火墙,没有任何提示即开启成功。

3. 再次通过 systemctl status firewalld 查看firewalld状态,显示running即已开启了。

4. 如果要关闭防火墙设置,可能通过 systemctl stop firewalld 这条指令来关闭该功能。

先查看防火墙开放端口列表对于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的更多相关文章

  1. linux系统下安装tomcat及配置

    一.下载TOMCAT压缩包 apache-tomcat-6.0.44-client.zip 或 apache-tomcat-7.0.69.tar.gz 点击进入官网:http://tomcat.apa ...

  2. linux系统下安装tomcat服务器

    一.首先需要关闭linux防火墙(重启后生效) chkconfig iptables off 二.从官网上下载Linux合适版本的tomcat,我现在下来的文件为apache-tomcat-8.5.3 ...

  3. linux系统下安装jdk,mysql,tomcat 和redis 和jedis入门案例

    Day47笔记Linux+redis入门 Day47   知识讲解:Jedis 1.Linux上jdk,mysql,tomcat安装(看着文档安装) 准备工作: 因为JDK,TOMCAT,MYSQL的 ...

  4. Linux系统下分割tomcat日志

    在Linux系统下,tomcat日志catalina.out并不会像window系统下,按日期进行重写备份,因此在Linux系统下会造成日志文件过大的情况,本文介绍采用 cronolog工具进行如在w ...

  5. JavaWeb入门——在Linux环境下安装Tomcat服务器

    JavaWeb入门——在Linux环境下安装Tomcat服务器 摘要:本文主要学习了如何在Linux环境下安装Tomcat服务器. 准备工作 检查Java环境变量 检查系统是否配置了Java的环境变量 ...

  6. linux系统下重启tomcat的shell脚本

    linux系统下重启tomcat的shell脚本: #!/bin/shtomcat_home=/opt/apache-tomcat- #找到tomcat进程的id并kill掉 ps -ef |grep ...

  7. 在Linux系统下安装大于mysql5.5版本的数据库

    linux下mysql 5.5的安装方法: 1.安装所需要系统库相关库文件      gcc等开发包,在安装linux系统的时候安装. 2.创建mysql安装目录 # mkdir -p /usr/lo ...

  8. Linux 系统下安装 rz/sz 命令及使用说明

    Linux 系统下安装 rz/sz 命令及使用说明 rz/sz命令,实现将本地的文件上传到服务器或者从服务器上下载文件到本地,但是很多Linux系统初始并没有这两个命令,以下为安装和使用的具体步骤: ...

  9. Linux 系统下安装 python-skimage

    Linux 系统下安装 python-skimage 安装必须的依赖 // python-mumpy // python-scipy // python-matplotlib $ sudo apt-g ...

随机推荐

  1. HTTPS-自己生成数字证书

    一.获取证书的途径 自签名证书,适用于开发者测试HTTPS,最快速的途径就是生成自签名证书,非常方便. Let's Encrypt证书,可以使用免费CA机构签发的证书. 使用收费CA机构签发的证书,如 ...

  2. [gym103055H]Grammy and HearthStone

    题目即要求构造一个长为$2n$的序列$a_{i}$,满足$\forall 1\le i\le n$,$i$恰好出现两次,假设分别是$a_{x}=a_{y}=i(x<y)$,即要求$y-x=i$ ...

  3. [loj3272]汉堡肉

    当$k\le 3$,这是一个经典的问题 设所有矩形左下角横纵坐标的最大值为$(x_{1},y_{1})$,右上角横纵坐标的最小值为$(x_{2},y_{2})$,那么必然存在一组合法解满足其中一点为$ ...

  4. AtCoder Beginner Contest 204

    身败名裂了,\(AK\)场转掉分场. 都是水题不说了. 这篇文鸽了.

  5. Codeforces 1129D - Isolation(分块优化 dp)

    Codeforces 题目传送门 & 洛谷题目传送门 又独立切了道 *2900( 首先考虑 \(dp\),\(dp_i\) 表示以 \(i\) 为结尾的划分的方式,那么显然有转移 \(dp_i ...

  6. Linux非root安装Python3以及解决SSL问题

    说明 接上一篇. [Linux]非root安装Python3及其包管理 上一篇虽然成功安装了Python3及一些常用的模块,但因为一直装不上SSL模块,导致一些包无法安装,尝试了不少方法都失败了(网上 ...

  7. 32-3Sum

    相似题目 4sum http://blog.csdn.net/justdoithai/article/details/51195124 http://blog.csdn.net/justdoithai ...

  8. 29-Regular Expression Matching-leetcode

    '.' Matches any single character. '*' Matches zero or more of the preceding element. The matching sh ...

  9. 11-String to Integer (atoi)

    字符串转整型,更新之后的leetcode题,需考虑各种情况, 测试过标准库的atoi函数,当字符串越界返回的值是错的, 而该题要求越界时的返回边界值,更加严谨. Implement atoi to c ...

  10. C语言入坑指南-数组之谜

    前言 在C语言中,数组和指针似乎总是"暧昧不清",有时候很容易把它们混淆.本文就来理一理数组和指针之间到底有哪些异同. 数组回顾 在分析之前,我们不妨回顾一下数组的知识.数组是可以 ...