Linux 的介绍和云服务器上web 程序部署
目录
? ? ? ? 本文开头简单介绍了Linux是什么,后续介绍了Linux的常用指令,最后以阿里云服务器为例,配置了jdk、Maven、Tomcat和Mysql,以及配置了安全组。
一.linux的介绍
1.1linux是什么
?Linux 是一个操作系统. 和 Windows 是 "并列" 的关系.
1.2linux的发展历程
- 1969-1970 年, 贝尔实验室的 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种方式:
直接安装在物理机上 . 但是由于 Linux 桌面使用起来非常不友好 . [ 不推荐 ]. 使用虚拟机软件, 将 Linux 搭建在虚拟机上 . 但是由于当前的虚拟机软件 ( 如 VMWare 之类的 ) 存在 一些 bug , 会导致环境上出现各种莫名其妙的问题 , 比较折腾 . [ 非常不推荐 ] 使用 WSL (Windows Subsystem for Linux). 这个是 Windows 近几年开发的新功能 , 在 Windows系统内集成了一个 Linux. 但是目前这个技术还不够成熟 . [ 暂时不推荐 ]. 使用云服务器, 可以直接在 腾讯云 , 阿里云或华为云 等服务器厂商处直接购买一个云服务器 . [ 推荐 ]注: 使用云服务器不仅环境搭建简单 , 避免折腾 , 同时还有一个最大的好处 , 部署在云服务器上的项目可以直 接被外网访问到, 这个时候就和一个公司发布一个正式的网站没有任何区别 . 也就能让我们自己写的程序 真的去给别人去使用
?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 提供了两种授权方式.
- 企业版: 收费.
- 家庭/教育版: 免费.
使用XShell登陆主机
- 终端输入:?ssh 服务器外网ip地址
- 输入用户名(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"
注:
- 使用 tab 键补全 :我们敲的所有的 Linux 命令, 都可以使用 tab 键来尝试补全, 加快效率.
-
使用 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
第三步:安装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上的是一样的,只不过我们需要学习如何配置。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!