测试环境部署V1.0

测试环境部署V1.0

V1.0是纯手工部署。

后端部署
前置条件

我们后端项目需要java环境、maven环境。这个可以与开发确认需要提前安装哪些环境。

流程

①拉取代码到本地

②本地打包

③打好的包上传至服务器

④登录服务器,重启tomcat

操作实施
  • 拉取代码到本地
    • 确认源代码版本控制系统

      需要先确认项目使用的版本控制系统是啥,一般就是git、svn,我们项目用的是git。

    • 安装版本控制工具

      参考文章:git安装教程_dusty_zhan的博客-CSDN博客

    • 配置用户及认证凭据

      参考文章:关于Git的认证流程(绑定账号)_git绑定用户_Victor Cacilia的博客-CSDN博客

    • 了解项目分支

      • 查看当前仓库中的分支

        DELL@DESKTOP-15R0S26 MINGW64 /f/tools/project/whzz/sales (master)
        $ git branch
        * master
        
      • 查看远程仓库中的分支

        DELL@DESKTOP-15R0S26 MINGW64 /f/tools/project/whzz/sales (master)
        $ git branch -r
        ...
        

        了解分支是为了确认分支对应什么环境,一般测试环境、开发环境、预发布环境、线上环境都对应至少一个不同的分支。因此,如果需要快速搭建一个环境用作测试,了解分支是比较重要的。

        比如,线上问题排查及定位:

        我们现在有一个线上问题,需要马上排查处理。那我们需要以线上的环境去复现和定位问题。那一般就需要快速拉取线上分支的代码,连接线上最新的备份数据库,部署一个测试环境,进行测试。

        再比如,临时急需上线的需求:

        我们正在测试一个迭代,预计测试三天后上线。但是,突然产品带着热乎乎的需求笑意盈盈的向你走来,轻声的对你说,有一个临时的需求,今天就要上线。你怎么办?肯定是一边骂着nnd一边准备搭建一个临时的测试环境,当然这个环境拉取的分支肯定也是另一个分支了。

    • 拉取代码

      #进入存储项目的路径
      git clone [项目代码地址]
      
  • 本地打包
    • 确认环境

      先确认是否已具备java,maven环境。

      在cmd执行以下命令,查看jdk环境、以及maven的版本

      F:\tools\project\whzz\sales>
      
      F:\tools\project\whzz\sales>java -version
      java version "1.8.0_192"
      Java(TM) SE Runtime Environment (build 1.8.0_192-b12)
      Java HotSpot(TM) 64-Bit Server VM (build 25.192-b12, mixed mode)
      
      F:\tools\project\whzz\sales>mvn -v
      Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
      Maven home: F:\tools\maven\apache-maven-3.6.3\bin\..
      Java version: 1.8.0_192, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_192\jre
      Default locale: zh_CN, platform encoding: GBK
      OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
      

      如果没有显示版本号,那可能是没配置环境变量或者没安装。

    • 打包

      在存储项目的路径下,输入cmd,进入命令行(进入后,默认就在存储项目的路径)
      请添加图片描述

      #maven打包命令,clean是先清除之前打好的包,package是执行打包
      mvn clean package
      

      请添加图片描述

  • 上传至服务器
    • 定位打好的包

      打好的包一般以 [项目名称.jar] 或 [项目名称.war] 的形式,存放在“项目路径*web\target”目录下。

      ps:jar包还是war包是由项目pom.xml文件中标签决定的,标签后是jar就会打jar包,是war就会打war包。jar包和war包的部署流程不同,我这边项目是打war包,所以主要说明war包部署。

      请添加图片描述

    • 上传到服务器

      1. 连接服务器

        可以使用xshell连接,具体连接教程参考:windows下使用XShell上传文件至服务器_windows系统往mac系统xshell上传文件_tran_sient的博客-CSDN博客

      2. jar包部署

        参考文章:java中jar包部署到服务器过程_Aries263的博客-CSDN博客

      3. war包部署

        上传文件

        请添加图片描述

        重启tomcat

        [root@localhost logs]# systemctl restart tomcat
        

        查看tomcat进程

        [root@localhost logs]# ps -ef|grep tomcat
        root       7876      1 86 00:26 ?        00:00:34 /usr/local/jdk/jdk1.8.0_202/bin/java -Djava.util.logging.config.file=/usr/local/tomcat/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -Dspring.profiles.active=test -Djavax.servlet.request.encoding=UTF-7 -Dfile.encoding=UTF-8 -Duser.language=zh_CN -Dsun.jnu.encoding=UTF-8 -Duser.timezone=GMT+08 -Djdk.tls.ephemeralDHKeySize=2048 -Djava.protocol.handler.pkgs=org.apache.catalina.webresources -Dorg.apache.catalina.security.SecurityListener.UMASK=0027 -Dignore.endorsed.dirs= -classpath /usr/local/tomcat/tomcat/bin/bootstrap.jar:/usr/local/tomcat/tomcat/bin/tomcat-juli.jar -Dcatalina.base=/usr/local/tomcat/tomcat -Dcatalina.home=/usr/local/tomcat/tomcat -Djava.io.tmpdir=/usr/local/tomcat/tomcat/temp org.apache.catalina.startup.Bootstrap start
        root       8263 105617  0 00:27 pts/1    00:00:00 grep --color=auto tomcat
        [root@localhost logs]# 
        

        通过tomcat的进程id7876,查看tomcat占用端口

        [root@localhost logs]# netstat -anop|grep 7876
        tcp6       0      0 :::8050                 :::*                    LISTEN      7876/java            off (0.00/0/0)
        tcp6       0      0 192.168.63.130:45930    192.168.2.13:3307       ESTABLISHED 7876/java            keepalive (7163.71/0/0)
        tcp6       0      0 192.168.63.130:45902    192.168.2.13:3307       ESTABLISHED 7876/java            keepalive (7163.71/0/0)
        ...
        

        从上面可以看到我这边占用的端口是8050,默认是8080。因为我是有改过tomcat的端口号。
        如何修改呢?通过修改tomcat安装路径下conf目录下的 server.xml文件。
        如果不知道tomcat的安装路径,可以通过whereis 命令查看

        [root@localhost sbin]# whereis tomcat
        tomcat: /usr/local/tomcat
        

        在server.xml文件修改tomcat的默认端口

        怎么修改tomcat的占用端口,可以参考这篇文章:Linux下修改tomcat端口号

  • 验证部署

    查看tomcat运行日志

    进入tomcat安装目录/logs,再查看日志文件

    [root@localhost webapps]# cd ../logs
    [root@localhost logs]# cat catalina.out 
    

    日志文件看到有项目中的sql在运行。

    通过postman调用接口

    接口有返回,说明后端项目已经部署成功了。

    !(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20230727155013221.png)]](https://img-blog.csdnimg.cn/9b3a2309f66b4eecbff579d047e84aec.png)

前端部署
前置条件

确保前端环境已配置好,我们项目的前端依赖是nodejs,可以向开发确认一下需要什么样的环境。

最好是确定一下安装什么版本比较稳定,我之前安装的nodejs版本过高,导致很多依赖都下载不下来,版本不兼容,就无法成功打包

流程

①拉取代码到本地

②本地打包

③打好的包上传至服务器

④登录服务器,重启nginx

操作实施
  • 拉取代码到本地

    与后端部署步骤中拉取代码一致

  • 本地打包
    • 确认环境

      先确认是否已具备nodejs环境。

      在cmd执行以下命令,查看nodejs版本

      F:\tools\project\whzz\front>node -v
      v14.21.3
      

      如果没有显示版本号,那可能是没配置环境变量或者没安装。

    • 修改后端连接地址

      因为我们的项目现在有五套环境:开发,测试,预发布,生产,线上备份,因此需要配置前端打包环境变量,来指定前端连接哪个后端地址(可以查看这篇文章:(前端环境部署如何配置后端接口地址_后端地址_IT 哈的博客-CSDN博客)了解学习)。

      一般是在前端项目的package.json文件内修改,修改后保存即可。如果接口有统一的路径,需要加上。

    • 打包

      在存储项目的路径下,输入cmd,进入命令行,执行以下命令:

      #初始化安装依赖
      F:\tools\project\whzz\front>npm install
      

      我这边会有这样的提示,好像也不影响

      在这里插入图片描述

      再执行打包命令:

      #这里因为是打test环境的包,所以会指定test脚本
      F:\tools\project\whzz\front>npm run build:test
      

      #test表示测试环境,这里有一个前端打包环境变量的概念,可以参考这边文章([前端环境部署如何配置后端接口地址](前端环境部署如何配置后端接口地址_后端地址_IT 哈的博客-CSDN博客))学习。

      打包完成后,会提示:
      在这里插入图片描述

      也有可能运行打包命令后,会出现报错,比如:
      error code ELIFECYCLE 21 error errno 1 22 error sales@1.0.0 build:test: set external_url=http://119.23.31.110:80&& set server_url=http://192.168.1.66:8990&& set activityCodePre=http://jystest.zzcfo.cn/#/activityAddCustomer/index?&& set activityCodePres=http://jystest.zzcfo.cn/#/registrationPage?&& set agentRegister=http://jystest.zzcfo.cn/#/account/registe?&& node build/build.js 22 error Exit status 1 23 error Failed at the sales@1.0.0 build:test script.

      不要惊慌,小问题(虽然我也不懂)。

      但是可以看大佬是如何解决的:
      解决方案参考文章:[解决]npm ERR! code ELIFECYCLE - 简书 (jianshu.com)

  • 上传到服务器
    • 定位打好的包

      打好包后,一般会在项目路径下生成一个 dist 文件。

      在这里插入图片描述

      上传到服务器存放项目的路径下,并且复制路径(操作过程跟后端部署里上传到服务器是一样的,复制路径是后面修改nginx配置需要)

      我这边dist文件存放的路径:
      在这里插入图片描述

  • 重新加载nginx
    • 配置nginx文件

      需要修改服务器上{nginx安装路径}/conf/nginx.conf文件配置。
      我不太习惯vim下编辑,就通过editplus修改的。

      下载editplus后,可以配置连接服务器。参考文章:Editplus 远程连接虚拟机

      在这里插入图片描述

    • 重新加载nginx

      在nginx安装路径sbin目录下输入命令,重新加载nginx(一般是/usr/local/nginx/sbin)

      [root@localhost sbin]# nginx -s reload
      

      tips:

      如果访问不了的话,可以检查一下前端端口是否被占用。

      #检查80端口是否被占用
      [root@localhost sbin]# netstat -ntlp | grep 80
      tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      88029/sshd: root@pt 
      tcp        0      0 0.0.0.0:8060            0.0.0.0:*               LISTEN      96008/nginx: worker 
      tcp6       0      0 :::8050                 :::*                    LISTEN      7876/java           
      tcp6       0      0 ::1:6010                :::*                    LISTEN      88029/sshd: root@pt 
      tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      7876/java
      

      如果端口被占用,有两个解决方法,一是杀掉占用端口的进程;二是修改nginx端口

      #一 杀掉占用端口的进程
      [root@localhost sbin]# netstat -ntlp | grep 80
      tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      101354/nginx: worke 
      tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      88029/sshd: root@pt 
      tcp6       0      0 :::8050                 :::*                    LISTEN      7876/java           
      tcp6       0      0 ::1:6010                :::*                    LISTEN      88029/sshd: root@pt 
      tcp6       0      0 127.0.0.1:8005          :::*                    LISTEN      7876/java           
      [root@localhost sbin]# kill -9 101354 #进程id
      
      #二 修改nginx配置文件中的端口
      修改配置文件nginx.conf(一般是/usr/local/nginx/conf路径下)如下:
       server {
              listen       80;  #可以修改为其他端口号
              server_name  192.168.63.131;
      
              #charset koi8-r;
      
              #access_log  logs/host.access.log  main;
      #注意:
      #修改的端口号,要是防火墙已经启用的
      #启用某个端口的命令:
      [root@localhost sbin]# firewall-cmd --zone=public --add-port=端口号/tcp --permanent
      

      参考文档:Linux下开启、关闭端口的方法>

最终检查项目是否成功部署

访问前端地址,查看后端接口是否为配置的地址,是否能正常登录。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值