Linux 部署表白墙程序

学习目标:因为我们如果在实际的后端开发时写服务器、部署到服务器 ;这里的服务器使用的绝大部分是Linux操作系统。所以需要掌握基本操作;有利于日后相关工作效率提高。以及如何将一个web程序部署到云服务器;让所有人都能访问到。

Linux介绍

Linux和Windows是并列关系;目前我们使用主要是Windows操作系统。而公的服务器主要是Linux。
Windows主要是图形化操作(在图形化上能领先Linux20年水平左右)
Linux主要是命令行操作(服务器端、嵌入式(冰箱洗衣机)、移动端、安卓本质上是个Linux;ios也是表兄弟关系)
原因:
稳定:主要是服务器要求是要稳定;虽然服务器配置高;但是任务量大;所以就没有额外的资源运行图形化界面。而且Linux图形化bug比较经常触发(安卓本身是有自己的图形化界面);
效率:命令行的效率也比较高;如果是网络操作服务器;那么传的命令和传的图片差距是非常大的。

获取Linux的方式

1:虚拟机;装个软件;让软件模拟硬件(但是bug多;还没有外网ip;不推荐)

2:物理机;直接买一个Linux的电脑;或者把Linux装电脑上不要原来的Windows;但是这种图形化界面操作还是bug多

3:wsl;近几年搞的在Windows内置linux内核;但是也办法作为生产环境

4:实体服务器;性价比高(硬件这些都能自己搭建配置;二手内存条也是非常香);但是服务器要求稳定;你还得要有维护服务器的技能;还是没外网ip。

5:云服务器;虽然很贵;但是学生和社会人士的优惠力度是十倍左右;

白嫖云服务器

白嫖固然很香;但是天底下可没有免费的午餐;可不敢什么都想着白嫖;人一旦有了贪念就容易被骗子玩弄股掌中;可不敢小瞧骗子的手段;生存的最大障碍并不是弱小和无知,而是傲慢。只有你想不到的;没有他们做不到的手段。
白嫖策略
在这里插入图片描述

然后去购买云服务器就会有一个月和半年的付费是0元。一台机器也是可以几个人共用。配置选择:机房选择国内的比较便宜;系统镜像centos7
在这里插入图片描述
领取完成点击控制台;然后在左侧选择云服务器ECS下选择实例;这里就可以查看到你购买机器的信息以及公网的ip地址。
首次使用需要设置初始密码:用户名固定是root;密码这里设置建议不要太简单;哪怕是忘了密码也能重置;有手机验证就能重置
现在我们就拿到ip、用户名、密码三个东西
ip:47.113.230.235
用户名:root
密码:******

现在阿里云官网就对我们往下操作没关系了;虽然这里网页内置登录功能;但是不太方便;所以我们使用单独的终端工具

终端 xshell

xshell官网
填写邮箱就会把下载链接发到邮箱;
在这里插入图片描述
连接云服务器:
新建;主机地址填上即可;
在这里插入图片描述

连接:

会弹出几个窗口;提示让你输入用户和密码;保存下就能配置一次后续就直接打开就能看到之前创建的
在这里插入图片描述
在这里插入图片描述

~~ 表示主目录,也就是当前登录用户的用户目录。
/ :上面的代表根路径

常见Linux命令

操作目录

ls 查看目录内容

ls:查看指定目录中都有哪些内容(相当于windows双击某个目录;查看里面的文件和目录)
1:直接输入ls是查看当前目录中的内容;取决于你当前在哪个目录;我们是新机器当然是什么都没有
在这里插入图片描述
2:输入ls后面加路径(相对路径/绝对路径)就可以查看指定的目录 。ls后面跟有目录至少有一个斜杠/
斜杠是根目录的意思;windows的此电脑:Linux没有盘符的概念
在这里插入图片描述
相当于这个样子;蓝色是目录;浅蓝色是快捷方式;白色的是文件(这里没有);带有特殊背景是特殊类型。
在这里插入图片描述
3:ls-l 以列表的形式查看
在这里插入图片描述

注意ls后面跟有目录至少有一个斜杠/;不然就是下面这样子的

(直接输入ll也是同样效果;更常用)
在这里插入图片描述

ctrl+l 清屏

pwd:查看路径

pwd:查看当前目录完整的绝对路径(相当于文件资源管理器的搜索栏一样)
在这里插入图片描述
在这里插入图片描述

cd:切换目录(相当于双击进入目录一样)
在这里插入图片描述
斜杠/只有在路径开头的时候才算是根目录
斜杠/在中间或者末尾;只是表示当前目录和目录之间的分割符合;上面最后etc后面有个斜杠;没有区别;表示的这是一个目录。

cd后面也可以跟绝对路径和相对路径;
绝对路径是以/开头;
相对路径是以.或者…开头 .有时候可以省略的

cd… 回到上级目录
在这里插入图片描述

cd root 以相对路径进入(以相对路径进入;得要在上一级目录才行)
cd切换路径的时候可以用tab键进行路径补全;当有多个路径匹配时按两下tab键就回罗列出来这些路径

操作文件

touch :创建空的文件

创建成功后是没有提示的;Linux是没有提示就说明是成功了
在这里插入图片描述

cat:查看文件内容

在这里插入图片描述

echo:写文件

如果只是在后面加内容;效果就是回显
在这里插入图片描述
后面加大于号、路径才是真正的写(每一次这样子都是会覆盖前面的内容)
在这里插入图片描述
一个大于号是覆盖;两个大于号是拼接;拼接后换行
在这里插入图片描述

vi/vim

cat和echo只是简单的读写文件;如果遇到复杂一点的内容就需要用编译器;vi/vim相当于记事本一样的程序。vi和vim是两个程序;用法差不多;vim是vi的升级版本。
在这里插入图片描述
在这里插入图片描述

退出:先按一下 冒号 : 然后q 回车 (wq是保存退出;q是直接退出)
如果出现冒号变成直接输入的话;先按esc;然后再冒号
在这里插入图片描述
vim模式:
普通模式:默认进去的是普通模式;普通模式下;键盘大部分按键都是特定含义的快捷键。没法编辑的。别的模式要回到普通模式按esc;普通模式下输入冒号 : 然后wq就能保存退出

插入模式:要进行编辑;需要输入小写字母i ;进入插入模式;进入的方式有很多种;这种是最简单的按;(左下角显示insert就是插入模式)
如果没有正确关闭vim;下一次启动就会报错;提示你上次没正确关闭;直接按D就是删除未保存的内容;R就是恢复正确的编辑内容

复制粘贴

复制粘贴不再是ctrl c、v;或者选中右键复制粘贴
复制:ctrl+insert
粘贴:shift+insert

针对目录

mkdir :创建目录

在这里插入图片描述
mkdir-p:创建多层目录
在这里插入图片描述

rm:删除文件/目录

rm+文件名/目录名
在这里插入图片描述
输入y删除;输入其它不删除。

危险:
删除目录:rm -rf (r是递归删除意思;直接-r很危险;连根目录也没了;啥都没了。根目录不可以创建)
f是不确认;强制删除;不用再输入y进一步确认删除。如果我们上面操作一执行就只能重装系统

在这里插入图片描述
这个操作还是很危险的;比如不小心中间敲多一个空格;rm就会当成你要删两个目录;根目录/和root/test.txt。不加f有时候有的系统是默认强制删除的;没法避免。
在这里插入图片描述

mv :移动

mv 源 目标(相当于剪切加粘贴;移动得移到目录才能接收)
在这里插入图片描述
移动成功
在这里插入图片描述
如果两个都是文件;会把源 的内容给到目标的内容里;但是名字却是目标的名字。
(mv本来是移动;但是如果两边都是文件就没法正常移动;只能把内容移动覆盖过去;名字没法移动过去)
在这里插入图片描述

cp :复制、粘贴

cp 源 目标
在这里插入图片描述

部署表白墙程序

jdk安装

jdk:yum安装(相当于手机应用商店;因为我们云服务器联网的;如果是虚拟机联网就不好办)
yum list | grep 关键词
yuminstall 包名

在这里插入图片描述

找1.8版本;java-1.8.0-openjdk-devel.x86_64 。devel :开发 x86_64 :64位操作系统 . i686是32操作系统。安装的是root用户;管理员权限
验证是否安装成功:输入javac在这里插入图片描述
在这里插入图片描述

tomcat安装

tomcat安装yum提供的是非常老的版本;不是新版的。所以我们不能用这种方法;我们使用的都是8版本的。这里noarch是表示不区分系统;基于java跨平台
在这里插入图片描述
手动安装:将zip压缩包上传(拖拽)Linux上就可以使用;创建一个目录;tomcat压缩包就放在这里
在这里插入图片描述
出现这种情况先取消;然后命令行输入 yum install lrzsz (拖拽上传使用Linux上的rz命令;有的系统带;有的系统不带;不带就装一下就好了)
在这里插入图片描述
执行unzip apache-tomcat-8.5.87.zip
在这里插入图片描述
unzip找不到;那就装呗;
在这里插入图片描述
安装成功;进入目录就能看到熟悉的面孔
在这里插入图片描述在这里插入图片描述
进入bin目录
在这里插入图片描述
我们需要给所有的.sh文件赋予可执行权限;需要使用chmod +x *.sh (注意空格)
然后查看这个目录就会发现这些.sh文件变绿了;表示可执行文件
在这里插入图片描述

MariaDB安装

mariaDB是开源的分支;mysql是被收购了;这个是原来的mysql大佬新搞的同胞兄弟。
创建一个mysql目录;把数据库放在这里
在这里插入图片描述
安装指南
只需要复制粘贴就好了;注意前面多了个#。

完成上述操作后;如果我们重新连接云服务器怎么启动和连接使用数据库呢:直接登录就行了;因为在这个安装指南就设置为开启自启动。
连接数据库
mysql -h主机地址 -u用户名 -p用户密码 (因为我们默认是没密码;-p省略)
在这里插入图片描述
数据库的退出:
在这里插入图片描述
mysql怎么退出且不关闭:ctrl+c 或者ctrl+z、ctrl+d 退出。因为我们设置的时候是自启动的;所以我们这个数据库就是一直是启动状态的。

部署工作

1:
先在云服务器上建库建表;这里就能得到一个经验;我们最好是能把sql语句保存在一个文件里;然后直接复制粘贴就行;不用像现在一样还要一个一个敲;还好当前的表白墙程序只是在0到1的过程;如果是1到100的过程这个还得花点时间。
创建这个新的数据库时;我们得需要指定字符集;不然就没法在数据库存入中文。
在这里插入图片描述

在这里插入图片描述

 create database liao charset utf8mb4;

create table message(`from` varchar(20),`to` varchar(20),message varchar(100));

2:
代码调整:本地的数据库;端口号、用户名、密码可能和云服务器不同;云服务器这里的数据库默认是没密码。没有密码就设置为空字符串
在这里插入图片描述

3:
打包:使用maven打成war包
在这里插入图片描述

这里得注意:打包的时候我是进行war包的重命名;所以我访问的时候就不能再是以我们本地 http://localhost:8080/+项目名+网页名访问。而是云服务器ip地址 +:8080war包名+网页名

4:把war包拷贝到云服务器上的webapps目录即可
启动tomcat服务器;一定得保证里面.sh文件都是绿色的;有可执行权限的

进入bin目录启动tomcat
在这里插入图片描述
验证是否启动成功
在这里插入图片描述

然后把war包拷贝webapps目录;发现还是没法访问
在这里插入图片描述
两种可能:服务器没有正常启动(这个不太可能因为步骤做的非常足了;而且netstat验证端口是正常说明服务器OK的);服务器防火墙/安全组没有正确打开。
安全机制:
云服务器厂商未来保证我们机器安全引入的安全机制;默认情况下只有你这个机器的22端口可以对外访问的;其它端口也想被外面访问;就需要手动放开。
轻量应用服务器:防火墙
ECS服务器:安全组

开放流程:开放端口指南
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/m0_64254651/article/details/130445968