一、前置条件

安装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. React-Router学习(基础路由与嵌套路由)

    示例:基本路由 在这个例子中,我们有3个'Page'组件处理<Router>. 注意:而不是<a href="/">我们使用<Link to=&quo ...

  2. CentOS 设置网络及安装 ifconfig

    centos使用yum报错"Could not resolve host: mirrorlist.centos.org; 未知的错误" 先用NetworkManager包的nmcl ...

  3. 微信小程序(四)开发框架

    wxss: 一套样式语言,用于描述wxml 的组件样式 基于css 的删除和修改 尺寸单位:rpx 样式导入 @import 内联样式 style 选择器 .class .intro 选择所有拥有 c ...

  4. int,double与机器字长

    机器字长:计算机能直接处理的二进制数据的位数,它决定了计算机的运算精度想深入了解. 学好汇编语言对你帮助非常大.汇编语言中的,最基本的数据类型有: (1) byte (2)word (3)double ...

  5. jpg与jpeg的区别在哪

    JPG文件的优点是体积小巧,并且兼容性好,因为大部分的程序都能读取这种文件,这是因为JPG格式不仅是一个工业标准格式,而且更是web的标准文件格式.JPG文件如此拥有如此便利的条件,难怪得到了业余玩家 ...

  6. puts()_C语言

    puts()函数用来向标准输出设备, scanf函数是格式输入函数,即按用户指定的格式从键盘上把数据输入到指定的变量之中. puts就是输出字符串啊.int puts(    const char* ...

  7. [bzoj4971]记忆中的背包

    为了使得方案的形式较为单一,不妨强制物品体积为1或$\ge \lceil\frac{w}{2}\rceil$,那么假设最终有$x$个1且$\ge \lceil\frac{w}{2}\rceil$的物品 ...

  8. [cf1137F]Matches Are Not a Child's Pla

    显然compare操作可以通过两次when操作实现,以下仅考虑前两种操作 为了方便,将优先级最高的节点作为根,显然根最后才会被删除 接下来,不断找到剩下的节点中(包括根)优先级最高的节点,将其到其所在 ...

  9. Java设计模式之(九)——门面模式

    1.什么是门面模式? Provide a unified interface to a set of interfaces in a subsystem.Facade defines a higher ...

  10. win10 如何查看本地连接的WIFI密码

    1 在状态栏右侧找到WIFI图标,右键WIFI图标,打开"网路和 Internet"设置 2 切换到 "状态"或"WLAN",找到" ...