当前写的博客系统程序,只是部署在咱们自己的电脑上,其他用户是无法直接访问的.由于 NAT 机制的存在,导致了IP 地址就被分成了 内网 IP 和 外网 IP.
云服务器,包括公司中使用专用服务器,一般都是 Linux 系统,这个系统的使用和 Windows 差异很大.(通过命令行来操作的系统)
1 初识Linux
Linux 不仅仅是使用在服务器领域. 也用于嵌入式设备(冰箱,洗衣机)和移动端设备(安卓系统,也是基于 Linux 发展而来的);
Linux 发行版,严格的说, Linux 不是一个"操作系统"而是一个"操作系统内核",所谓的操作系统= 内核 + 配套的应用程序,公司中使用的一般都是如下的配套linux的应用程序:
1.1 购买云服务器
云服务器是在遥远的机房,要通过网络来进行操作,所部署的程序,也是要通过这个外网 ip 来访问的;
1.2 XShell来连接云服务器
安全成功的下载xshell,如下所示:
要想使用 xshell 连上云服务器,就需要明确云服务器的几个信息:
1、外网IP:49.235.129.183;
2、用户名:大部分 Linux 默认的用户名是 root;
3、密码:首次使用需要进行重设置密码;
开始建立xshell与云服务器的连接:
出现上图所示之后,点击连接,点了之后会弹出一个对话框,问你是否要保存密钥(选择是),如下图所示:
又会弹出对话框,让你输入用户名(勾选保存),又会弹出密码,让你输入密码(勾选保存),上述操作都成功之后,就能进入linux 命令行界面了,如下图所示:名词介绍:
2. Linux 常用命令
ls:list 列出当前目录下都有哪些内容 (文件/目录),直接输入ls是查看当前目录的情况;
ls /:跟上/意思就是看看/这个目录下的情况,/称为"根目录”就是 Windows上的"此电脑“的意思,因为Linux 中没有盘符,所有的目录和文件都是在/目录下的.注意ll和/之间是有一个空格的;
上述这些就都是/目录下包含的内容,且这些文件都是系统自带的文件和目录;
ll,也就是ls -l的写法,将当前目录下的文件竖着向我们展示出来;如下图所示:
下面简单介绍一下上图中的相关消息,如下图所示:
权限字符串的第一个字母,表示了文件的类型
- 表示普通的文件(显示成白色)
d 表示目录文件(文件夹)(显示成蓝色)
l 表示链接文件(快捷方式)(显示成浅蓝色)使用 linux 的时候,按 ctrl +|可以清屏哦!!!
cd :change directory 修改(当前)目录
cd / 指的是来到根目录, 就相当于点击"此电脑“,如下图所示
cd指令的小技巧:
通过上述连续的 cd 操作,已经进入到 /etc文件里面
pwd: 使用 pwd 可以查看到当前所处的路径的绝对路径.
在 linux 的命令中, 但凡涉及到目录相关的操作,都是可以支持绝对路径 和相对路径的,Linux 上,绝对路径,是以/开头的,相对路径,以.或者..开头的;
touch:创建空的文件
对于linux来说,输入一个命令,没有任何提示此时就是"成功”,如果失败, 就会告诉你一些报错信息;
cat:查看文件内容(把文件内容打印到控制台上)
echo: 打印内容到控制台上
注意:这里的 echo + 重定向,只能写一些简单的字符串内容,如果你的需要写的内容很多,不太方便,更不方便修改。
简单介绍vim:
vim 是 Linux 上自带的一个文本编辑器,使用 vim 就可以更灵活的对文件进行编辑了.
虽然和记事本的差不多,但实际上 vim 的使用要复杂很多,接下来只是简单介绍 vim 最基础的操作.1)、打开文件
指令操作:vim 文件名,如下图所示:
2)、编辑内容
vim 包含很多快捷键, 快捷键的画风和其他的软件截然不同,vim 更期望输入单个按键,就能起到快捷键的效果,所以vim 引入了"模式"概念;
启动 vim 之后, 默认处于 normal mode (普通模式),键盘按键,都是快捷键,而不是输入文本,此时下图就是普通模式:
要想输入文本, 就需要进入 insert mode (插入模式).进入插入模式的方法,有很多,最简单的就是i,下图就是插入模式;
3)、保存退出
在 xshell 中,按 ctrl +s是冻结屏幕的意思,有的时候,服务器打印的日志太快了,滚动太快看不清,就可以冻结屏幕按 ctr + q 就能解除冻结;
先按 esc, 回到普通模式,再按:进入命令模式
mkdir:make directory 创建目录;
rm:remove 删除文件/目录;
有的系统上(centos) 输入 rm 删除,就会有个提示,是否确认要删除.输入y就是删除.n 就是不删除,所谓的删除目录,不仅仅是删除目录本身,还要删除目录包含的其他目录和文件.故此需要使用 rm -r 来删除,其中 -r 表示"递归”;
有的系统上删除的时候,也会和上面一样,提示你是否要真的删除,如果是删除目录的话,递归过程比较麻烦,同时每个目录都会提示你要进行确认,我们就可以使用 rm -rf 的方式直接删除,f表示“强制删除”不需要进行确认;
需要注意的是:
mv: move 移动(剪切,粘贴)要移动的源 要移动的目标地方,也可以移动目录(把目录内部包含的所有内容都进行移动),使用 mv 还可以针对文件/目录进行重命名;
cp: 要复制的源 要复制的目标,可以拷贝普通文件,也可以拷贝目录拷贝目录的时候,和 r 类似,都是要加上 -r 选项,表示要递归的拷贝目录里的内容;
grep: 字符串匹配/查找,比如,想查找某个文件中是否包含某个关键字,这个关键字在第几行,都可以使用 grep 来查看;
ps:process show 展示进程 显示出当前系统上都有哪些进程
很多时候 ps 都会搭配 grep 来使用,比如,查看 mysql 进程的进程 pid.
一般主要有下面两种用法:
ps aux| grep 进程名
ps aux|grep 进程id;netstat :查看网络信息,可以用来查看某个端口是否被某个进程使用.也可以查询某个进程使用了哪个端口;
3. 在linux上搭建博客系统
在 Linux 系统上搭建 Java web 程序的运行环境,需要有一些其他的程序把这个环境搭起来,我们需要安装JVM (JDK),Tomcat,MySQL 数据库,这三个运行所需要的环境;
Linux 通过命令的方式来安装的,我们就主要使用最简单的方式.即基于包管理器 进行安装;
Linux 会把一些软件包,放到对应的服务器上,通过包管理器这样的程序,来把这些软件包给下载安装;其中ubuntu 系统的包管理器是 apt
3.1 安装jdk
这里需要确保是处于 root 用户下.(如果不是管理员,需要使用 sudo su 切换到管理员)
1、使用 apt 命令查看服务器上有哪些软件包,apt list l grep jdk;
2、使用 apt 安装软件包
apt install 软件包名,其中在 Linux 命令行中,复制 ctrl + insert,粘贴 shift + insert;
当出现下图界面时,即jdk安装成功:
root@VM-4-5-ubuntu:/home/ubuntu# javac Usage: javac <options> <source files> where possible options include: -g Generate all debugging info -g:none Generate no debugging info -g:{lines,vars,source} Generate only some debugging info -nowarn Generate no warnings -verbose Output messages about what the compiler is doing -deprecation Output source locations where deprecated APIs are used -classpath <path> Specify where to find user class files and annotation processors -cp <path> Specify where to find user class files and annotation processors -sourcepath <path> Specify where to find input source files -bootclasspath <path> Override location of bootstrap class files -extdirs <dirs> Override location of installed extensions -endorseddirs <dirs> Override location of endorsed standards path -proc:{none,only} Control whether annotation processing and/or compilation is done. -processor <class1>[,<class2>,<class3>...] Names of the annotation processors to run; bypasses default discovery process -processorpath <path> Specify where to find annotation processors -parameters Generate metadata for reflection on method parameters -d <directory> Specify where to place generated class files -s <directory> Specify where to place generated source files -h <directory> Specify where to place generated native header files -implicit:{none,class} Specify whether or not to generate class files for implicitly referenced files -encoding <encoding> Specify character encoding used by source files -source <release> Provide source compatibility with specified release -target <release> Generate class files for specific VM version -profile <profile> Check that API used is available in the specified profile -version Version information -help Print a synopsis of standard options -Akey[=value] Options to pass to annotation processors -X Print a synopsis of nonstandard options -J<flag> Pass <flag> directly to the runtime system -Werror Terminate compilation if warnings occur @<filename> Read options and filenames from file
3.2 安装 tomcat
如上图所示,咱们用的是 tomcat 8.5,tomcat 8.5 搭配的是 servlet 3.1,所以就需要手动安装 tomcat 了,由于 Tomcat 就是 基于 java 来实现的,且java 是跨平台的.
故此只需要把之前 Windows 上的 Tomcat 上传到 Linux 上即可.
1、把之前 Windows 上的 Tomcat 上传到 Linux 上
把要上传的压缩包,往 xshel l上一拖, 就可以了,但是
1)、一次只能拖一个文件.(打成压缩包)
2)、要想能拖上去,需要先安装 lrzsz 这样的软件包ubuntu apt install lrzsz,下面是简单的指令:
sz 把 linux 上的文件传到 Window.
rz 把 windows 上的文件传到 linux;2、对 zip 压缩包进行解压缩
unzip 压缩包名字
ubuntu: apt install unzip3、修改 .sh 文件的可执行权限,让这些 sh 都可执行
先 cd 到 bin 目录中,进行下图操作:执行完这个操作,顺利完成没报错,说明就成功了,此时这些 .sh 文件都变绿了,如下图所示:
4、 启动 tomcat
还是 cd 到 bin 目录下,sh startup.sh,代码如下:
root@VM-4-5-ubuntu:/home/ubuntu/java109/apache-tomcat-8.5.98/bin# sh startup.sh Using CATALINA_BASE: /home/ubuntu/java109/apache-tomcat-8.5.98 Using CATALINA_HOME: /home/ubuntu/java109/apache-tomcat-8.5.98 Using CATALINA_TMPDIR: /home/ubuntu/java109/apache-tomcat-8.5.98/temp Using JRE_HOME: /usr Using CLASSPATH: /home/ubuntu/java109/apache-tomcat-8.5.98/bin/bootstrap.jar:/home/ubuntu/java109/apache-tomcat-8.5.98/bin/tomcat-juli.jar Using CATALINA_OPTS: Tomcat started.
5、验证启动是否成功
使用 ps 查看java 进程有没有
使用 netstat 查看 8080 是否被绑定
访问 tomcat 的欢迎页面还可以通过浏览器来访问 tomcat 的欢迎页面,我们访问的是项目的登录界面:
云服务器是另外一台电脑,不是一个程序,这个电脑你需要通过网络连接的方式来进行操作,xshell 就是连接到云服务器的客户端软件;
同时这里还有一个问题,就是要确保云服务器的 防火墙/安全组 确认是否打开:
登录到云服务器的后台,找到对应的机器.选择防火墙标签页,如下图所示:
为了保护你的服务器安全,云服务器厂商就对那些端口能够访问做出限制,默认情况下,就只有 22 (xshell 登录的时候使用 端口)和 3389(Windows 的服务器远程桌面) 能够访问
),为了确保我们的项目能够顺利被访问,就需要把 8080 这个端口添加到上述防火墙中.
当你把端口号开放之后,外界才能够访问到你的这个 8080 端口;
3.3 安装 mysql
安装 mysql,直接通过 apt 来安装,这里就直接装 mysql8 ,
安装完毕之后,一般来说, mysql 的服务器就自动启动了;
root@VM-4-5-ubuntu:/# service mysql status
● mysql.service - MySQL Community Server
Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2024-02-02 14:50:22 CST; 1 month 1 day ago
Main PID: 1779280 (mysqld)
Status: "Server is operational"
Tasks: 41 (limit: 2220)
Memory: 368.5M
CPU: 2h 21min 6.061s
CGroup: /system.slice/mysql.service
└─1779280 /usr/sbin/mysqld
Feb 02 14:50:21 VM-4-5-ubuntu systemd[1]: Starting MySQL Community Server...
Feb 02 14:50:22 VM-4-5-ubuntu systemd[1]: Started MySQL Community Server.
4. 正式进行程序的部署
4.1 把数据库/数据表都在云服务器上创建好
当把程序放到云服务器上执行,程序访问的就是云服务器上的数据库了.需要确保数据库里面有数据 (有表,有库),把之前代码中的 db.sql 中的内容 复制到 云服务器的 mysql 客户端中,执行
4.2 针对程序进行打包
打包之前,还需要确认一下 mysql 相关的配置是否需要修改,这里一般是针对linux上mysql数据库的密码的修改:
打成 war 包:
4.3 把这个 war 上传到 linux 的 tomcat 的 webapps 目录中
在 linux 中,退出 mysql 控制台界面使用ctrl+d;
如下图所示,tomcat 会自动针对 war 包进行解压缩,解压缩成功,基本上就是部署成功了.
4.4 通过浏览器来访问
49.235.129.183:8080/java109_blog_system/blog_list.html;
最终我们的博客系统就成功的传到了与云服务器上;
ps:本次的内容就到这里了,如果大家感兴趣的话就请一键三连哦!!!