运行环境

系统版本:CentOS Linux release 7.3.1611

软件版本:Tomcat-9.0.11

硬件要求:无

安装过程

1、安装YUM-EPEL存储库

YUM-EPEL存储库由EPEL官网提供。

[root@localhost ~]# yum -y install epel-release.noarch

2、安装依赖

我这里使用的OpenJDK,建议大家采用JDK。

[root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel
[root@localhost ~]# java -version
openjdk version "1.8.0_181"
OpenJDK Runtime Environment (build 1.8.0_181-b13)
OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode)

3、从官网下载Tomcat

下载Code(核心)版本。

[root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz

4、配置环境变量

有时候我们要使用Tomcat调试模式的时候可能会需要用到它。

[root@localhost ~]# vim /etc/profile
export JAVA_HOME=/usr
[root@localhost ~]# source /etc/profile

5、安装Tomcat

[root@localhost ~]# mkdir /usr/local/tomcat
[root@localhost ~]# tar xzvf apache-tomcat-9.0.11.tar.gz -C /usr/local/tomcat

6、配置Tomcat服务

配置Tomcat服务,将Tomcat服务的管理交给系统的Systemctl命令管理。

[root@localhost ~]# vim /usr/lib/systemd/system/tomcat.service
[Unit]
Description=tomcat [Service]
Type=forking
ExecStart=/usr/local/tomcat/apache-tomcat-9.0.11/bin/catalina.sh start
ExecStop=/usr/local/tomcat/apache-tomcat-9.0.11/bin/catalina.sh stop
ExecReload= [Install]
WantedBy=multi-user.target

7、配置Tomcat

若你想通过端口区分访问到不同的WEB站点,则复制多个"<Server>"配置设置不同端口即可。若通过域名方式区分访问到不同的WEB站点,则复制多个"<host>"配置设置不同的域名和要发布的网站根目录即可。

[root@localhost ~]# vim /usr/local/tomcat/apache-tomcat-9.0.11/conf/server.xml
<?xml version="1.0" encoding="UTF-8"?>
#==服务器配置==#
<Server port="8005" shutdown="SHUTDOWN">
#设置用于管理者通过"telnet"远程关闭Tomcat主服务器进程的操作端口和命令,建议修改。
# port 设置连接端口。
# shutdown 设置关闭Tomcat主服务进程的操作命令。
...
<Service name="Catalina">
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
#设置一个用于处理HTTP请求的连接器。
# port 设置接受HTTP请求的端口。
# protocol 设置要使用的HTTP协议。
# connectionTimeout 设置连接超时时间,单位为毫秒。
# redorectPort 设置重定向端口,当接受到了一个HTTPS的请求,将其重定向到该端口上。
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
#设置一个用于处理AJP请求的连接器。当Tomcat与其他WEB服务器集成到一起使用时,则使用这个连接器传输
#效率较高,AJP是一个定向包协议,用于使用二进制格式的方式来传输可读性的文件数据。一般用于
#APACHE+Tomcat负载均衡时使用的协议。
# port 设置端口。
# protocal 设置AJP协议。
# redirectPort 设置重定向端口,当接受到了一个HTTPS的请求,将其重定向到该端口上。
<Engine name="Catalina" defaultHost="localhost">
#设置核心引擎配置。
# name 设置引擎名字。
# defaultHost 设置默认的WEB站点,在引擎中必须存在一个该项配置的WEB虚拟主机(WEB站点)。
<Realm className="org.apache.catalina.realm.LockOutRealm">
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase"/>
</Realm>
################
#==WEB站点配置==#
################
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
#设置WEB站点,一个WEB虚拟主机。
# name 设置虚拟主机名,可以设置为是一个域名。
# appBase 设置WEB站点工作根目录。
# unpackWARs 设置是否自动解压WAR包,"true" or "false"。
# autoDeploy 设置是否自动部署WEB应用,"true" or "false"。
<Context docBase="test" path="/" reloadable="true">
#设置WEB站点下的WEB应用。
# docBase 设置根目录下WEB应用目录路径,WAR包的名字,或者是一个已解压的WEB应用目录。
# path 设置访问应用要使用的URI路径,根或者为空表示访问域名即访问到该WEB应用。
# reloadable 设置当应用包发生变化时是否自动重载应用,"true" or "false"。
<WatchedResource>WEB-INF/web.xml</WatchedResource>
#设置要监视的资源文件路径,当文件发生变化则会从新加载WEB应用。"web.xml"是一个WEB应
#用的主配置文件,每个JAVA-WEB应用都会有。
</Context> <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t &quot;%r&quot; %s %b" />
</Host>
</Engine>
</Service>
</Server>

8、创建一个JSP测试页

[root@localhost ~]# mkdir  /usr/local/tomcat/apache-tomcat-9.0.11/webapps/test
[root@localhost ~]# vim /usr/local/tomcat/apache-tomcat-9.0.11/webapps/test/index.jsp
<html>
<head>
<title> hello world!</title>
</head>
<body>
<% out.println("hello world!"); %>
</body>
</html>

9、启动Tomcat

这边我们可以启动Tomcat先用命令"catalina.sh run"测试运行一下,是否可正常运行,若Tomcat运行不正常则会打印错误信息。

[root@localhost ~]# /usr/local/tomcat/apache-tomcat-9.0.11/bin/catalina.sh run
05-Sep-2018 21:29:53.410 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 7882 ms
[root@localhost ~]# systemctl start tomcat
[root@localhost bin]# netstat -lnupt |grep java
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 72010/java
tcp6 0 0 :::8009 :::* LISTEN 72010/java
tcp6 0 0 :::8080 :::* LISTEN 72010/java

12、访问测试

浏览器输入访问:http://server_name:port。

13、其他说明

默认情况下,Tomcat安装完成后在"webapps"目录下会自带四个WEB应用:docs(帮助文档)、examples(模板应用)、host-manger(主机管理)、manger(管理)。

我们可以通过访问"docs"查看如何使用Tomcat,以及对它的一些配置相关。

我们可以通过访问"mamger"查看Tomcat服务器运行状态,以及通过图形化的方式灵活的部署WEB应用。

安装Tomcat到Linux(源码)的更多相关文章

  1. Linux源码安装JDK1.8

    Linux源码安装Java 1.到官网下载 jdk-8u131-linux-x64.tar.gz 官网地址:http://www.oracle.com/technetwork/java/javase/ ...

  2. Debian 安装Linux源码

    参考: http://blog.chinaunix.net/uid-20683355-id-1895778.html http://www.linuxdiyf.com/viewarticle.php? ...

  3. mysql-5.5 for linux源码安装

    mysql-5.5 for linux源码安装 1.使用Yum安装依赖软件包 # yum install -y gcc gcc-c++ gcc-g77 autoconf automake bison  ...

  4. 转载 :Linux有问必答:如何在Debian或Ubuntu上安装完整的内核源码

    http://linux.cn/article-5015-1.html 问题:我需要为我的Debian或Ubuntu下载并安装完整树结构的内核源码以供编译一个定制的内核.那么在Debian或Ubunt ...

  5. linux源码安装mysql,shell编程学习,ubuntu

    一.mysql安装 以源码安装的方式编译和安装Mysql 5.6. 1.卸载旧版本 rpm -qa | grep mysql 检查是否有旧版本 查询结果:mysql-libs-5.1.73-7.el6 ...

  6. 『学了就忘』Linux软件包管理 — 47、Linux源码包的安装和卸载

    目录 1.源码包安装服务的注意事项 2.源码包安装服务的过程 3.源码包安装服务的删除 4.源码包安装服务的启动 5.源码包安装服务的关闭 1.源码包安装服务的注意事项 (1)安装服务选择哪种软件包? ...

  7. Linux源码安装RabbitMQ高可用集群

    1.环境说明 linux版本:CentOS Linux release 7.9.2009 erlang版本:erlang-24.0 rabbitmq版本:rabbitmq_server-3.9.13 ...

  8. Linux源码包安装程序

    ★安装OS时,建议提前安装开发组件 CentOS 6:Development Tools.Server Platform DevelopmentCentOS 7:Development Tools.D ...

  9. Linux源码包安装和脚本安装

    能够先 vi INSTALL 看看安装过程. 1.源码包安装 2.脚本安装

  10. Linux 源码包安装过程

    安装准备 安装gcc编译器 下载源码包 源代码保存位置:/usr/local/src/ 软件安装位置:/usr/local/ 解压缩下载的源码包 进入解压缩目录 软件配置与检查:./configure ...

随机推荐

  1. Spring Security OAuth 笔记

    1  单点登录 关于单点登录的原理,我觉得下面这位老哥讲的比较清楚,有兴趣可以看一下,下面我把其中的重点在此做个笔记总结 https://juejin.cn/post/6844904079274197 ...

  2. 无单位数字和行高 —— 别说你懂CSS相对单位

    前段时间试译了Keith J.Grant的CSS好书<CSS in Depth>,其中的第二章<Working with relative units>,书中对relative ...

  3. 深入解析丨母婴App如何迅速收割2W新用户?

    在讲案例前,我们需要先说一下精细化分析. 我们常说的精细化分析,就是一个持续"解构"的过程,通过像漏斗.留存.细分等高级分析功能,将"整体"按照事件属性解构成& ...

  4. MySQL中 tinyint、bigint、bit、text、decimal、year、date、time、datetime、timestamp等对应Java中什么类型

    MySQL中字段名称对应的Java类型 MySQL字段名 Java数据类型 varchar String text String bigint Long(已经有长度了,在mysql建表中的length ...

  5. 使用js实现复选框的全选、取消功能

    id为all的想设置全选的那个框的id,name为checkname[]的是每个小复选框: 第一种: <script> function checkAll() { var all=docu ...

  6. python---希尔排序的实现

    def shell_sort(alist): """希尔排序""" n = len(alist) gap = n // 2 # 插入算法执行 ...

  7. Spring配置文件-Bean生命周期配置(init-method方法,destory-method方法)

    1.UserDaoImpl类 public class UserDaoImpl implements UserDao { public UserDaoImpl(){ System.out.printl ...

  8. 3道常见的vue面试题,你都会了吗?

    最近流传各大厂纷纷裁员,导致很多人"被迫"毕业,显然很多人还是想留级,无奈出现在名单中,只能感叹命运不公,不过拿了N+1,也算是很欣慰. 又得去面试了,接下来一起来巩固下vue的3 ...

  9. 五分钟搭建博客系统 OK?

    前言: 请各大网友尊重本人原创知识分享,谨记本人博客:南国以南i 概要: 通过 Docker Compose 在使用Docker容器构建的隔离环境中轻松运行 WordPress.在开始之前,请确保已安 ...

  10. The 18th Zhejiang Provincial Collegiate Programming Contest

    The 18th Zhejiang Provincial Collegiate Programming Contest GYM链接 https://codeforces.com/gym/103055 ...