一.Tomcat介绍
- Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求。实际上Tomcat是Apache 服务器的扩展,但运行时它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的。
- 诀窍是,当配置正确时,Apache 为HTML页面服务,而Tomcat 实际上运行JSP 页面和Servlet。另外,Tomcat和IIS等Web服务器一样,具有处理HTML页面的功能,另外它还是一个Servlet和JSP容器,独立的Servlet容器是Tomcat的默认模式。不过,omcat处理静态HTML的能力不如Apache服务器。
二.Tomcat安装
安装前准备:
在安装Tomcat之前必须先安装JDK,JDK全称是 Java Development Kit,是SUN公司免费提供的java语言的软件开发工具包,其中包含Java虚拟机(JVM),编写好的java源程序经过编译可生产java字节码,只要安装了JDK,就可以利用JVM解释这些
字节码文件,从而保证了Java的跨平台性。
在平台兼容性方面,JDK作为解释字节码文件并根据此调用操作系统的API实现对应功能的java虚拟机,与操作系统位数密切相关,因此存在不同类型的版本,Tomcat也具有上述特征,所以需要预先下载好JDK和Tomcat
JDK下载地址(里面有windows版本和linux版本,推荐稳定版的jdk8):
- http://www.oracle.com/technetwork/java/javase/downloads/
tomcat下载地址:
(1)首先卸载系统自带的openjdk,先检测jdk安装包 :rpm -qa | grep java
rm -rf $(which java)
关于JDK和OpenJDK的区别,可以归纳为以下几点:
授权协议的不同:
openjdk采用GPL V2协议放出,而JDK则采用JRL放出。两者协议虽然都是开放源代码的,但是在使用上的不同在于GPL V2允许在商业上使用,而JRL只允许个人研究使用。
OpenJDK不包含Deployment(部署)功能:
部署的功能包括:Browser Plugin、Java Web Start、以及Java控制面板,这些功能在Openjdk中是找不到的。
OpenJDK源代码不完整:
这个很容易想到,在采用GPL协议的Openjdk中,sun jdk的一部分源代码因为产权的问题无法开放openjdk使用,其中最主要的部份就是JMX中的可选元件SNMP部份的代码。因此这些不能开放的源代码将它作成plug,以供OpenJDK编译时使用,你也可以选择不要使用plug。而Icedtea则为这些不完整的部分开发了相同功能的源代码(OpenJDK6),促使OpenJDK更加完整。
部分源代码用开源代码替换:
由于产权的问题,很多产权不是SUN的源代码被替换成一些功能相同的开源代码,比如说字体栅格化引擎,使用Free Type代替。
openjdk只包含最精简的JDK:
OpenJDK不包含其他的软件包,比如Rhino Java DB JAXP……,并且可以分离的软件包也都是尽量的分离,但是这大多数都是自由软件,你可以自己下载加入。
不能使用Java商标:
这个很容易理解,在安装openjdk的机器上,输入“java -version”显示的是openjdk,但是如果是使用Icedtea补丁的openjdk,显示的是java。(未验证)
总之,在Java体系中,还是有很多不自由的成分,源代码的开发不够彻底,希望Oracle能够让JCP更自由开放一些,这也是所有Java社区所希望的。
(2)安装JDK:
问题1:
tar -xzvf jdk-11.0.1_linux-x64_bin.tar.gz #解压报错
查看文件类型:file jdk-11.0.1_linux-x64_bin.tar.gz
原来这是一个HTML文档,看来是链接有问题
语法:file [-beLvz][-f <名称文件>][-m <魔法数字文件>...][文件或目录...]
补充说明:通过file指令,我们得以辨识该文件的类型。
参数:
-b 列出辨识结果时,不显示文件名称。
-c 详细显示指令执行过程,便于排错或分析程序执行的情形。
-f<名称文件> 指定名称文件,其内容有一个或多个文件名称呢感,让file依序辨识这些文件,格式为每列一个文件名称。
-L 直接显示符号连接所指向的文件的类别。
-m<魔法数字文件> 指定魔法数字文件。
-v 显示版本信息。
-z 尝试去解读压缩文件的内容。
解决办法:我们在本地(PC)先去官网下载好jdk-8u144-linux-x64.tar.gz,然后上传到服务器上,再执行解压命令就没有问题了。
问题2:
输入rz命令出现乱码,没有出现本地窗口,而是打印出waiting to receive.和一串不明其意的字符
这是因为rz命令需要终端的支持(即rz命令是在客户端里面执行的),比如终端就是你用来连接远程服务器的客户端,像是 XShell、rxvt、putty、SecureCRT
本人使用的客户端是Xshell
在Xshell里面输入rz命令就可以出现本地窗口,供我们上传文件
上传成功后,解压:tar -xzvf jdk-11.0.1_linux-x64_bin.tar.gz
解压成功
(3)安装tomcat
wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.13/bin/apache-tomcat-9.0.13.tar.gz
tar -xzvf apache-tomcat-9.0.13.tar.gz
(4)设置JAVA环境变量
首先拷贝一份系统环境变量文件:cp /etc/profile /etc/profile.bak
vim /etc/profile 在开头添加以下内容:
export JAVA_HOME=/root/jdk1.8.0_191
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
自己敲,别单纯复制,有时会出错
这只是进行配置了环境变量,在linux中并没有生效,然后使用source /etc/profile使环境变量生效,现在测试几个基本的命令java javac 和java -version如果都可以就代表jdk已经配置成功
java -version 报错
解决办法:yum install -y glibc.i686 安装之后用java javac 和java -version就没问题了
(5)启动tomcat
cd apache-tomcat-9.0.13/bin/
/.startup.sh ##启动tomcat
/.shutdown.sh ##关闭tomcat
/.catalina.sh run ##显示tomcat的控制台
(6)浏览器访问测试
首先关闭selinux和防火墙:
vim /etc/sysconfig/selinux
SELINUX=enforcing ##改为强制模式
systemctl stop firewalld
systemctl disable firewalld ##永久关闭firewalld
http://ip:8080 ##tomcat默认端口是8080