阿里云服务器ECS上部署简单的SSM项目
一、引言(为什么选择Linux部署)
1.1 开发环境(dev)
外部用户无法访问,开发人员使用,版本变动很大
平时大家大多是在Windows或者Mac操作系统下去编写代码进行开发,在开发环境中安装大量的软件,这样会导致环境的稳定性和安全性降低.
1.2 测试环境(test)
外部用户无法访问,专门给测试人员使用的,版本相对稳定
一般克隆一份生产环境,会将开发环境中的程序部署到测试环境中,这个环境的主要目的是去程序进程检测,收集程序中的各种问题,并交给开发人员进行修改.
1.3 生产环境(prod)
面向外部用户的环境,连接上互联网即可访问的正式环境
是将程序运行在此环境中,供用户去使用。这个环境是有专业的人员去维护,一般人是没有权限去操做生产环境的.
三个环境也可以说是系统开发的三个阶段:开发 --> 测试 --> 上线,其中生产环境也就是通常说的真实环境。
1.4 操作系统的选择
生产环境中,常用的操作系统有Windows 2003 service,Linux,Unix等等,Linux操作系统,在生产环境中占据了大量的市场份额,Linux主要以稳定,可靠,免费的特点成为全球使用最多的服务器操作系统。
Linux操作系统现在已经成为后台开发人员必备的技能,并且后期学习的各种知识都会涉及到Linux操作系统。
二、Linux介绍
2.1 Linux介绍
在Linux操作系统出现之前,还有一个操作系统叫做Minix,Minix操作系统是由Andrew的大学教授研发出来的,当时大学教授是为了给学生上课,买了一套Unix操作系统,参考Unix自己写了一个操作系统,并且命名为Minix。同时将Minix开源,供学校内部的研究和教学,到了2000年,Andrew将Minix操作系统完全对外开源。
Minix由于完全对外开源之后,在互联网上迅速的传播,但是大家在使用时,发展Minix不时很完美,内部存在各种各样问题。用户将问题解决后,编写了一个补丁,将补丁以邮件的方式发给Andrew,但是Andrew教授最初的目的只是为了教学和研究。
于此同时,一位芬兰的大学生出现了,叫Linus,在Minix操作系统基础上,自己添加了一些补丁和插件,并将其命名为Linux操作系统,并且完全对外开源,而且开始维护Linux操作系统。
之前学习的Git也时Linus研发的。
Linus Torvalds 和 Linux |
---|
2.2 Linux的版本
Linux的版本分为两种,一种是Linus团队正在维护的开源内核版本。另一种是一些厂商基于内核版本封装的发行版本。
Linux的内核版本官网:The Linux Kernel Archives
Linux的发行版本,咱们需要学习的发行版本就时CentOS
Linux的常见发行版本 |
---|
2.3 Linux和Windows区别
Linux是严格区分大小写的,Windows无所谓。
Linux中一切皆是文件。
Linux中文件是没有后缀的,但是他有一些约定俗成的后缀。
Windows下的软件一般是无法直接运行的Linux中。
Ps:我们在学习Linux时,参考Windows下做了什么,就在Linux中做什么
三、Linux安装
安装Linux,我们需要一个虚拟机,为了安装虚拟环境:VMware或者Virtual Box(采用VMware)
因为Linux也是一个系统,本质上跟我们电脑的Window没有区别,我们可以在我们电脑上安装一个软件,这个软件可以模拟一台或多台虚拟的电脑机器,这就是虚拟机。
虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。虚拟系统通过生成现有操作系统的全新虚拟镜像,它具有真实windows系统完全一样的功能,进入虚拟系统后,所有操作都是在这个全新的独立的虚拟系统里面进行,可以独立安装运行软件,保存数据,拥有自己的独立桌面,不会对真正的系统产生任何影响 ,而且具有能够在现有系统与虚拟镜像之间灵活切换的一类操作系统。虚拟系统和传统的虚拟机(Parallels Desktop ,Vmware,VirtualBox,Virtual pc)不同在于:虚拟系统不会降低电脑的性能,启动虚拟系统不需要像启动windows系统那样耗费时间,运行程序更加方便快捷;虚拟系统只能模拟和现有操作系统相同的环境,而虚拟机则可以模拟出其他种类的操作系统;而且虚拟机需要模拟底层的硬件指令,所以在应用程序运行速度上比虚拟系统慢得多。流行的虚拟机软件有VMware(VMWare ACE)、Virtual Box和Virtual PC,它们都能在Windows系统上虚拟出多个计算机
在这里我们就不再使用VMware了,而是去申请一下阿里云服务器ECS,供我们体验
如果为在校高校学生的话,是可以免费领取2周+2月的服务器使用时间的,关于服务器的配置,够咱们使用,这是对于高校学生开展的活动,需要做一些任务。
https://developer.aliyun.com/plan/studenthttps://developer.aliyun.com/plan/studenthttps://developer.aliyun.com/plan/student
关于云服务器怎么使用,其教学文档也写的十分详细,这里就不多说了
领到服务器之后,我们可以打开控制管理台,打开实例,修改一下密码
接着打开安全组,需要我们配置一下,加上MySQL,tomcat,http,https的端口号
接着启动就好啦,是不是很方便
接着需要下载Xshell 和 fileZilla这两个软件
xshell下载好后点左上角新建
确定,然后输入密码,连接
FileZilla点开后在上面输入您的公网ip和 用户名为root 密码为你自己设置的密码 端口号为22 连接
然后在页面上可以看到很多你的服务器上的文件
四、Linux的目录结构
/ 根目录
/bin:是Binary的缩写, 这个目录存放着最经常使用的命令。
/boot:存放的是启动Linux时使用的一些核心文件,包括一些连接文件以及镜像文件。
/dev :是Device(设备)的缩写, 该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。
/etc:用来存放所有的系统管理所需要的配置文件和子目录。
/home:用户的主目录,在Linux中,每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。
/lib:放着系统最基本的动态连接共享库,其作用类似于Windows里的DLL文件。几乎所有的应用程序都需要用到这些共享库。
/lost+found:这个目录一般情况下是空的,当系统非法关机后,这里就存放了一些文件。
/media:linux系统会自动识别一些设备,例如U盘、光驱等等,当识别后,linux会把识别的设备挂载到这个目录下。
/mnt:系统提供该目录是为了让用户临时挂载别的文件系统的,我们可以将光驱挂载在/mnt/上,然后进入该目录就可以查看光驱里的内容了。
/opt:主机额外安装软件所摆放的目录。比如你安装一个ORACLE数据库则就可以放到这个目录下。默认是空的。
/proc:是一个虚拟的目录,它是系统内存的映射,我们可以通过直接访问这个目录来获取系统信息。
/root:为系统管理员,也称作超级权限者的用户主目录。
/sbin:s就是Super User的意思,这里存放的是系统管理员使用的系统管理程序。
/selinux:是Redhat/CentOS所特有的目录,Selinux是一个安全机制,类似于windows的防火墙,但是这套机制比较复杂,这个目录就是存放selinux相关的文件的。
/srv:存放一些服务启动之后需要提取的数据。
/sys:linux2.6内核的一个很大的变化。该目录下安装了2.6内核中新出现的一个文件系统 sysfs,sysfs文件系统集成了下面3种文件系统的信息:针对进程信息的proc文件系统、针对设备的devfs文件系统以及针对伪终端的devpts文件系统。该文件系统是内核设备树的一个直观反映。当一个内核对象被创建的时候,对应的文件和目录也在内核对象子系统中被创建。
/tmp:是用来存放一些临时文件的。
/usr:用户的很多应用程序和文件都放在这个目录下,类似于windows下的program files目录。
/usr/bin:系统用户使用的应用程序。
/usr/sbin:超级用户使用的比较高级的管理程序和系统守护程序。
/usr/src:内核源代码默认的放置目录。
/var:这个目录中存放着在不断扩充着的东西,我们习惯将那些经常被修改的目录放在这个目录下。包括各种日志文件
五、Linux的简单命令
详细点的可以参考
https://blog.csdn.net/layonly/article/details/121102854?spm=1001.2014.3001.5501https://blog.csdn.net/layonly/article/details/121102854?spm=1001.2014.3001.5501https://blog.csdn.net/layonly/article/details/121102854?spm=1001.2014.3001.5501
systemctl start 服务名(xxx.service) 启动该服务
systemctl restart 服务名(xxx.service) 重启该服务
systemctl stop 服务名(xxx.service) 停止该服务
systemctl status 服务名(xxx.service) 查看该服务
六、Linux中软件安装【重点
】
6.1 JDK安装
在xshell中操作
[root@localhost 桌面]# rpm -qa | grep java 查看系统中默认安装的jdk
java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64javapackages-tools-3.4.1-11.el7.noarchjava-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64tzdata-java-2016g-2.el7.noarchpython-javapackages-3.4.1-11.el7.noarchjava-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64
我们需要将opjdk都删除(1.7和1.8各有两个),后缀为.noarch的文件可以不用删除
[root@localhost 桌面]# rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64[root@localhost 桌面]# rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.102-4.b14.el7.x86_64[root@localhost 桌面]# rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.111-2.6.7.8.el7.x86_64[root@localhost 桌面]# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.111-2.6.7.8.el7.x86_64[root@localhost 桌面]# java -versionbash: java: 未找到命令...
把下载好的jdk安装包拷贝到当前虚拟机root目录下(在filezilla中的root文件夹)
解压,一般我们解压到/usr/local目录下
[root@localhost ~]# tar -zxvf jdk-8u151-linux-x64.tar.gz -C /usr/local
配置环境变量
[root@localhost ~]# vim /etc/profile
在该文件中添加如下信息:(建议添加到最后一行)
JAVA_HOME=/usr/local/jdk1.8.0_151 CLASSPATH=.:$JAVA_HOME/lib.tools.jar PATH=$JAVA_HOME/bin:$PATH export JAVA_HOME CLASSPATH PATH
立即生效
[root@localhost ~]# source /etc/profile
(如果不行可重启虚拟机再次尝试)
再次测试
[root@localhost ~]# java -versionjava version "1.8.0_151"Java(TM) SE Runtime Environment (build 1.8.0_151-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.151-b12, mixed mode)
6.2 Tomcat安装
把下载好的tomcat安装包拷贝到当前虚拟机root目录下(同上),一般我们解压到/usr/local目录下
[root@localhost ~]# tar -zxvf apache-tomcat-8.5.23.tar.gz -C /usr/local
在启动tomcat之前记得关闭防火墙
[root@localhost ~]# systemctl stop firewalld.service
切换到tomcat的bin目录
[root@localhost ~]# cd /usr/local[root@localhost local]# cd apache-tomcat-8.5.23/bin
启动tomcat
[root@localhost bin]# ./startup.sh
关闭tomcat
[root@localhost bin]# ./shutdown.sh
6.3 Mysql安装
CentOS中默认安装的是MariaDB,安装完MySQL之后会覆盖MariaDB,由于安装MySQL需要添加很多依赖关系,所以这里使用yum安装.
下载MySQL源安装包
[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
.......
安装成功的话会显示如下
2019-10-17 14:37:41 (230 KB/s) - 已保存 “mysql57-community-release-el7-10.noarch.rpm”[25548/25548])-c: 没有那个文件或目录在 -c 中找不到 URL。FINISHED --2019-10-17 14:37:41--Total wall clock time: 7.4sDownloaded: 1 files, 25K in 0.1s (230 KB/s)
安装MySQL源(如果无法安装,先执行该命令:rm -f /var/run/yum.pid)
[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm
...........
执行成功会出现如下
Running transaction正在安装 : mysql57-community-release-el7-10.noarch 1/1验证中 : mysql57-community-release-el7-10.noarch 1/1已安装:mysql57-community-release.noarch 0:el7-10完毕!
安装MySQL
[root@localhost ~]# yum -y install mysql-community-server
..............
成功的话会出现如下
作为依赖被安装:mysql-community-client.x86_64 0:5.7.28-1.el7 mysql-community-common.x86_64 0:5.7.28-1.el7作为依赖被升级:openssl.x86_64 1:1.0.2k-19.el7 openssl-libs.x86_64 1:1.0.2k-19.el7postfix.x86_64 2:2.10.1-7.el7替代:mariadb-libs.x86_64 1:5.5.52-1.el7完毕!
启动MySQL
[root@localhost ~]# systemctl start mysqld.service
查看MySQL运行状态
[root@localhost ~]# systemctl status mysqld.service
成功的话如下
mysqld.service - MySQL ServerLoaded: loaded (/usr/lib/systemd/system/mysqld.service; enabled; vendor preset: disabled)Active: active (running) since 四 2019-10-17 15:00:59 CST; 26s ago
设置MySQL自启动
[root@localhost ~]# systemctl enable mysqld
配置MySQL
[root@localhost ~]# vim /etc/my.cnf
在/etc/my.cnf的[mysqld]中增加如下内容:(建议添加到最后一行)
#不添加则在设置MySQL新密码时会错 #用于设置MySQL的字符集 #用于设置MySQL的远程连接 validate_password=off character_set_server=utf8 skip-name-resolve
重新启动MySQL
[root@localhost ~]# systemctl restart mysqld.service
此时MySQL已经开始正常运行,不过要想进入MySQL还得先找出此时root用户的密码,通过如下命令可以在日志文件中找出密码:
[root@localhost ~]# grep "password" /var/log/mysqld.log
会出现如下日志,加粗背景为黄色的为密码,保存起来
2019-10-17T07:00:52.740835Z 1 [Note] A temporary password is generated for root@localhost: l0hN)kEXugYv
2019-10-17T07:14:54.867706Z 3 [Note] Access denied for user 'root'@'localhost' (using password: YES)
登录MySQL
[root@localhost ~]# mysql -uroot -p
输入:l0hN)kEXugYv (你的密码)进入到MySQL
输入初始密码,此时不能做任何事情,因为MySQL默认必须修改密码之后才能操作数据库:
(下面语句中的‘新密码’为你想设置的密码!!!)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
设置MySQL可以远程访问(密码为你刚才设置的密码)
mysql>grant all privileges on . to 'root'@'%' identified by '密码' with grant option;
此时可以使用我们的数据库客户端工具进行远程连接,如果连接不上,重启MySQL后再测试
测试成功后,退出MySQL
mysql> exit;Bye
卸载Yum Repository,否则每次yum操作都会自动更新
[root@localhost ~]# yum -y remove mysql57-community-release-el7-10.noarch
已加载插件:fastestmirror, langpacks正在解决依赖关系--> 正在检查事务---> 软件包 mysql57-community-release.noarch.0.el7-10 将被 删除--> 解决依赖关系完成依赖关系解决=========================================================================================Package 架构 版本 源 大小=========================================================================================正在删除:mysql57-community-release noarch el7-10 installed 30 k事务概要=========================================================================================移除 1 软件包安装大小:30 kDownloading packages:Running transaction checkRunning transaction testTransaction test succeededRunning transaction正在删除 : mysql57-community-release-el7-10.noarch 1/1验证中 : mysql57-community-release-el7-10.noarch 1/1删除:mysql57-community-release.noarch 0:el7-10完毕!
测试远程连接,连接未成功,需要再次关闭防火墙,重启MySQL
关闭防火墙:
systemctl stop firewalld.service
七、部署SSM工程
部署项目到Linux中需要注意一下内容:
项目要保证在Windows下是没有问题的,再部署到Linux。
连接线上的数据库,代码需要修改成线上数据库的地址
注意你项目中的数据库地址改为线上的
将Maven项目打包
打成war包之后,用fileZilla将war包拷贝到你服务器中tomcat服务器的webapp上,服务器启动会自动解压war包,接下来就可以找小伙伴测试了
在部署到Linux操作系统中后,测试时查看日志。
[root@localhost ~]# cd /usr/local [root@localhost local]# cd apache-tomcat-8.5.23/ [root@localhost apache-tomcat-8.5.23]# cd logs [root@localhost logs]# tail -f catalina.out
阿里云服务器ECS上部署简单的SSM项目相关推荐
- oss客户端工具_阿里云服务器ECS上使用ossfs工具挂载阿里云OSS存储
介绍:阿里云对象存储服务(Object Storage Service,简称OSS)可以提供基于网络的数据存取服务.使用OSS,可以通过网络随时存储和调用包括文本.图片.音频和视频等在内的各种非结构化 ...
- 阿里云服务器ECS windows server已开放端口但连不上的问题
阿里云服务器ECS上已经开放了相应端口的安全组,云服务器的防火墙也已经关闭了. 阿里云服务器自带的安全组3389端口能脸上,但自定义开的端口22和8080连不上: 阿里云服务器的防火墙通过远程桌面连接 ...
- 部署SSM项目到阿里云服务器ECS
文章目录 一. 问题背景 二. 准备资源 三. 安装JDK 3.1 下载 3.2 安装 3.3 配置环境变量 四. 安装MySQL 4.1 下载 4.2 解压缩 4.3 修改操作系统配置 4.4 卸载 ...
- 阿里云服务器ECS 搭建网站
目录 文章简介 构建网站流程 域名注册 云服务的选择 网站搭建 1)安装 apache 2)配置apache 域名解析设置 HTTPS 证书配置 免费证书购买申请 证书下载和安装 总结 文章简介 本栏 ...
- 阿里云服务器ECS centos7.4搭建nginx环境部署静态代码
阿里云服务器ECS centos7.4搭建nginx环境部署静态代码 欢迎来到新手如何通过阿里云服务器部署静态网站 作为一个前端开发,第一次部署自己的私人网站,没有经验,战战兢兢,但是没有办法,成为全 ...
- 阿里云服务器ECS基本组件、使用场景及选购、升降配和部署建议
什么是阿里云服务器ECS 云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Service) ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- 购买阿里云服务器ECS快速上云
购买阿里云服务器ECS快速上云 阿里云 阿里云优惠券 新用户专享阿里云上云必备 选购 个人上云中选择一个,点击立即购买 加入购物车,由于我不是新用户,价格有所区别 进入购物车选择立即购买 确认购买 支 ...
- 阿里云服务器ECS搭建后台(Windows Server 2012R2)
引言与名词 云服务器 阿里云ECS Windows Server 厂商选择 一.领取阿里云服务器ECS 二.连接阿里云服务器ECS 三.搭建项目运行环境 四.发布项目到云服务器 五.隐藏8080端口号 ...
最新文章
- AngularJS 指令实践
- python查看函数调用栈
- c语言形参的隐含存储类型,C存储类型
- 如何友好的把Python和Bash结合在一起
- 编码 Unicode utf-8
- 交叉验证python_交叉验证
- 安装mysql5.6.10_windows下安装mysql(mysql-installer-community-5.6.10.1)详细教程
- 从统计代码来谈JS加载的优化
- 【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 1268期】
- 小米球穿透工具使用步骤
- 关闭Word提示无法将更改后的内容保存到共用模板
- 数据包络分析--Malmquist指数
- 小米为什么造不出芯片
- 冰汽朋克侦查机器人_冰汽时代困难难度机器人流玩法心得 寒霜朋克困难难度怎么玩...
- python发outlook邮件_通过Python发送Outlook电子邮件?
- 在天翼网关2.0上如何使用自己的路由器
- wifi 小程序 透传_微信小程序实现的一键连接wifi功能示例
- 使用weinre调试手机页面
- API 快速开发平台设计思考
- Windows应用、注册表
热门文章
- 千年古刹南普陀寺义工十年发展已逾6000人
- SIGMOD 2021 | 时间序列相关论文一览(附原文源码)
- 当幸福来敲门 经典语录
- 人生是一场盛大的遇见
- What is base..ctor(); in C#?
- 短信或者邮件链接打开 APP(URL Scheme)
- 在Unity中实现基于粒子的水模拟(二:开始着色)
- 华为机试(JAVA)真题Od【A卷+B卷】
- mac软件全屏时候最顶上任务栏保留_一键整理 Mac 顶部菜单栏,这款免费工具 App 还你清爽...
- matlab绘制二元二次曲线图,Excel:关于二次曲线直角坐标方程图像的描绘