admin管理员组

文章数量:1651796


文章目录

  • 1.Linux
    • 1.1 概述
    • 1.2 Linux命令
      • 1.2.1 路径操作
      • 1.2.2 目录操作
      • 1.2.3 vi/vim:创建/查看/编辑文件操作
      • 1.2.4 删除文件
  • 2.部署JDK
    • 2.1 上传JDK
    • 2.2 解压压缩包
    • 2.3 删除安装文件
    • 2.4 修改JDK名称
    • 2.5 检查JDK是否有效
    • 2.6 JDK环境变量配置
    • 2.7 补充知识
  • 3.Linux 项目部署
    • 3.1 项目搭建流程
    • 3.2 Linux安装Mariadb数据库
      • 3.2.1 下载MariaDB数据库
      • 3.2.2 确认下载
      • 3.2.3 安装完成提示
      • 3.2.4 数据库启动
      • 3.2.5 数据库初始化操作
      • 3.2.6 测试数据库用户名和密码是否有效
      • 3.2.7 Mysql数据库远程访问配置
        • 3.2.7.1 关于链接数据库的说明
        • 3.2.7.2 配置数据库权限配置说明
        • 3.2.7.3 配置Linux数据库权限
  • 4.配置Linux防火墙策略
    • 4.1 检查防火墙状态
    • 4.2 防火墙配置
    • 4.3 手动关闭防火墙
    • 4.4 手动开放防火墙端口(了解即可,不需要操作)
  • 5.数据库远程测试
    • 5.1 导入京淘数据库
    • 5.2 后端项目发布
      • 5.2.1 后端项目修改
      • 5.2.2 后端项目打包
      • 5.2.3 上传jar包文件
      • 5.2.4 发布项目
      • 5.2.5 项目测试
    • 5.3 jar包文件项目启动报错说明
    • 5.4 关于Linux 进程项说明
      • 5.4.1 查询进程
      • 5.4.2 杀死进程
    • 5.5 项目前后台发布区别
  • 6.安装Nginx服务器
    • 6.1Nginx安装步骤
      • 6.1.1下载地址
      • 6.1.2 上传安装包
      • 6.1.3 处理Nginx 压缩文件
      • 6.1.4 关于nginx 目录说明
      • 6.1.5 安装nginx服务器
      • 6.1.6 Nginx工作目录及命令说明
    • 6.2 上传前端静态资源
    • 6.3 修改nginx配置文件
    • 6.4 修改hosts文件
    • 6.5 项目发布测试
      • 6.5.1 后端测试
      • 6.5.2 前端测试
      • 6.5.3 图片测试
      • 6.5.4 路径说明
      • 6.5.5 易错项
      • 6.5.6 日志查看


1.Linux

1.1 概述

Linux,全称GNU/Linux,是一种免费使用和自由传播的类UNIX操作系统,其内核由林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)于1991年10月5日首次发布,它主要受到Minix和Unix思想的启发,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它支持32位和64位硬件,能运行主要的Unix工具软件、应用程序和网络协议。

Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。Linux有上百种不同的发行版,如基于社区开发的debian、archlinux,和基于商业开发的Red Hat Enterprise Linux、SUSE、Oracle Linux等。

2022年11月20日,Linux 提交了最后一批 drm-intel-next 功能补丁,Linux 6.2将迎来对英特尔锐炫独显的正式支持。

其相比于windows系统更加轻巧,更加安全,且系统稳定性更强。IOS系统是基于Linux系统的前身UNIX进行开发的,目前PC端的系统开发语言可分为汇编语言–>C语言–>UNIX–>Linux–>windows,ios等其他语言;

1.2 Linux命令

Linux命令全部是基于文件的,并且Linux中的目录都是树形结构,所以对于非专业人士来说,其复杂的操作方式是难以使Linux普及的原因之一;学习Linux最重要的就是熟练使用其各种命令,对于其常用的命令,菜鸟教程有详细的介绍,大家可以自行查阅:https://www.runoob/w3cnote/linux-common-command-2.html,这里只介绍几个高频使用的命令:

1.2.1 路径操作

检查IP地址:ifconfig/ip addr
输出当前所在位置的目录:pwd
自动补齐(例如我们想要输入路径home,我们可以只输入h然后使用此键自动补齐后续的ome):tab键
cd命令集(最基本的命令语句,必须熟练掌握):
- cd /:返回根目录
- cd ~:用户主目录
- cd .:当前目录
- cd ..:返回到上一级目录
- cd /usr/:进入usr目录
- cd -:返回上一个目录
- cd:直接回家

对于cd命令,我们这里还需要对其目录表示方法进行介绍,/xx/xx被称为绝对路径,例如cd /a/b 是指先跳转到根目录下,然后跳转到根目录下的a目录,最后跳转到a目录下的b目录,而xx/xx是相对路径,例如cd a/b 是指跳转到当前目录下的a目录,然后跳转到a目录下的b目录。

1.2.2 目录操作

  • mkdir:创建目录
  • mkdir a:创建a目录
  • mkdir -p a/b:创建a目录,并在a目录下创建b目录
  • mkdir -m 777 c:创建一个权限为777的c目录
  • rmdir:删除目录(如果目录里有文件,则不能用此命令)
  • mkdir --help:帮助,可以在这里查看更多命令

1.2.3 vi/vim:创建/查看/编辑文件操作

vi与vim命令本质都是一样的,可以将vim命令理解为增强版的vi命令,其完全兼容vi命令,并且拥有比vi命令更加通用的支持与功能:

  • ESC:退出编辑模式,回复到命令行模式
  • i:在光标开始前编辑
  • a:在光标后开始编辑
  • o:在当前行的下一行开始编辑
  • u:撤销之前的操作(需要先点击esc退出编辑模式后使用)
  • 底行操作:按住shift+冒号(:)
    • :q!:不保存退出
    • :wq!:保存退出

1.2.4 删除文件

  • rm:删除文件
  • rm n.txt:删除n.txt文件,提示y删除,n放弃
  • rm -f n.txt:删除n.txt文件,不提示
  • rm -rf dirname:不提示递归删除目录下的所有内容
  • rm -rf * 删除所有文件
  • rm -rf /* 删除所有子目录和所有文件(传说中的删库跑路)

2.部署JDK

我们首先需要使用mobaxterm远程链接工具在Linux服务器上部署JDK,方便后续对jar包进行编译运行;

2.1 上传JDK

我们首先使用 cd /usr/local/src/进入当前目录下:

然后将码云文件目录下的jdk包下载后拖入到当前目录下:

2.2 解压压缩包

在控制区输入下方的命令解压压缩包:tar -xvf jdk-8u51-linux-x64.tar.gz

2.3 删除安装文件

解压完成后,使用命令 rm -f jdk-8u51-linux-x64.tar.gz 删除压缩包:

2.4 修改JDK名称

使用命令mv jdk1.8.0_51 jdk1.8 修改jdk的名字:

2.5 检查JDK是否有效

通过下图中的命令,检查jdk是否有效:

2.6 JDK环境变量配置

打开配置文件命令:

vim   /etc/profile

配置信息:设定jdk环境

export JAVA_HOME=/usr/local/src/jdk1.8
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib

修改完成后输入:wq!保存并退出,使用:q!不保存强制退出。

2.7 补充知识

  1. 浏览器自动将http转化为https问题
    2. 设定安全策略

在谷歌浏览器地址栏输入:chrome://net-internals/#events进行修改,修改完成之后,需要将 浏览器清空缓存,之后重启浏览器,清除缓存的快捷进入方式为:ctrl + shift + delete

3.Linux 项目部署

3.1 项目搭建流程

  1. 安装Linux版本数据库
  2. 设置数据库权限
  3. 数据库通过Linux防火墙
  4. 安装Linux版本Nginx
  5. 配置Nginx服务
  6. 因为未购买域名,所以修改本地hosts文件实现本地访问

3.2 Linux安装Mariadb数据库

3.2.1 下载MariaDB数据库

测试: 当前虚拟机是否可以正确的链接外网.

命令:

yum  install mariadb-server      #安装mariadb数据库
yum  clean   all                 #清空已安装文件   如果下载失败之后执行

3.2.2 确认下载

下载完成后需要确认下载才会执行后续操作

3.2.3 安装完成提示

3.2.4 数据库启动

命令:

	1.   启动命令    [root@localhost src]# systemctl  start  mariadb
	2.   重启命令    [root@localhost src]# systemctl  restart  mariadb
	3.   关闭命令    [root@localhost src]# systemctl  stop  mariadb
	4.   设定开机自起 [root@localhost src]# systemctl  enable mariadb 
	5.   关闭开机自起 [root@localhost src]# systemctl  disable mariadb 

3.2.5 数据库初始化操作

使用启动命令启动数据库后,使用命令: mysql_secure_installation进行数据库初始化操作,:

注意要以我们服务器的设置保持一致:

3.2.6 测试数据库用户名和密码是否有效

3.2.7 Mysql数据库远程访问配置

3.2.7.1 关于链接数据库的说明

说明:

  1. 如果需要远程链接数据库必须通过防火墙
  2. 如果远程链接数据库,数据库中必须开启远程访问权限才行,否则拒绝链接.
3.2.7.2 配置数据库权限配置说明

这里我们不需要使用windows的数据库连接查看,只是为了展示数据库内容,方便大家了解后续需要使用的数据库内容:

3.2.7.3 配置Linux数据库权限
  1. 查询当前所有数据库

  2. 切换Mysql数据库

  3. 检查数据表

  4. 查询user表中的host/root/password

  5. 将host=“localhost” 改为 “%”

  6. 刷新数据库权限

4.配置Linux防火墙策略

4.1 检查防火墙状态

命令:firewall-cmd --state
注意此命令是Linux命令,需要使用ctrl+c退出数据库后操作,runing表示其是运行状态:

4.2 防火墙配置

说明:防火墙中有一个配置文件,表示当Linux系统启动时防火墙应该如何操作!!!我们这里需要告诉linux系统以后开机不需要启动防火墙,使用命令systemctl disable firewalld.service禁用防火墙,禁用后表示后续开启虚拟机将不开启防火墙,但是目前的防火墙还在,所以我们还需要使用systemctl enable firewalld.service命令关闭防火墙:

4.3 手动关闭防火墙

说明:通过命令手动将防火墙关闭
命令:

systemctl stop firewalld.service
systemctl start firewalld.service

4.4 手动开放防火墙端口(了解即可,不需要操作)

  1. 使用命令firewall-cmd --list-ports检查防火墙开放的端口

  2. 使用命令firewall-cmd --query-port 80/tcp检查端口是否开放

  3. 使用命令firewall-cmd --zone=public --add-port=80/tcp --permanent开启防火墙

  4. 使用命令firewall-cmd --zone=public --remove-port=9090/tcp --permanent移除端口

  5. 关于防火墙操作的解释
    –zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–remove-port=80/tcp #移除端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

  1. 使用命令firewall-cmd --reload重启防火墙

5.数据库远程测试

点击新建–>取名后输入对应的地址及密码,测试连接,测试连接成功后点击连接即可:

5.1 导入京淘数据库

  1. 我们登录此前的本地数据库,将jt.sql备份:

  2. 选择导出的位置

  3. 然后登录Linux数据库,点击导入刚才我们备份的数据库:

  4. 导入数据之后执行刷新即可.

    方式2:
    如果mysql数据库需要导入数据表命令如下:
    命令: source /xxx/xxxx/xxxx/jt.sql;

5.2 后端项目发布

5.2.1 后端项目修改

  1. 确认数据库的用户名和密码是否是刚才设置的linux数据的用户名密码:
  2. 修改数据库的用户名和密码

5.2.2 后端项目打包

需要对application.yml文件分别设置8091与8092后分别打包,共计打俩个jar包文件,每个jar包打包完成后需要将jar包文件保存到其他位置再打下一个包,不然会覆盖之前的文件:

5.2.3 上传jar包文件

然后我们在mobaxterm中新建tomcats目录,将jar包上传到当前目录下:

5.2.4 发布项目

使用命令java -jar 8091.jar将项目启动:

5.2.5 项目测试

最后在浏览器中输入地址http://192.168.126.129:8091/rights/getRightsList查看后台数据是否可以正常访问:

5.3 jar包文件项目启动报错说明


main方法的检查, 查看是否为主启动类的方法

5.4 关于Linux 进程项说明

当服务启动时,如果我们不小心关闭了窗口并不会结束进程,此时进程还是启动状态,此时我们想要再次启动此进程就会报端口占用错误,此时我们需要使用命令行进行进程的相关操作。

5.4.1 查询进程

  1. jps:检索java服务项
  2. 检索任意服务
    • 检索java服务:ps -ef | grep java
    • 检索mysql服务:ps -ef | grep mysql

5.4.2 杀死进程

关闭当前线程: ctrl + c,此操作只有在当前进程运行界面的时候才可以操作;
杀死进程:

  1. kill PID号 普通的杀死
  2. kill -15 PID号 较为强硬的杀死
  3. kill -9 PID号 强制杀死

5.5 项目前后台发布区别

前台发布:通过java -jar xxx.jar的方式启动项目 该项目与启动的终端绑定在一起. 如果终端关闭.则项目也会关闭.

后台发布:通过命令nohup java -jar xxx.jar => xxx.log的方式启动项目,关闭终端之后, 服务不会受到影响,需要注意的是,我们可以通过&符号进行连续操作,同时启动多台服务:

	 nohup java -jar jt-8091.jar => jt-8091.log &
	 nohup java -jar jt-8092.jar => jt-8092.log &

&符号表示其要进行连续操作,每次命令结束后,会继续等待下次命令输入继续执行。

6.安装Nginx服务器

6.1Nginx安装步骤

6.1.1下载地址

http://nginx.org/en/download.html

6.1.2 上传安装包

上传到指定目录中 /usr/local/src

6.1.3 处理Nginx 压缩文件

  1. 使用命令tar -xvf nginx-1.23.4.tar.gz解压nainx文件:

  2. 使用命令rm -f nginx-1.23.4.tar.gz删除安装文件

  3. 使用命令mv nginx-1.23.4 nginx-source修改文件名称

6.1.4 关于nginx 目录说明


改完名称之后的结果:

6.1.5 安装nginx服务器

说明:在nginx-source的根目录中执行如下命令

  1. 需要提前安装nginx的依赖项
 yum -y install gcc pcre-devel zlib-devel openssl openssl-devel
  1. 一般绿色的文件名表明其就是可执行脚本,我们使用 ./configure命令来执行配置脚本:

  1. 直接输入make命令执行编译

  1. 执行make install命令

问题补充: 如果 ./configure 报错没有权限,则执行命令chmod + x configure

6.1.6 Nginx工作目录及命令说明

  1. 使用命令whereis nginx查找工作目录
  2. 跳转到Nginx工作目录

  1. nginx命令执行需要进入nginx/sbin目录中:

    • 启动命令: ./nginx
    • 重启命令:./nginx -s reload
    • 关闭命令: ./nginx -s stop
  2. 可以在浏览器中输入ip地址+80访问nginx测试是否正常:

6.2 上传前端静态资源

说明: 将前端的web资源上传到nginx的根目录下.

  1. 前端文件位置

  2. 上传目录位置

6.3 修改nginx配置文件

需求说明:

  1. 实现图片反向代理
  2. 前端业务代理
  3. 后端tomcat集群代理
#配置图片代理 image.jt
	server {
		listen 80;
		server_name image.jt;
		location / {
			root /usr/local/src/images;
		}
	}
	
	#配置前端代理 www.jt
	server {
		listen 80;
		server_name www.jt;
		location / {
			root  dist;
			index index.html;
		}
	}

	#配置后台服务器集群
	upstream tomcats{
		server 192.168.126.129:8091;
		server 192.168.126.129:8092;
	}
	
	#配置后端代理 manage.jt
	server {
		listen 80;
		server_name manage.jt;
		location / {
			proxy_pass http://tomcats;
		}
	}

因为在mobaxterm中编辑比较麻烦,所以我们可以将文件下载到windows本地编辑成功之后,再将nginx.conf文件上传到Linux系统中(删除原有文件),上传新文件之后要重启nginx服务:

6.4 修改hosts文件

#  IP 与   域名映射
#	127.0.0.1       localhost
#	::1             localhost

#图片服务器配置
#127.0.0.1       image.jt.com
192.168.126.129  image.jt.com
#前端服务器配置
#127.0.0.1       www.jt.com
192.168.126.129  www.jt.com
#后端服务器配置
#127.0.0.1       manage.jt.com
192.168.126.129  manage.jt.com

6.5 项目发布测试

6.5.1 后端测试

测试地址: http://manage.jt/rights/findAll

6.5.2 前端测试

测试地址: http://www.jt

6.5.3 图片测试

1.实现图片的上传

2.检查上传路径

3.检查图片回显

6.5.4 路径说明

  1. 静态资源文件 dist /usr/local/nginx/dist
  2. nginx.conf /usr/local/nginx/config/nginx.conf
  3. nginx启动项目路径 /usr/local/nginx/sbin/
  4. tomcats发布路径 /usr/local/src/tomcats

6.5.5 易错项

  1. 查询表失败 可能是表字母大小写问题
  2. 数据库链接地址: root/root 3306端口
  3. image.properties 配置文件中 不要有多余的空格.
  4. nginx配置信息:
#配置图片代理
	server {
		listen 80;
		server_name image.jt.com;
		location / {
			root /usr/local/src/images;
		}
	}

	#2.配置tomcat服务器集群
	#2.1 本地IP访问  127.0.0.1:8091
	#2.2 远程访问    192.168.126.129:8091
	upstream tomcats {
		server 192.168.126.129:8091;
		server 192.168.126.129:8092;
	}
	#实现后端服务器代理
	server {
		listen 80;
		server_name manage.jt.com;
		location / {
			proxy_pass http://tomcats;
		}
	}

	#前端服务器代理
	server {
		listen 80;
		server_name www.jt.com;
		location / {
			root dist;
			index index.html;
		}
	}

6.5.6 日志查看

cat 输出文件所有的内容
more 输出文档所有的内容,分页输出,空格浏览下一屏,q退出
less 用法和more相同,只是通过PgUp、PgOn键来控制
tail 用于显示文件后几号,使用频繁
tail -10 nginx.conf 查看nginx.conf的最后10行
tail –f nginx.conf 动态查看日志,方便查看日志新增的信息
ctrl+c 结束查看

本文标签: 项目Linux