第14章 项目部署(Linux)

一、课程概述

二、Linux概述

1、系统安装

(1)介绍

Linux系统分为内核版和发行版

内核版

  • 由Linux核心团队开发、维护

  • 免费、开源

  • 负责控制硬件

发行版

  • 基于Linux内核版进行扩展

  • 由各个Linux厂商开发、维护

  • 有收费版本和免费版本

Linux系统发行版:

  • Ubuntu:以桌面应用为主,免费

  • RedHat:面向企业用户,收费

  • CentOS:RedHat的社区版,免费 √

  • Fedora:功能完备、快速更新,免费

  • openSUSE:对个人完全免费、图形界面华丽

  • 红旗Linux:北京中科红旗软件技术有限公司开发

Linux系统的安装方式

物理机安装:直接将操作系统安装到服务器硬件上

虚拟机安装:通过虚拟机软件安装

虚拟机(virtualMachine)指通过软件模拟的 具有完整硬件系统功能、运行在完全隔离环境中的完整计算机系统。

  • VMWare WorkStation √

  • virtualBox

  • VMLite WorkStation

(2)安装

双击安装包,安装

检查两块虚拟网卡是否存在,存在表示安装成功,这两块网卡是windows与Linux通信的桥梁

安装完毕之后,需要配置网络,才可以在windows系统上连接虚拟机上的linux系统

解压CentOS7,双击该文件完成镜像的挂载

VMware中打开该虚拟机,选择我已移动该虚拟机,用户名root密码1234

小结

2、远程连接

(1)介绍

常用的SSH(SecureShell,安全外壳协议)远程连接工具:Putty、SecureCRT、Xshell、FinalShell等。

(2)安装

双击安装完成后

连接虚拟机镜像服务器

双击打开即可成功使用

3、目录结构

Linux系统中的目录特点:

  • 1./是所有目录的顶点

  • 2.目录结构像一颗倒挂的树

Linux系统中的路径/itheima与itheima有区别吗?

/itheima是绝对路径,是指根目录/下的itheima目录

ithiema是相对路径,是指当前目录下的itheima目录

三、Linux常用命令

Linux命令格式:command -options parameter

说明:

  • command:命令名

  • -options:选项,可用来对命令进行控制,也可以省略(可选)

  • parameter:参数,可以是零个、一个或多个(可选)

使用技巧:

  • Tab键自动补全
  • 连续两次Tab键,给出操作提示
  • 使用上下箭头快速调出曾经使用过的命令
  • 使用clear命令或ctrl+l快捷键实现清屏

1、目录操作命令

(1)ls

作用:显示指定目录下的内容

语法:ls -al dir

选项:

-a:显示所有文件及目录(·开头的隐藏文件也会列出)

-l:除文件名称外,同时将文件类型(d表示目录,-表示文件)、权限、拥有者、文件大小等信息详细列出

提示:

由于我们使用ls命令时经常需要加入-l选项,所以LINUX为ls-l命令提供了一种简写方式,即ll

(2)cd

作用:用于切换当前工作目录,即进入指定目录

语法:cd dirName

说明:

  • .表示目前所在的目录

  • ..表示目前目录位置的上级目录

  • ~表示用户的home目录

举例:

  • cd .. 切换到当前目录的上级目录

  • cd ~ 切换到用户的home目录

  • cd /usr/local 切换到/usr/local目录

  • cd - 切换到上一次所在目录

(3)mkdir

作用:创建目录

语法:mkdir ─p dirName

说明:

-p:确保目录名称存在,不存在的就创建一个。通过此选项,可以实现多层目录同时创建

举例:

mkdir itcast 在当前目录下,建立一个名为itcast的子目录 mkdir -p itcast/test 在itcast目录中创建test子目录,若itcast目录不存在,则建立一个

(4)rm

作用:删除文件或者目录

语法:rm -rf name

说明:

-r:将目录及目录中所有文件(目录)逐一删除,即递归删除

-f:无需确认,直接删除

举例:

rm -r itcast/

删除名为itcast的目录和目录中所有文件,删除前需确认

rm -rf itcast/

无需确认,直接删除名为itcast的目录和目录中所有文件

rm -fhello.txt 无需确认,直接删除hello.txt文件

2、文件操作命令

(1)cat

作用:用于显示文件的所有内容

语法:cat -n fileName

说明:-n:由1开始对所有输出的行数编号

举例:

cat /etc/profile

查看/etc目录下的profile文件内容

(2)more

作用:以分页的形式显示文件内容

语法:more fileName

操作说明:

回车键,向下滚动一行;

空格键,向下滚动一屏;

b,返回上一屏;

q或CtrI+C,退出more

举例:

more /etc/profile

以分页方式显示/etc目录下的profile文件内容

(3)head

作用:查看文件开头的内容

语法:head -n fileName

说明:

n:输出文件开头的n行内容

举例:

head 1.log

默认显示1.log文件开头的10行内容

head -20 1.log

显示1.log文件开头的20行内容

(4)tail

作用:查看文件末尾的内容

语法:tail -nf fileName

说明:

n:输出文件末尾的n行内容

f:动态读取文件末尾内容并显示,通常用于日志文件的内容输出

举例: tail 1.log 默认显示1.log文件末尾10行的内容 tail -20 1.log 显示1.log文件末尾20行的内容 tail -f 1.log 动态读取1.log文件末尾内容并显示(实时刷新)

3、拷贝移动命令

(1)cp

(2)mv

4、打包压缩命令

(1)tar

(2)

5、文本编辑器命令

(1)vi

(2)vim

6、查找命令

(1)find

(2)grep

四、Linux软件安装

1、JDK安装

操作步骤:

(1)上传安装包

使用FinalShell自带的上传工具将jdk的二进制发布包上传到Linux

(2)解压安装包

命令为

tar -zxvf jdk-17.0.10_linux-x64_bin.tar.gz -C /usr/local

(3)配置环境变量

使用vim命令修改/etc/profile文件,在文件末尾加入如下配置

export JAVA_HOME=/usr/local/jdk-17.0.10

export PATH=JAVA_HOME/bin:PATH

(4)重新加载profile文件

使更改的配置立即生效,命令为source/etc/profile

(5)检查安装是否成功

命令为java -version

2、MySQL安装

(1)准备工作

卸载Linux系统中自带的mysql/mariadb安装包,否则MySQL将安装失败

rpm -qa | grep mariadb

rpm -e -nodeps mariadb-libs-5.5.60-1.el7_5.x86_64

(2)上传安装包

下载并上传mysql安装包

mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

解压安装包到当前目录,并将解压后的文件夹移动到/usr/local目录下,改名为mysql

tar -xvf mysql-8.0.30-linux-glibc2.12-x86_64.tar.xz

(3)配置环境变量

(编辑/etc/profile,追加内容) export MYSQL_HOME=/usr/local/mysql export PATH=MYSQL_HOME/bin:PATH

(4)注册MySQL为系统服务

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql chkconfig--add mysql

(5)初始化数据库

groupadd mysql useradd -r -g mysql -s /bin/false mysql mysqld--initialize--user=mysql--basedir=/usr/local/mysql--datadir=/usr/local/mysql/data 初始化完毕后,日志中会输出mysql的root用户的临时密码,记得复制记录下来。

(6)启动服务登录MySQL

systemctl start mysql

mysql -uroot-pxxxxx

(7)配置MySQL的root用户的密码,授权远程访问

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '1234';

创建用户、分配权限、刷新权限

CREATE USER'rOot'@'%' IDENTIFIED BY '1234';

GRANT ALLPRIVILEGES ON . TO 'roOt'@'%';

FLUSH PRIVILEGES;

(8)远程访问测试

连接未能成功,因为有防火墙的存在

mysql -h 192.168.100.128 -p3306 -uroot -p1234

3、MySQL安装(防火墙)

(1)防火墙操作

查看防火墙状态(systemctl status firewalld、firewall-cmd --state)

关闭防火墙(systemctl stop firewalld)

开启防火墙(systemctl start firewalld)

永久关闭防火墙(systemctl disable firewalld)

开放指定端口(firewall-cmd --zone=public --add-port=8080/tcp --permanent)

关闭指定端口(firewall-cmd --zone=public --remove-port=8080/tcp --permanent)

立即生效(firewall-cmd --reload)

查看开放的端口(firewall-cmd --zone=public --list-ports)

注意:1、systemctl是管理Linux中服务的命令,可以对服务进行启动、停止、重启、查看状态等操作2、firewall-cmd是Linux中专门用于控制防火墙的命令3、为了保证系统安全,生产服务器的防火墙不建议关闭

(2)datagram连接Linux数据库

导入sql文件

4、Nginx安装

安装nginx运行时需要的依赖:yum install -y pcre pcre-devel zlib zlib-devel openssl openssl-devel

上传nginx的源码包

解压源码包到当前目录:tar -zxvf nginx-1.20.2.tar.gz

进入到解压目录(cd nginx-1.20.2)后,执行指令: ./configure --prefix=/usr/local/nginx

执行编译nginx的指令:make

执行安装nginx的指令,安装到上述指定的 /usr/local/nginx 目录:make install

进入到nginx安装目录/usr/local/nginx,启动nginx服务:sbin/nginx

sql防火墙开放80端口

五、项目部署

1、前端部署

1.将"资料\06.项目部署\前端\页面资源"文件夹下的打包好的静态资源,上传到nginx的html目录中。

2.配置nginx的配置文件,在conf/nginx.conf中配置反向代理服务器及路径重写规则。

3.在nginx的安装目录中,执行sbin目录下的nginx命令启动nginx服务:sbin/nginx或sbin/nginx -s reload

停止Nginx服务:sbin/nginx -s quit

2、后端部署

(1)打包

执行maven的父工程中的package生命周期,对项目进行打包 【打包之前,先连接上服务器数据库,先测试通过】。

改一下数据库配置

TypeScript 复制代码
  datasource:
    url: jdbc:mysql://192.168.100.128:3306/tlias
    driver-class-name: com.mysql.cj.jdbc.Driver
    username: root
    password: 1234

改一下日志文件存放路径

XML 复制代码
<FileNamePattern>/user/local/tlias-app/tlias-%d{yyyy-MM-dd}-%i.log</FileNamePattern>

Maven生命周期跳过单元测试test,执行打包操作

(2)上传

在linux服务器的/usr/local目录下,创建一个目录tlias-app,将jar包上传到服务器的 /usr/local/tlias-app 目录中。

然后在命令行执行命令,运行jar包 :java -jar xxxxxx.jar

(3)配置

配置阿里云账户密码的环境变量

上述执行运行jar包之后,会占用前台窗口, 窗口关闭服务也就停了。可以使用 nohup 指令,后台运行服务,执行指令:

nohup java -jar xxxxxx.jar &> tlias.log &

nohup java -jar tlias-web-management.jar &> tlias.log &

查看进程:ps -ef | grep xxxx

杀死进程:kill -9 进程ID

Linux 中的特殊符号:

|: 管道符。将前面命令的输出,作为后面命令的输入。如: ps -ef | grep java

>与 >> : 重定向符号。将前面的文本内容,输出到后面的文件中(> : 覆盖重定向,>> : 追加重定向)。 如: echo 'Hello Linux' > 1.log

相关推荐
智海深蓝1 小时前
智慧渔业海上养殖数字孪生实践方向与难点拆解分析
java·前端·网络
2601_955760071 小时前
Claude API 多人协作中的版本管理方法
java·ai编程
梦想的旅途22 小时前
企业微信API二次开发:外部群模块功能清单与全场景对接
java·python·企业微信
校招VIP2 小时前
[校大]27届东华理工大学JAVA简历:中厂简历通过率30%
java·秋招·校招·实习·产品岗·27届
老白干2 小时前
基于 Spring AOP 的操作日志记录:以 DeptController 增删接口为例
java·python·spring
晚安code3 小时前
Java编程规范避坑指南:阿里开发手册15条强制规约实战解析
java·后端
小蒜学长4 小时前
“守望自然”招募志愿者环保行动网站的设计与实现(代码+数据库+LW)
java·数据库·spring boot·后端
萧瑟余晖4 小时前
Java深入解析篇十八之响应式编程
java·开发语言
IKUN家族5 小时前
Spring MVC(五)
java·spring·mvc