Linux 的介绍和云服务器上web 程序部署

2023-12-13 07:35:06

目录

一.linux的介绍

1.1linux是什么

1.2linux的发展历程

1.3linux发行版

二.Linux环境搭建

?2.1阿里云-云服务器配置

2.2使用终端软件连接Linux

三.操作Linux,部署web程序

3.1Linux指令

3.2部署web程序

第一步:认识yum

第二步:安装jdk

第三步:安装Maven

第四步:安装Tomcat

第五步:管理安全组

第六步:MySql的安装和启动


? ? ? ? 本文开头简单介绍了Linux是什么,后续介绍了Linux的常用指令,最后以阿里云服务器为例,配置了jdk、Maven、Tomcat和Mysql,以及配置了安全组。

一.linux的介绍

1.1linux是什么

?Linux 是一个操作系统. Windows "并列" 的关系.

1.2linux的发展历程

  • 19691970 , 贝尔实验室的 Dennis Ritchie (左图) Ken Tompson (右图) 开发了 Unix 操作系统

注:这两位大佬,想开发操作系统时,发现开发编程语言有问题,于是创出了C语言编程语言

  • Unix 火了之后 , 衍生出很多的分支 . 其中有一只为 "Minix". 由荷兰的 Andrew S. Tanenbaum 教授开发. MINIX 含义为 " 小型的 UNIX", 源代码开放给大学教学和研究工作 .
  • 1991 , 还在读大学的 芬兰人 Linus Benedict Torvalds (1969 12 28 日出生 , 当时 22 ) 基于Minix 的启发 , 开发出了 Linux 的第一个版本 .

注:现如今Linux就是世界第一大操作系统,个人认为或许开源是主要原因。

或许有人问:为什么啊,我使用的电脑是Windows系统,为什么Windows不是第一大系统,而是这个没怎么听过的是第一大系统?

答:安卓系统本质上就是 Linux.

1.3linux发行版

? ? ? ? 严格而言,Linux只是一个操作系统内核!

一个完整的操作系统=操作系统内核+配套的应用程序?


重点:不同公司/开源组织基于Linux内核,提供了不同的配套程序,这就是构成了不同的发行版

????????现如今企业中使用的发行版主要是RedHat(红帽),但是由于是需要收费的,不要不要,我们想白嫖,想免费!于是出现了CentOs,这个几乎有RedHat的所有功能。

? 或许有人问:既然RedHat可以被CentOs平替,为什么还使用RedHat呢?

? 官方回答:我们其实并不反对这种发行版,真正向我们付费的用户,他们重视的并不是系统本身,而是我们所提供的商业服务。当然我认为主要原因还是:CentOS并不向用户提供商业支持,不负上任何商业责任,因此你踏上企业时,还是需要使用RedHat。

二.Linux环境搭建

?Linux环境搭建有4种方式:

  1. 直接安装在物理机上 . 但是由于 Linux 桌面使用起来非常不友好 . [ 不推荐 ].
  2. 使用虚拟机软件, Linux 搭建在虚拟机上 . 但是由于当前的虚拟机软件 ( VMWare 之类的 ) 存在 一些 bug , 会导致环境上出现各种莫名其妙的问题 , 比较折腾 . [ 非常不推荐 ]
  3. 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能 , Windows系统内集成了一个 Linux. 但是目前这个技术还不够成熟 . [ 暂时不推荐 ].
  4. 使用云服务器, 可以直接在 腾讯云 , 阿里云或华为云 等服务器厂商处直接购买一个云服务器 . [ 推荐 ]
注: 使用云服务器不仅环境搭建简单 , 避免折腾 , 同时还有一个最大的好处 , 部署在云服务器上的项目可以直 接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别 . 也就能让我们自己写的程序 真的去给别人去使用

?2.1阿里云-云服务器配置

? ? ? ? 本文以新人免费试用的阿里云服务器为例,链接:阿里云-计算,为了无法计算的价值

步骤:

? ? ? ? 1.注册并且申请试用:?搜索云服务器试用,然后进入进行申请免费试用。

只要选择好这个就可以,看个人需求,一般选前者,毕竟都是初学,操作系统选择 CentOS 7.6 64位,其他选项申请试用之后可以后续更改,无需在意!

? ? ? ? 2.免费试用之后,可以更改一下自己的root密码,需要重置,并且要复杂一点,不然容易被入侵。

? ? ? ? 3.牢记你的外网IP,之后部署web应用程序,需要使用这个!

2.2使用终端软件连接Linux

? ? ? ? 所谓的终端软件,就是指:与远程主机建立网络连接的工具软件,从而对主机进行操作。

常见终端软件:XShell Putty MobaXTerm Iterm2 SecureCRT

此处着重讲解:XShell

下载链接:https://www.netsarang.com/en/free-for-home-school/

注:XShell 提供了两种授权方式.

  1. 企业版: 收费.
  2. 家庭/教育版: 免费.

使用XShell登陆主机

  1. 终端输入:?ssh 服务器外网ip地址
  2. 输入用户名(root)和密码(重置的密码). 输入即可正确登陆

三.操作Linux,部署web程序

3.1Linux指令

????????想成功部署自己的web程序,第一件事:学会如何使用linux的指令!

1.Linux上的复制粘贴

????????复制: ctrl + insert ( 有些同学的 insert 需要配合 fn 来按 )
????????粘贴: shift + insert
2.Is指令? ? ??
? ? ? ??语法: ls [选项] [目录或文件]
????????功能:对于目录,该命令列出该目录下的所有子目录与文件。

3.pwd指令? ??

????????语法: pwd
????????功能:显示用户当前所在的目录

4.cd指令

????????语法: cd 目录名

????????功能: 改变工作目录。将当前工作目录改变到指定的目录下 .
cd .. : 返回上级目录
cd ~ :进入用户家目
cd - :返回最近访问目录

5.touch指令

????????语法: touch [ 选项 ]... 文件 ...
????????功能: touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。
6.cat指令
????????语法 cat [ 选项 ] [ 文件 ]
????????功能: 查看目标文件的内容

7.mkdir指令

????????语法mkdir [选项] dirname...

????????功能:在当前目录下创建一个名为 “dirname” 的目录

8.rm指令

????????语法rm [-f-i-r-v] [dirName/dir]

????????功能:删除文件或目录
-f 即使文件属性为只读(即写保护),亦直接删除
-i 删除前逐一询问确认
-r 删除目录及其下所有文件

9.cp 指令

????????语法cp [选项] 源文件或目录 目标文件或目录

????????功能: 复制文件或目录
选项:
-f 或 --force 强行复制文件或目录, 不论目的文件或目录是否已经存在
-i 或 --interactive 覆盖文件之前先询问用户
-r递归处理,将指定目录下的文件与子目录一并处理。若源文件或目录的形态,不属于目录
或符号链接,则一律视为普通文件处理
-R 或 --recursive递归处理,将指定目录下的文件及子目录一并处理

10.mv指令

????????语法: mv [选项] 源文件或目录 目标文件或目录

????????功能:? 将文件重命名或将其移至一个新的目录中,
第二个参数是已存在的目录名称时,源文件或目录参数可以有多个, mv 命令将各参数指定的源文件均移至目标目录中。
选项:
????????-f :force 强制的意思,如果目标文件已经存在,不会询问而直接覆盖
????????-i :若目标文件 (destination) 已经存在时,就会询问是否覆盖!

11.man指令

????????语法: man [ 选项 ] 命令
????????功能:查询Linux指令的作用
选项:
-k 根据关键字搜索联机帮助
num 只在第num章节找
man man 能够看到 man 手册中的若干个章节及其含义

12.head指令

????????语法:head?[ 参数 ]...?[ 文件 ]...?
????????功能 head? 用来显示档案的开头至标准输出中,默认 head 命令打印其相应文件的开头 10 行。
参数: <行数>?显示的行数

13.date指令

????????date 指定格式显示时间: date +"%Y-%m-%d %H:%M:%S"

????????date 用法: date [OPTION]... [+FORMAT]
%H : 小时 (00..23)? ? ? ?%M : 分钟 (00..59)? ? ? ? %S : 秒(00..61) ????????%X : 相当于 %H:%M:%S
%d : 日 (01..31) ????????%m : 月份 (01..12) ????????%Y : 完整年份 (0000..9999)
%F : 相当于 %Y-%m-%d

14.vim指令

????????vim 是一个知名的文本编辑器,可以编辑文本。

打开/创建文本:vim [文件名]

注:vim 打开文件后默认是 普通模式 . 普通模式下键盘的按键表示一些特殊功能的快捷键 . ( 例如按下 j 并不是 输入字母 "j", 而是表示光标往下移动一行 ). 需要进入插入模式才能进行文本编辑 .
进入插入模式: 按下i 键
保存:按下ESC:w
注:插入模式下不能保存文件 , 需要先回到 普通模式 . 按下 Esc 回到普通模式. 普通模式下输入 :w , 再按下回车 , 即可保存文件
退出:普通模式下输入 :q , 再按下回车,

15.grep指令

????????语法:grep?[参数]...?[文件]...?

????????功能:用于查找文件中是否包含指定字符串 , 并显示对应的行 .
参数:
-n<行数>?显示的行数
-w 全字匹配. 要求整个单词都完全相同的结果才能匹配出来, 而不仅仅是一个单词的一部分.
-r 递归查找. 可以搜索多级目录下的所有文件.
--color 高亮查找到的结果
--include 指定查找某些文件
--exclude 指定排除某些文件

16.ps指令

???????语法:ps?[参数]...

????????功能:用于查看当前系统上运行的进程

示例:?

ps aux ? # 显示系统上所有的进程
ps aux | grep " 进程名 "
ps aux | grep " 进程 id"

注:

  1. 使用 tab 键补全 我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
  2. 使用 ctrl + c 重新输入 如果命令或者目录敲错了 , 可以 ctrl + c 取消当前的命令

3.2部署web程序

????????其实在之前dTomcat讲解种,我们就已经知道了怎么部署应用程序了,但是现在是部署在服务器上,又有什么区别呢?其实就是这样,需要jdk环境和Tomcat文件

第一步:认识yum

????????yum(Yellow dog Updater, Modified)是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat, Centos等发行版上,功能和 Maven 的依赖管理功能类似. 使用 Maven 能帮我们方便的安装一些第三方 jar , 而 yum 方便我们方便的安装第三方程序.

  • 查看软件包列表 :yum list | grep [软件包关键字] ? # 注意, 最好要加上 grep, 否则罗列的内容会非常多, 导致机器很卡.
  • 安装软件包(需要管理员权限):yum install [软件包名字]
  • 卸载软件包(需要管理员权限) yum remove [软件包名字]

注:yum 所有的命令必须保证网络是联通情况下, 才能使用(云服务器一般网络都是良好的)

第二步:安装jdk

输入:yum install java-1.8.0-openjdk.x86_64,可使用 java - version 验证是否安装成功 .

第三步:安装Maven

  • 查看 Maven 安装包 yum list | grep maven -w
  • 安装 Maven yum install maven.noarch
  • 验证 Maven: mvn -v

第四步:安装Tomcat

????????由于yum上默认为Tomcat版本,因此我们需要手动安装Tomcat 8.

???(1)?下载 Tomcat 压缩包 下载路径可以参考官网 https://tomcat.apache.org/download-80.cgi? ,Tomcat压缩包拖到XShell界面来。

? ?(2)?解压缩 Tomcat ?: 先安装解压器:yum install unzip然后选择好文件夹,解压缩指令:unzip apache-tomcat-8.5.47.zip

?? ?(3)修改可执行权限:输入:cd apache-tomcat-8.5.47/bin ,进入到tomcat的bin文件夹,然后对里面需要的文件修改可执行权限:chmod +x *.sh 。(为了启动Tomcat)

? ? ??(4) 启动Tomcat:sh bin/startup.sh

如上图是安装tomcat的图解,ls -a:是显示当前文件夹的所有文件,cd tq02:是进入tq02的文件夹,本人以及解压了,所以不再操作解压过程。

? ? ? (5)验证启动成功

方法1 查看 tomcat 进程是否存在

????????ps aux | grep tomcat
方法 2 查看端口 8080 是否被绑定
????????netstat -anp | grep 8080
方法 3 使用 curl 命令访问默认 demo
????????curl 127.0.0.1:8080

第五步:管理安全组

? ? ? ? 就是在服务器当中,打开安全组,开放端口8080.

第六步:MySql的安装和启动

?安装:

? ? ? ? (1)安装 mariadb 服务:yum install -y mariadb-server

? ? ? ? (2)安装 mariadb 命令行客户端:yum install -y mariadb

? ? ? ? ? (3)? ?安装 mariadb C library:yum install -y mariadb-libs

? ? ? ? (4)? 安装 mariadb 开发包:yum install -y mariadb-devel

启动:

? ? ? ? (1)启动服务 :?systemctl start mariadb

????????(2)设置服务开启自启动:?systemctl enable mariadb

? ? ? ? ? (3)查看服务状态 :?systemctl status mariadb

● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; enabled; vendor preset: disabled)
   Active: active (running) since 五 2018-11-09 12:49:23 CST; 19min ago
 Main PID: 1510 (mysqld_safe)
   CGroup: /system.slice/mariadb.service
           ├─1510 /bin/sh /usr/bin/mysqld_safe --basedir=/usr
           └─2030 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-...

11月 09 12:49:15 peixinchen.host systemd[1]: Starting MariaDB database server...
11月 09 12:49:17 peixinchen.host mariadb-prepare-db-dir[1062]: Database MariaDB is probably initialized in /var/lib/m...ne.
11月 09 12:49:19 peixinchen.host mysqld_safe[1510]: 181109 12:49:19 mysqld_safe Logging to '/var/log/mariadb/mariadb.log'.
11月 09 12:49:19 peixinchen.host mysqld_safe[1510]: 181109 12:49:19 mysqld_safe Starting mysqld daemon with databas...mysql
11月 09 12:49:23 peixinchen.host systemd[1]: Started MariaDB database server.
Hint: Some lines were ellipsized, use -l to show in full.

只需要注意?Active 状态为 active (running)

测试连接:

? ? ? ?(1)?使用命令行客户端尝试连接:mysql -uroot

? ? ? ?(2)查看版本号:MariaDB [(none)]> select version();

注:创建数据库时,统一使用 utf8mb4 字符集,为了支持中文。

第七步:移入需要压缩包

? ? ? ? 这一步很重要,在Windows上,需要将配置的项目移入到Tomcat的webapps目录下。因此在Linux上,我们也需要如此。

? ? ? ? ?1.启动Tomcat:sh bin/startup.sh??

? ? ? ? ?2.将需要的jar包,从windows拖动到Linux的webapps的目录。

? ? ? ? 3.使用解压缩指令,unzip? 压缩包名.jar

注:先安装zip(指令:?yum install zip)和 unzip(指令:?yum install unzip)???????

第八步:测试web程序

????????在浏览器里输入你的公网ip,然后是端口号,接着项目名即可。url公网IP:8080/项目


注:其实在Linux配置web程序,其实配置在windows上的是一样的,只不过我们需要学习如何配置。

文章来源:https://blog.csdn.net/m0_74097410/article/details/134681042
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。