项目部署总结

news2024/12/23 5:21:14

1、安装jdk

第一步:上传jdk压缩安装包到服务器

第二步:将压缩安装包解压

tar -xvf jdk-8uXXX-linux-x64.tar.gz

第三步:配置环境变量

编辑/etc/profile文件,在文件末尾添加以下内容:

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

第四步:应用环境变量

执行以下命令使配置生效:

source /etc/profile

第五步:验证安装:

执行以下命令检查JDK版本:

java -version

使用yum命令一步安装jdk

yum install java-1.8.0-openjdk-devel

2、安装tomcat

第一步:上传tomcat压缩安装包到服务器

第二步:将压缩安装包解压

tar -xvf apache-tomcat-xxx.tar.gz

第三步:进入conf/server.xml修改端口号8080为80(可忽略)

第四步:进入bin目录启动tomcat:./startup.sh

第五步:验证Tomcat是否启动: 浏览器中输入服务器IP和端口(默认为8080),看是否能够看到Tomcat的默认页面。

关闭tomcat:./shutdown.sh

3、安装redis

第一步:上传redis压缩安装包到服务器

第二步:将压缩安装包解压

tar -xvf redis-xxx.tar.gz

第三步:进入安装包,编译redis:make

cd redis-5.0.4
make

第四步:安装redis: make install

make install

第五步:根据需要修改redis的配置文件,redis.conf 下面是对配置文件中关键参数的说明

①bind: 127.0.0.1(注释掉):bind指令用于设置Redis服务器监听的IP地址。当bind被设置为

127.0.0.1时,意味着Redis服务器只监听来自本机(localhost)的连接请求。如果希望Redis监听特定的网络接口,你可以指定该接口的IP地址。另外,如果你希望Redis接受来自任何IP地址的连接(不推荐,除非有额外的安全措施),你可以将bind设置为0.0.0.0或者注释掉这一行。

②protected-mode yes(设置为no):用于设置Redis实例的保护模式。这个设置主要用于保护Redis服务器免受未授权访问的影响。

当protected-mode设置为yes(默认情况)时,Redis只会接受来自本地回环地址(localhost)和Unix域套接字的连接请求。这意味着只有运行在同一台机器上的客户端才能访问Redis实例,外部网络无法直接连接。这增加了Redis服务器的安全性,防止了潜在的远程攻击。

然而,如果你需要将Redis实例暴露给网络上的其他设备或服务器进行访问,你需要将protected-mode设置为no。这样,Redis就会接受来自任何IP地址的连接请求。但请注意,这样做会降低Redis的安全性,因为它允许任何能够访问你的Redis服务器的设备或服务器进行连接。

③port 6379:port指令用于设置Redis服务器监听的端口号。port 6379表示Redis服务器将监听TCP端口6379上的连接请求

④daemonize no(设置为yes):用来指定Redis服务是否应该以守护进程(daemon)的方式在后台运行。

如果设置daemonize no(或该选项不存在/被注释掉)(默认),Redis将会在前台运行,并且它的输出会直接显示在启动它的终端上。在这种模式下,如果终端关闭或会话断开,Redis服务也会终止。

当设置daemonize yes时,Redis会在启动后成为后台服务,它会在系统后台运行,并且释放启动它的终端,使得终端可以继续接受其他命令或关闭。Redis的日志信息和其他输出通常会被重定向到指定的日志文件中,而不是直接显示在启动它的终端上。

⑤#requirepass foobared:用于设置访问Redis服务所需的密码。当设置了requirepass之后,任何客户端在连接到Redis服务器并执行命令之前,都需要提供正确的密码进行身份验证。redis.conf配置默认没有密码,可以自己通过这个设置密码。(一定要设置,不然部署到服务器上存在风险)

第六步:启动redis:redis-server redis.conf

redis-server redis.conf

或者

Linux环境下redis使用进入|退出redis客户端

redis-cli -p 6379   #进入redis
exit     #退出
redis-cli    #如果是默认端口号6379,可省略

关闭redis

redis-cli [-p 端口号] shutdown
#当redis的端口号是默认端口号时,可以省略参数-p 端口号

查看redis与当前ip是否相连

redis-cli info   查看redis连接数
redis-cli -h 62.234.175.16 -p 6379 -a Zjx19991126 ping

想要启动后的redis正确被客户端连接,除了linux上能正常启动redis以外,还需要开放服务器上的redis端口号(6379)和防火墙开放redis端口(6379)

4、安装mysql

第一步:查看mysql是否安装:rpm -qa|grep 安装包名

rpm -qa|grep mysql

如果已安装,可执行执行命令rpm -e --nodeps 包名来删除软件包

第二步:去mysql官网下载repo源

centos的yum 源中默认是没有mysql的,所以我们需要先去官网下载mysql的repo源并安装;

mysql官网下载链接:mysql repo下载地址 如下

第三步:执行命令rpm -ivh 包名安装rpm源(根据下载的rpm源自行选择)

#CentOS7 安装mysql8
rpm -ivh mysql80-community-release-el7-7.noarch.rpm

查看mysql yum仓库中mysql版本,使用如下命令

yum repolist all | grep mysql

可以看到 MySQL 5.7为禁用状态 而MySQL 8.0为启用状态;

使用 yum-config-manager 命令修改相应的版本为启用状态最新版本为禁用状态(自行选择)

yum-config-manager --disable mysql80-community
yum-config-manager --enable mysql57-community

第四步:执行命令yum -y install mysql-community-server安装mysql服务

#安装mysql服务
yum install mysql-community-server
#查看mysql版本
mysql -V

第五步:启动MySQL

#查看mysql运行状态
systemctl status mysqld.service
#启动mysql
systemctl start mysqld
#停止mysql 
systemctl stop mysqld
#重启mysql 
systemctl restart mysqld  

执行命令systemctl enable mysqld开启MySQL开机自启动

#开启mysql开机自启动
systemctl enable mysqld
#关闭mysql开机自启动
systemctl disable mysqld

第六步:设置mysql密码

①获取临时密码

//获取MySQL临时密码
grep 'temporary password' /var/log/mysqld.log

②执行命令mysql -uroot -p登录MySQL(密码是上面获取的临时密码)

//登录mysql
mysql -uroot -p

③用临时密码登录后执行下方命令设置MySQL永久密码

show variables like 'validate_password.%';
//根据下图中的密码策略设置mysql数据库密码(你不设置密码就无法进行其它操作)                      
alter user 'root'@'localhost' identified by 'Zjx123456#';

你的密码不符合默认密码策略的话是无法设置成功的,mysql8默认密码策略如下图(最小8位,至少含义一个数字,至少含义一个特殊字符) 

执行下方命令修改密码策略

        只能临时修改密码策略,重启MySQL后自动恢复默认密码策略,想要永久修改需要改MySQL配置文件,一般来说临时修改密码策略就够了,又不天天改密码

//设置密码长度
set global validate_password.length = 6;
//设置密码风险等级(等级越高要求密码越复杂),分为0、1、2级
set global validate_password.policy = 0;
 
//查询密码策略
show variables like 'validate_password.%';
//设置mysql数据库密码                       (这里是密码)
alter user 'root'@'localhost' identified by 'Zjx123456#';

第七步:允许外部访问该MySQL数据库

//创建用户
       (远程连接用的账号)           (远程连接用的密码)
create user 'root'@'%' identified by 'mypassword';
//mysql8.0版本
//create user 'root'@'%' identified with mysql_native_password by 'Zjx123456#';
 
//分配权限,运行远程连接
                         (允许root账号远程连接)
grant all privileges on *.* to 'root'@'%' with grant option;
 
//刷新权限
flush privileges;

远程连接数据库,如果远程连接不上,考虑防火墙是否开放了mysql端口(3306)和服务器上的mysq端口号(3306)

在使用 Navicat for Mysql连接mysql 8.0时会报如下错误:

Authentication plugin 'caching_sha2_password' cannot be loaded:

mysql8.0 引入了新特性 caching_sha2_password;这种密码加密方式客户端不支持;客户端支持的是mysql_native_password 这种加密方式;

我们可可以查看mysql 数据库中user表的 plugin字段;

use mysql;
select host,user,plugin from user;

可以使用命令将他修改成mysql_native_password加密模式:

update user set plugin='mysql_native_password' where user='root';
//或者创建user时直接指定加密模式
create user 'root'@'%' identified with mysql_native_password by 'Zjx123456#';

5、安装nginx

1) nginx安装

第一步:上传nginx压缩包到指定目录。

第二步:解压nginx压缩包。

第三步:配置编译nginx

  • 配置编译方法:
./configure

  • 配置编译后结果信息:

第四步:编译nginx

  • 在nginx源文件目录中直接运行make命令

第五步:安装nginx:

  • 在运行make命令的nginx目录中运行make install命令
  • 安装后可以运行whereis nginx命令查找nginx工作目录

2) 配置nginx

配置文件位于conf/nginx.conf

#nginx的每一个代理都是一个server结构,其具体结构如下:
 server {
        listen       80; #监听端口号
        server_name  localhost;       #监听服务器名       
        
        location / {    #文件代理
            root   html;  #本地文件目录
            proxy_pass   http://127.0.0.1:8080/;  #域名代理,真实的url
            index  index.html index.htm; #成功访问的页面
        }
    }

3) Linux下使用nginx

进入nginx/sbin目录中执行如下命令:

  • 启动:./nginx
  • 重启:./nginx -s reload
  • 关闭:./nginx -s stop

6、项目部署(springboot项目)

1、安装上述软件,并开启

2、前端项目打包:npm run build:prod--->dist

3、后端项目打包:install--->xxx.jar

4、开放需要的端口号:比如我的后端项目端口号为8282,则需要防火墙和服务器同时开发8282端口

5、将dist上传到nginx/html文件夹,有两种办法:

①将dist里面的文件覆盖掉html里面的所有文件

②将dist整个上传到html文件夹下

6、将jar文件上传到服务器任意文件夹下

7、配置nginx文件

①可以直接在nginx/conf/nginx.conf文件中配置

server{
  listen 80;
  server_name localhost;
  location / {
    root /usr/local/nginx/html;
    index index.html;
  }
  location /prod-api/ {
    proxy_pass http://62.234.175.16:8282/;
  }
}

②引入外部配置文件,例如添加配置文件夹和配置文件在nginx/conf/conf.d/conf.conf

nginx.conf文件添加以下字段并注释掉相关其它字段:

include /usr/local/nginx/conf/conf.d/*.conf;

conf.conf文件编辑如下

server{
  listen 80;
  server_name localhost;
  location / {
    root /usr/local/nginx/html/dist;
    index index.html;
  }
  location /prod-api/ {
    proxy_pass http://62.234.175.16:8282/;
  }
}

8、启动前端:进入nginx/sbin目录,执行命令:./nginx -s reload

9、启动后端:进入存放jar文件的目录,执行命令

java -jar XXX.jar 前台启动

nohup java -jar xxx.jar 后台启动

至此,项目部署完成

7、项目部署(SSM项目)

将所有项目打包

将jar包和war包放到tomcat目录的webapps目录下

启动tomcat

win: 进入tomcat目录的bin目录下,双击startup.bat

linux:进入tomcat的bin目录执行命令:./startup.sh

访问:地址栏输入http://ip地址:tomcat端口号/访问即可,如:http://localhost:8080/song/list

注意:需要在tomcat目录的conf目录的server.xml添加以下配置,不然静态资源访问不到,因为在生成的过程中改变了静态资源的位置

<Service name="Catalina1">
    <Connector port="8081" protocol="HTTP/1.1"
               connectionTimeout="20000"
               redirectPort="8443" URIEncoding="UTF-8" />
               
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Realm className="org.apache.catalina.realm.LockOutRealm">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"
               resourceName="UserDatabase"/>
      </Realm>

      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">
        <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
               prefix="localhost_access_log" suffix=".txt"
               pattern="%h %l %u %t &quot;%r&quot; %s %b" />
        <Context path="/" docBase="hami-portal-1.0-SNAPSHOT" reloadable="true"></Context>
      </Host>
    </Engine>
  </Service>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1631546.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

应急学院物联网应急安全产教融合基地解决方案

第一章 背景 1.1物联网应急安全产教融合发展概况 物联网应急安全产教融合发展是当前社会发展的重要趋势。随着物联网技术的广泛应用&#xff0c;应急安全领域对人才的需求日益迫切。因此&#xff0c;产教融合成为培养高素质、专业化人才的关键途径。在这一背景下&#xff0c;…

Kotlin泛型之 循环引用泛型(A的泛型是B的子类,B的泛型是A的子类)

IDE(编辑器)报错 循环引用泛型是我起的名字&#xff0c;不知道官方的名字是什么。这个问题是我在定义Android 的MVP时提出来的。具体是什么样的呢&#xff1f;我们看一下我的基础的MVP定义&#xff1a; interface IPresenter<V> { fun getView(): V }interface IVie…

云原生Kubernetes: K8S 1.29版本 部署Sonarqube

一、实验 1.环境 &#xff08;1&#xff09;主机 表1 主机 主机架构版本IP备注masterK8S master节点1.29.0192.168.204.8 node1K8S node节点1.29.0192.168.204.9node2K8S node节点1.29.0192.168.204.10已部署Kuboard &#xff08;2&#xff09;master节点查看集群 1&…

【已解决】Python Selenium chromedriver Pycharm闪退的问题

概要 根据不同的业务场景需求&#xff0c;有时我们难免会使用程序来打开浏览器进行访问。本文在pycharm中使用selenium打开chromedriver出现闪退问题&#xff0c;根据不断尝试&#xff0c;最终找到的问题根本是版本问题。 代码如下 # (1) 导入selenium from selenium import …

RDD算子使用----transformation转换操作

RDD算子使用 transformation转换操作 map算子 rdd.map(p: A > B):RDD&#xff0c;对rdd集合中的每一个元素&#xff0c;都作用一次该func函数&#xff0c;之后返回值为生成元素构成的一个新的RDD。 val sc new SparkContext(conf)//map 原集合*7val list 1 to 7//构建…

纯血鸿蒙APP实战开发——全局状态保留能力弹窗

全局状态保留能力弹窗 介绍 全局状态保留能力弹窗一种很常见的能力&#xff0c;能够保持状态&#xff0c;且支持全局控制显隐状态以及自定义布局。使用效果参考评论组件 效果图预览 使用说明 使用案例参考短视频案例 首先程序入口页对全局弹窗初始化&#xff0c;使用Globa…

Redis基本數據結構 ― List

Redis基本數據結構 ― List 介紹常用命令範例1. 將元素推入List中2. 取得List內容3. 彈出元素 介紹 Redis中的List結構是一個雙向鏈表。 LPUSH LPOP StackLPUSH RPOP QueueLPUSH BRPOP Queue(消息隊列) 常用命令 命令功能LPUSH將元素推入列表左端RPUSH將元素推入列表右…

ZooKeeper 环境搭建详细教程之三(真集群)

ZooKeeper 搭建详细步骤之三(真集群) ZooKeeper 搭建详细步骤之二(伪集群模式) ZooKeeper 搭建详细步骤之一(单机模式) ZooKeeper 及相关概念简介 真集群搭建 搭建 ZooKeeper 真集群涉及多个步骤,包括准备环境、配置文件设置、启动服务以及验证集群状态。 以下是一个简…

如何基于Zookeeper实现注册中心模型?

在分布式系统中&#xff0c;通常会存在几十个甚至上百个服务&#xff0c;开发人员可能甚至都无法明确系统中到底有哪些服务正在运行。另一方面&#xff0c;我们很难同时确保所有服务都不出现问题&#xff0c;也很难保证当前的服务部署方式不做调整和优化。由于自动扩容、服务重…

天冕科技亮相第十七届深圳国际金融博览会!

第十七届深圳国际金融博览会在深圳会展中心正式开幕&#xff0c;天冕科技跟随南山区组团集体亮相&#xff0c;充分展现金融活力。此次金博会&#xff0c;南山区政府共遴选了包括天冕科技在内的三家优秀金融科技企业组团参展&#xff0c;以特色与创新的案例展示了辖区金融业发展…

Power BI:如何将文件夹批量Excel(多sheet页)文件导入?

故事背景&#xff1a; 业务同事想用Power BI分析近两年市场费用。 数据源全部是Excel文件&#xff0c;并且以每月一个Excel文件的方式&#xff0c;统一存放到同一文件夹下面。 重点&#xff0c;每张Excel文件会有多张sheet页&#xff0c;用区分每家分公司的费用信息。 目前…

照片误删怎么办?华为手机删除的照片如何恢复?

我们在使用华为手机时&#xff0c;可能会因为各种原因不小心删除一些照片。如果这些照片对我们来说很重要&#xff0c;那么恢复它们是非常必要且急迫的。那么华为手机删除的照片如何恢复呢&#xff1f;本文将为您介绍3种恢复华为手机中误删照片的方法。 如何恢复华为手机中被删…

Vue3 v3.4之前如何实现组件中多个值的双向绑定?

文章目录 基础代码1. watch2. computed&#xff08;推荐&#xff09; 官方给的例子是关于el-input的&#xff0c;如下。但是input不是所有组件标签都有的属性啊&#xff0c;有没有一种通用的办法呢&#xff1f; <script setup> defineProps({firstName: String,lastName…

VS2022 配置OpenCV开发环境详细教程

OpenCV OpenCV&#xff08;Open Source Computer Vision Library&#xff09;是一个开源的计算机视觉和机器学习软件库&#xff0c;由Intel开发并首先发布于1999年。OpenCV被广泛用于实时图像处理、视频分析、物体检测、面部识别、机器人视觉以及许多其他领域。它支持C、Pytho…

【vscode环境配置系列】vscode远程debug配置

VSCODE debug环境配置 插件安装配置文件debug 插件安装 安装C/C, C/C Runner 配置文件 在项目下建立.vscode文件夹&#xff0c;然后分别建立c_cpp_properties.json&#xff0c; launch.json&#xff0c;tasks.json&#xff0c;内容如下&#xff1a; c_cpp_properties.json:…

机器学习:基于Sklearn、XGBoost框架,使用逻辑回归、支持向量机和XGBClassifier预测帕金森病

前言 系列专栏&#xff1a;机器学习&#xff1a;高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目&#xff0c;每个项目都处理一组不同的问题&#xff0c;包括监督和无监督学习、分类、回归和聚类&#xff0c;而且涉及创建深度学…

Panoptic Domain Adaptive Mask R-CNN (PDAM) 论文总结

论文&#xff08;CVPR会议&#xff09;&#xff1a; Unsupervised Instance Segmentation in Microscopy Images via Panoptic Domain Adaptation and Task Re-weighting &#xff08;TMI期刊&#xff09;&#xff1a;PDAM: A Panoptic-Level Feature Alignment Framework for …

微软如何打造数字零售力航母系列科普03 - Mendix是谁?作为致力于企业低代码服务平台的领头羊,它解决了哪些问题?

一、Mendix 成立的背景 Mendix的成立是为了解决软件开发中最大的问题&#xff1a;业务和IT之间的脱节。这一挑战在各个行业和地区都很普遍&#xff0c;很简单&#xff1a;业务需求通常被描述为IT无法正确解释并转化为软件。业务和IT之间缺乏协作的原因是传统的代码将开发过程限…

[论文笔记]Language Modeling with Gated Convolutional Networks

引言 今天带来论文Language Modeling with Gated Convolutional Networks的笔记&#xff0c;该篇工作提出了GLU(Gated Linear Units&#xff0c;门控线性单元)。 注意该篇工作是2016年发表&#xff0c;是在Transformer论文发表之前。当时作者认为语言建模的主要方法是基于循环…

百度语音识别的springboot应用

1、pom依赖 <dependency> <groupId>com.baidu.aip</groupId> <artifactId>java-sdk</artifactId> <version>4.16.18</version> </dependency> 2、测试的demo 创建语音识别应用 百度智能云-管理中心 (baidu.com) 代码中要…