操作系统:Ubuntu 18.04 64位(CentOS 和 Ubuntu 的指令、默认配置存在不同,所以一定要看好自己的操作系统版本)
二、Tomcat详细部署安装流程主要步骤流程还是要参考阿里云官方提供的文档:
手动部署Java Web环境(Alibaba Cloud Linux 2)
但是官方文档都是以CentOS为例,在一些具体环节上Ubuntu有所不同,故本专栏着重说明与官方教程不同及官方流程未详细说明的地方
步骤一:准备工作 1. 在安全组入方向添加规则放行所需端口
在阿里云平台或者通过Xshell等SSH连接软件连接到我们的服务器
不建议直接在阿里云平台连接,使用体验较差,需要注意的一点,这里连接服务器使用的账号密码和你登录阿里云管理平台的不是一样的
3.关闭防火墙这里Ubuntu系统使用systemctl status firewalld 指令查看防火墙状态会提示Unit firewalld.service could not be found.
- 区分Linux、Ubuntu、Centos的防火墙:
- Linux原始自带的防火墙工具iptables
- Ubuntu的防火墙工具ufw
- Centos的防火墙工具firewalld
Linux原始的防火墙工具iptables由于过于繁琐,所以ubuntu系统默认提供了一个基于iptable之上的防火墙工具ufw(uncomplicated firewall,译为简单的防火墙 ) 。而UFW支持图形界面操作,只需在命令行运行ufw命令即能看到一系列的操作。
所以这里我们要使用ufw的一系列命令进行操作,把防火墙关闭即可
查看当前防火墙状态:sudo ufw status (inactive状态是防火墙关闭状态 active是开启状态)
开启防火墙:sudo ufw enable
关闭防火墙:sudo wfw disable
4. 关闭SELinux首先要搞明白SELinux是什么?
安全增强型 Linux(Security-Enhanced Linux)简称 SELinux,它是一个 Linux 内核模块,也是 Linux 的一个安全子系统。SELinux 主要由美国国家安全局开发。2.6 及以上版本的 Linux 内核都已经集成了 SELinux 模块。可以把SELinux理解为Linux系统的一个安全补丁。它秉持“最小权限原则”,也就是最大限度地减小系统中服务进程可访问的资源
既然是安全补丁,阿里云官方文档的搭建步骤里为什么要关闭它呢?
SELinux 的结构及配置非常复杂,而且有大量概念性的东西,要学精难度较大。很多 Linux 系统管理员嫌麻烦都把 SELinux 关闭了。个人猜测官方也是为了让教程具有普遍性,减少后续部署使用过程中因为SELinux安全控制导致的额外操作吧
此处Ubuntu系统也有与文档中不同的地方,getenforce提示指令不存在,按照提示安装selinux-utils
root@iZ2zea48kwmva7pzawoba7Z:~# getenforce Command 'getenforce' not found, but can be installed with: apt install selinux-utils
随后查询,SELinux为关闭状态(Disabled)
步骤二:安装JDK1.8 1. 通过yum命令查找JDK1.8软件包。这里需要注意一点,Ubuntu默认是不能使用yum指令的,如果需要使用需要手动安装,建议使用apt-get,具体下载安装过程可以参考阿里云论坛里的另一个教程,也可以在Oracle官网下载合适的版本,在通过远程文件管理工具(比如winSCP)移动到服务器上,进行解压、安装
Ubuntu安装JDK
- yum 和 apt-get区别
3~4 步骤与官方教程保持一致即可 步骤三:安装Apache Tomcat 1. 运行以下命令下载Tomcat 8安装包。一般来说著名的linux系统基本上分两大类:1.RedHat系列:Redhat、Centos、Fedora等 2.Debian系列:Debian、Ubuntu等
rpm/yum适用于Redhat、CentOS、Suse等平台;
apt-get/dpkg适用于Debian、Ubuntu等平台;
这里第1步里如果直接使用wget命令下载Tomcat安装包因为涉及到外网,所以速度很慢,可以考虑自己下载后再移动到服务器上
2~4 后续的解压、移动等步骤和教程保持一致即可 5. 配置server.xml文件在/usr/local/tomcat/目录下:
- bin:存放Tomcat的一些脚本文件,包含启动和关闭Tomcat服务脚本。
- conf:存放Tomcat服务器的各种全局配置文件,其中最重要的是server.xml和web.xml。
- webapps:Tomcat的主要Web发布目录,默认情况下把Web应用文件放于此目录。
- logs:存放Tomcat执行时的日志文件。
有一点需要注意的是server.xml的配置,在tomcat/conf/ 目录下的server.xml中配置了网页相关资源的存放位置
官方教程提供的配置文件内容如上,可见后续的项目、网页资源等均需要放在这个配置的**"/data/wwwroot/default"**目录下,这个可以根据个人需要进行更改
8. 依次运行以下命令设置Tomcat开机自启动提示chkconfig: command not found
查询后是Ubuntu不存在这个命令,参照https://blog.csdn.net/philosophyatmath/article/details/88863136 的方法,使用以下指令替代 systemctl enable tomcat
- 执行结果
root@iZ2zea48kwmva7pzawoba7Z:~# systemctl enable tomcat tomcat.service is not a native service, redirecting to systemd-sysv-install. Executing: /lib/systemd/systemd-sysv-install enable tomcat
- 使用linux 启动服务时,发现有service,systemctl,chkconfig,有什么区别?
chkconfig:Linux系统启动的时候,第一个创建的进程(即pid是1的进程)叫init. 它会负责启动后续其他的进程,包括各类系统服务。从进程树上可以看出,init是所有其他进程的祖先。早年的Linux里的init进程是System V init.
chkconfig命令 是用来查询或更新run level相关的信息的。比如一些旧版的书上会说init 3启动单用户命令行界面。
service:Ubuntu的开发者发明了upstart, 用来取代System V init. 在使用了upstart的系统中,service start/stop是常用的启动和停止系统服务的命令。
systemctl:近年来越来越多的发行版开始采用systemd作为初始进程。它用systemctl来管理服务。
简单来说,如果init用的是systemd,那么只需要使用systemctl就行了,service和chkconfig都是比较老的服务管理工具了。
步骤四:部署测试项目并验证这里按照官方教程直接在网站根目录下新建了一个简单的测试页面,并进行了访问
**至此说明Tomcat的部署和运行是正常的,从公网访问的功能也是正常的 **
不过用阿里云的部署插件Alibaba Cloud Toolkit 部署测试了两个demo项目,访问主页的时候都提示404,可能是部署的项目工程有问题吧,这个就是下篇专栏要解决的问题了,即02 阿里云部署插件:使用IntelliJ IDEA部署应用到ECS



