项目部署总结记录

在对于编程知识了解的还是一知半解的时候,类似于部署项目这种话术在我看来是陌生并且伴随着恐惧的,那种恐惧来源于未知。所以,在学会的现在,做一个总结记录。这篇博客自然也就是针对和当时的那个我水平差不多的同学的,大佬们可以略过了。

所谓项目部署,其实是分项目和部署两个部分,那么项目就是代码构建的一个系统,就像学生管理系统啊什么的,但是代码只能在你电脑上,也就是本地运行,并且还得打开对应的开发工具,那么部署就很好的解决并相对完美的解决了这么麻烦的问题。首先你要学会什么是客户端和服务器,然后明白,你平时访问就是客户端,那么你的代码就被打包放到了服务器上一直运行着,所以你才能访问到。废话结束。步骤如下(以springboot项目为例):

前后端不分离的项目:

手动部署:

1、通过maven 的 package命令,将项目打包成jar包

2、在linux服务器上,安装相应的软件,jdk,mysql,redis等等

3、将jar包放到服务器上。然后后台运行jar包。

4、客户端访问项目。结束!

自动部署:

这个就不是自己去做了,那么自动部署需要做的准备工作就是将自己的代码放到git上,并且在linux上安装git,然后在服务器上写一段自动部署的脚本。直接执行脚本就可以自动拉取代码、打包、运行。

前后端分离的项目:

除了服务器部署好之后,还需要用到nginx的反向代理。


安装部分:

安装包简介

二进制发布包

 软件已经针对具体平台编译打包发布,开发人员拿到安装包之后只要解压,修改配置即可使用

源码包

 此种安装包软件以源码工程的形式发布,需要程序员自行编译安装,它一般包含四个步骤:解压------>配置------->编译-------->安装    

RPM包

 这种包是redhat已经按照包管理规范对软件进行打包之后发布出来的一类包,对于rpm包的安装,有两种方式:
 1  直接下载rpm包,然后使用rpm命令安装[A --> B--> C]
 2  采用yum命令联网安装[它会自动联网下载rpm包]
 rpm命令安装
     语法:  rpm  参数  安装包   
     参数:
         -v 显示指令执行过程
         -h 表示显示进度
         -q 查询包是否已经安装
         -a 查看所有安装的软件
         -i 安装软件
         -U 更新升级
         -e 卸载软件
         --nodeps 不验证软件的相互关联性 
     常用命令:
         安装:rpm  -ivh  rpm文件   [不重要  rpm -ivh reggie.rpm]
         升级:rpm  -Uvh  rpm文件   [不重要  rpm -Uvh reggie.rpm]
         卸载:rpm  -e --nodeps 软件名
         查看所有安装的软件:rpm -qa | grep 具体名
 yum安装
     软件已经以RPM规范打包,但发布在了网络上的一些服务器上,可用yum在线安装服务器上的rpm软件,并且会自动解决软件安装过程中的库依赖问题。
     yum install 软件名      (yum install ksh)
     yum localinstall rpm包  使用yum安装本地rpm包[此过程会自动解决依赖]

安装JDK

官方提供的是二进制安装包

#1 解压
    tar -zxvf /usr/local/src/jdk-8u181-linux-x64.tar.gz -C /usr/local/
#2 测试
    /usr/local/jdk1.8.0_181/bin/java -version
#3 配置环境变量
# 如果想在系统的任何位置都能使用到java命令,就需要将其配置到环境变量文件,此文件位置在/etc/profile,
    # 使用vim打开配置文件
    vim /etc/profile
    
    export JAVA_HOME=/usr/local/jdk1.8.0_181
    export PATH=$PATH:$JAVA_HOME/bin
#4 更新配置文件
    source /etc/profile
#5 测试
    java -version 

安装MySQL

官方提供的是rpm包

#1 查看CentOS是否自带的mysql
    rpm -qa | grep -i mysql
    rpm -qa | grep -i mariadb
#2 卸载mariadb
    rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

#3 安装依赖包 [复制]
    yum install gcc-c++ pcre pcre-devel zlib zlib-devel openssl openssl-devel -y 
#4 升级包依赖 [复制]
    yum install libgcc.i686 -y
    
    
#5 安装服务端
    yum localinstall /usr/local/src/MySQL-server-5.5.49-1.linux2.6.i386.rpm -y
#6 安装客户端
    yum localinstall /usr/local/src/MySQL-client-5.5.49-1.linux2.6.i386.rpm -y
#7 启动mysql服务器 
    systemctl start mysql 
#8 设置root用户密码
    /usr/bin/mysqladmin -u root password 'root'
    
    
#9 防火墙放行端口
    firewall-cmd --zone=public --add-port=3306/tcp --permanent
    firewall-cmd --reload
#10 开启mysql的远程登录权限
    #使用mysql客户端登录mysql,然后修改远程连接设置[下面的>不要复制 ,注意修改成自己windows中数据库的密码]
    mysql -uroot -proot
    > CREATE USER 'root'@'%' IDENTIFIED BY 'root';
    > GRANT ALL PRIVILEGES ON *.* TO 'root'@'%';
    > FLUSH PRIVILEGES;
    > exit;
    
#11 MySQL编码问题
# Mysql安装完毕后默认的字符集为ISO-8859-1,需要在配置文件中修改成UTF-8,并重启服务
    # 查找mysql的配置文件
        find / -name 'MySQL*'
    # 将文件复制到/etc目录下,并重新命名为my.cnf(这是服务启动时默认读取的位置)
        cp /usr/share/doc/MySQL-server-5.5.49/my-medium.cnf   /etc/my.cnf
    # 编辑/etc/my.cnf,在[mysqld]选项下添加字符集的设置
        vim /etc/my.cnf
        [mysqld]
        character-set-server=utf8
    # 重新启动mysql的服务
#12 服务重启
    systemctl restart mysql 

 

安装Redis

官方提供的是源码包

#1 安装需要的依赖[复制]
    yum  install gcc automake autoconf libtool make -y    
#2 解压
    tar -zxvf /usr/local/src/redis-3.0.7.tar.gz -C /usr/local/src/
#3 编译
    cd /usr/local/src/redis-3.0.7/
    make
#4 安装
     make PREFIX=/usr/local/redis install
     
#5 添加配置文件, 将redis配置文件复制到redis的安装目录的bin目录下
    cp /usr/local/src/redis-3.0.7/redis.conf /usr/local/redis/bin/
#6 修改配置文件, 编辑配置文件,将redis服务修改成后台运行
    vim /usr/local/redis/bin/redis.conf
    将daemonize no选项修改成daemonize yes
    设置bind为 bind  0.0.0.0
#7 启动redis服务
    /usr/local/redis/bin/redis-server /usr/local/redis/bin/redis.conf
#8 防火墙放行端口
    firewall-cmd --zone=public --add-port=6379/tcp --permanent
    firewall-cmd --reload
#9 [非必要操作]关闭Redis
    # 查看运行的redis进程
        ps -ef | grep redis
    # 杀掉redis的进程
        kill -9 2738[此处是redis进程号] 

项目部署

环境确认

现在我们已经安装好了项目运行所需要的所有软件,接下来就可以进行项目部署了,

在部署之前一定要再次确定,所有有的软件是否全部启动,这是可以使用查看端口的命令netstat -an

 

数据库迁移

① 将本地数据导出成sql文件  

② 将sql文件导入服务器中的数据库

 后台运行jar包命令:

nohup java -jar /usr/local/reggie-web-manage-1.0-SNAPSHOT.jar --server.port=9090  > /opt/reggie-web-manage.log &

 

放行端口

使用下面命令,放行防火墙项目的tomcat端口

firewall-cmd --zone=public --add-port=9090/tcp --permanent
firewall-cmd --reload

在程序部署完毕之后,为了项目安全,应该关闭掉除了tomcat之外所有端口

[root@localhost opt]# firewall-cmd --zone=public --remove-port=3306/tcp --permanent
success
[root@localhost opt]# firewall-cmd --zone=public --remove-port=6379/tcp --permanent
success
[root@localhost opt]# firewall-cmd --reload
success
[root@localhost opt]# firewall-cmd --zone=public --list-ports
9090/tcp

安装git :

# 1. 安装git软件
yum install git -y

# 2. 尝试下载reggie代码(注意:这个代码必须是打jar包的版本)
cd /usr/local/
git clone https://gitee.com/xiaomingguo/reggie-parent.git  -b dev

安装maven:

# 1. 解压软件
tar -zxvf /usr/local/src/apache-maven-3.5.4-bin.tar.gz -C /usr/local

# 2. 修改配置文件,在最后加入如下内容
vim /etc/profile
export MAVEN_HOME=/usr/local/apache-maven-3.5.4
export PATH=$PATH:$MAVEN_HOME/bin

# 3. 更新配置
source /etc/profile

# 4. 修改maven配置文件settings.xml,配置本地仓库和中央仓库镜像
vim /usr/local/apache-maven-3.5.4/conf/settings.xml

配置settimg.xml中的仓库和镜像:

<localRepository>/usr/local/apache-maven-3.5.4/repo</localRepository>

<mirror> 
    <id>alimaven</id> 
    <mirrorOf>central</mirrorOf> 
    <name>aliyun maven</name> 
    <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
</mirror> 

自动化部署脚本:

Shell脚本,是一种Linux系统中的脚本程序。

/usr/local/下创建bootStart.sh脚本,内容如下

#!/bin/sh
echo =================================
echo  自动化部署脚本启动
echo =================================

echo 停止原来运行中的工程
APP_NAME=reggie-web-manage-1.0-SNAPSHOT

tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'`
if [ ${tpid} ]; then
    echo 'Kill Process!'
    kill -9 $tpid
else
    echo 'Stop Success!'
fi

echo 准备从Git仓库拉取最新代码
cd /usr/local/reggie-parent

echo 开始从Git仓库拉取最新代码
git pull
echo 代码拉取完成

echo 开始打包
output=`mvn clean package -Dmaven.test.skip=true`

cd reggie-web-manage/target

echo 启动项目
nohup java -jar reggie-web-manage-1.0-SNAPSHOT.jar --server.port=9090 > /usr/local/reggie-parent/reggie-web-manage/reggie-web-manage.log &
echo 项目启动完成

为脚本添加执行权限,然后运行脚本 :

# 添加执行权限
chmod +x /usr/local/bootStart.sh

# 执行脚本
/usr/local/bootStart.sh

自动部署完成;


nginx反向代理:

 详细的可以看这个博客,解释的非常详细:

Nginx配置——反向代理_止步前行的博客-CSDN博客_nginx反向代理Nginxhttps://blog.csdn.net/zxd1435513775/article/details/102508463

 那么在这里简单的说一下,就是将默认的跳转路径通过反向代理的方式访问服务器的就可以了。

具体操作方式:

客户端安装好nginx,也就是你的电脑上。

绿色版解压时候,打开文件夹,找到conf-->nginx.conf 这个文件,打开之后:

把location后面的东西改成这个熊样子:

 location / {
           proxy_pass   服务器项目地址,写全乎点,别丢三落四的
        }
        

然后,访问nginx,默认是80端口,然后就发现能访问到你已经部署好,并且启动了的项目了。

项目部署就完事了。 

 

 

 

 

 

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值