一、引言(为什么选择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项目相关推荐

  1. oss客户端工具_阿里云服务器ECS上使用ossfs工具挂载阿里云OSS存储

    介绍:阿里云对象存储服务(Object Storage Service,简称OSS)可以提供基于网络的数据存取服务.使用OSS,可以通过网络随时存储和调用包括文本.图片.音频和视频等在内的各种非结构化 ...

  2. 阿里云服务器ECS windows server已开放端口但连不上的问题

    阿里云服务器ECS上已经开放了相应端口的安全组,云服务器的防火墙也已经关闭了. 阿里云服务器自带的安全组3389端口能脸上,但自定义开的端口22和8080连不上: 阿里云服务器的防火墙通过远程桌面连接 ...

  3. 部署SSM项目到阿里云服务器ECS

    文章目录 一. 问题背景 二. 准备资源 三. 安装JDK 3.1 下载 3.2 安装 3.3 配置环境变量 四. 安装MySQL 4.1 下载 4.2 解压缩 4.3 修改操作系统配置 4.4 卸载 ...

  4. 阿里云服务器ECS 搭建网站

    目录 文章简介 构建网站流程 域名注册 云服务的选择 网站搭建 1)安装 apache 2)配置apache 域名解析设置 HTTPS 证书配置 免费证书购买申请 证书下载和安装 总结 文章简介 本栏 ...

  5. 阿里云服务器ECS centos7.4搭建nginx环境部署静态代码

    阿里云服务器ECS centos7.4搭建nginx环境部署静态代码 欢迎来到新手如何通过阿里云服务器部署静态网站 作为一个前端开发,第一次部署自己的私人网站,没有经验,战战兢兢,但是没有办法,成为全 ...

  6. 阿里云服务器ECS基本组件、使用场景及选购、升降配和部署建议

    什么是阿里云服务器ECS 云服务器ECS(Elastic Compute Service)是阿里云提供的性能卓越.稳定可靠.弹性扩展的IaaS(Infrastructure as a Service) ...

  7. 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)

    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...

  8. 购买阿里云服务器ECS快速上云

    购买阿里云服务器ECS快速上云 阿里云 阿里云优惠券 新用户专享阿里云上云必备 选购 个人上云中选择一个,点击立即购买 加入购物车,由于我不是新用户,价格有所区别 进入购物车选择立即购买 确认购买 支 ...

  9. 阿里云服务器ECS搭建后台(Windows Server 2012R2)

    引言与名词 云服务器 阿里云ECS Windows Server 厂商选择 一.领取阿里云服务器ECS 二.连接阿里云服务器ECS 三.搭建项目运行环境 四.发布项目到云服务器 五.隐藏8080端口号 ...

最新文章

  1. AngularJS 指令实践
  2. python查看函数调用栈
  3. c语言形参的隐含存储类型,C存储类型
  4. 如何友好的把Python和Bash结合在一起
  5. 编码 Unicode utf-8
  6. 交叉验证python_交叉验证
  7. 安装mysql5.6.10_windows下安装mysql(mysql-installer-community-5.6.10.1)详细教程
  8. 从统计代码来谈JS加载的优化
  9. 【三维路径规划】基于matlab遗传算法无人机三维路径规划【含Matlab源码 1268期】
  10. 小米球穿透工具使用步骤
  11. 关闭Word提示无法将更改后的内容保存到共用模板
  12. 数据包络分析--Malmquist指数
  13. 小米为什么造不出芯片
  14. 冰汽朋克侦查机器人_冰汽时代困难难度机器人流玩法心得 寒霜朋克困难难度怎么玩...
  15. python发outlook邮件_通过Python发送Outlook电子邮件?
  16. 在天翼网关2.0上如何使用自己的路由器
  17. wifi 小程序 透传_微信小程序实现的一键连接wifi功能示例
  18. 使用weinre调试手机页面
  19. API 快速开发平台设计思考
  20. Windows应用、注册表

热门文章

  1. 千年古刹南普陀寺义工十年发展已逾6000人
  2. SIGMOD 2021 | 时间序列相关论文一览(附原文源码)
  3. 当幸福来敲门 经典语录
  4. 人生是一场盛大的遇见
  5. What is base..ctor(); in C#?
  6. 短信或者邮件链接打开 APP(URL Scheme)
  7. 在Unity中实现基于粒子的水模拟(二:开始着色)
  8. 华为机试(JAVA)真题Od【A卷+B卷】
  9. mac软件全屏时候最顶上任务栏保留_一键整理 Mac 顶部菜单栏,这款免费工具 App 还你清爽...
  10. matlab绘制二元二次曲线图,Excel:关于二次曲线直角坐标方程图像的描绘