项目部署总结

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>

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

12:HAL----I2C

目录 一:I2C通信协议 1:I2C简历 2:硬件电路 3:I2C时序基本单元 A : 开/ 终条件 2:发送一个字节 3:接收一个字节 4:应答机制 4:I2C时序 1:指定地址写 2:当前地址读 3: 指定地址读 二&#xff1a;HAL库 A&#xff1a;轮询方式 B:中断方式 三:案例 A:轮询方式-…

代码随想录算法训练营第12天:滑动窗口和前缀和

代码随想录算法训练营第12天&#xff1a;滑动窗口和前缀和 这里我参考了西法的博客&#xff0c; 467. 环绕字符串中唯一的子字符串(中等)795. 区间子数组个数(中等)904. 水果成篮(中等)992. K 个不同整数的子数组&#xff08;困难&#xff09;1109. 航班预订统计(中等) 前四…

第G9周:ACGAN理论与实战

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 由于ACGAN的原理在上一篇文章中已经很详细的解释过了&#xff0c;这次我们直接上代码 一、代码解读 import argparse import os import numpy as npimport t…

视频批量下载工具

1、功能演示 该工具实现了某个人主页视频批量下载&#xff0c;最多支持一次下载50个视频&#xff0c;这50个选取的是最新发布的50个视频&#xff0c;视频为高清的1080p&#xff0c;并直接将视频保存到本地。 2、软件使用介绍 2.1 解压 拿到工具软件后&#xff0c;首先是对软件…

什么是外汇爆仓?怎样避免?

外汇爆仓是指当交易者的保证金低于特定比例时&#xff0c;经纪商会自动平仓一个或所有的开仓头寸。避免外汇爆仓的关键在于合理配置资金、设置止损、适度交易、顺势而为以及调整心态。 外汇爆仓是外汇交易中的一种风险控制机制。当交易者的账户净值低于已用保证金的特定比例时&…

AI图书推荐:《企业AI转型:如何在企业中部署ChatGPT?》

Jay R. Enterprise AI in the Cloud. A Practical Guide...ChatGPT Solutions &#xff08;《企业AI转型&#xff1a;如何在企业中部署ChatGPT&#xff1f;》&#xff09;是一本由Rabi Jay撰写、于2024年由John Wiley & Sons出版的书籍&#xff0c;主要为企业提供实施AI转型…

【网络安全】00后程序员,找 Bug 赚了 6,700,000元!他是怎么做到的?

1. 漏洞赏金计划&#xff08;Bug Bounty Programs&#xff09; 2. 安全咨询服务 3. 安全培训和教育 4. 写作和发表研究 5. 参与安全竞赛&#xff08;CTFs&#xff09; 6. 开发和销售安全工具 在网络安全领域&#xff0c;通过合法的方式利用漏洞赚钱主要涉及以下几种方法。…

【服务器部署篇】Linux下Tomcat安装和配置

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0c;产…

记录一次 vue3 + ele pls 改写 饿了么主题色实践

一、改写 element 主题色 在 main.ts 中引入需要改写的 scss 文件 main.ts: import ./styles/element-plus.scss在自定义的 element-plus.scss 文件中改写 ele pls 的变量 element-plus.scss&#xff1a; /** * 更改主题色 */ :root {--el-color-primary: #285fbb; // 主…

python使用opencv对图像的基本操作(3)

17.颜色空间的转换 17.1.rgb图像转gray图像 from skimage import io,color img io.imread(lbxx.jpg) img_gray color.rgb2gray(img) #将rgb图像转换成gray图像 io.imshow(img_gray)运行结果&#xff1a; 17.2.rgb图像转hsv图像 from skimage import io,color img io.im…

网红大佬的面子,高阶智驾的里子 | 2024北京车展

相关阅读&#xff1a;2023北京车展 《没有争奇斗艳的车模&#xff0c;只有往死里卷的智能汽车》。 文&#xff5c;刘俊宏 李想、李斌绑定“车圈新顶流”雷军互相抬轿子&#xff0c;红衣大叔周鸿祎高情商点评各家汽车新品...... 为了流量&#xff0c;今年车企大佬们比任何时候…

volatile的相关知识点

volatitle这个关键字&#xff0c;不管是在Java还是在C中都有使用到&#xff0c;但是在两种语言中&#xff0c;由于编译器的原因&#xff0c;他们存在一点点区别。 C中的volatile关键字 在C中volatile主要用于告诉编译器&#xff0c;这个变量的值可能会意外改变 ,例如被硬件或者…

力扣刷题 62.不同路径

题干 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&#xff08;在下图中标记为 “Finish” &#xff09;。 问总共有多少条不同的路径&#xff1f; …

HertzBeat:一款开源实时监控告警系统,简直太好用了!

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

训练营第三十六天动态规划(基础题part2)

训练营第三十六天动态规划&#xff08;基础题part2&#xff09; 62.不同路径 力扣题目链接 题目 一个机器人位于一个 m x n 网格的左上角 &#xff08;起始点在下图中标记为 “Start” &#xff09;。 机器人每次只能向下或者向右移动一步。机器人试图达到网格的右下角&am…

企业计算机服务器中了rmallox勒索病毒怎么办,rmallox勒索病毒解密流程

对于众多的企业来说&#xff0c;通过网络开展各项工作业务已经成为常态&#xff0c;网络为企业的生产运营提供了极大便利&#xff0c;也大大加快了企业发展的步伐&#xff0c;但众多企业越来越重视企业发展中的核心数据安全问题。近期&#xff0c;云天数据恢复中心接到众多企业…

Linux的学习之路:21、线程(1)

摘要&#xff1a; 本章说一下线程 目录 摘要&#xff1a; 一、回忆一下 二、如何理解线程 三、命令行看线程 四、利用函数进行使用 五、本章总结 1、线程的优点 2、线程的缺点 3、线程的异常 4、线程的用途 一、回忆一下 1、exe就是一个文件 2、我们的可执行程序…

企业工厂如何逆风翻盘:VR全景打破多重桎梏

现阶段&#xff0c;制造业工厂面临的困境&#xff0c;就是用着上百万的设备&#xff0c;却赚着几毛钱的利润。传统的工厂参观方式也存在着很多的局限性&#xff0c;例如时间上不方便、不能实地参访、生产线具有隐患等&#xff0c;都会使得参观者不能深入地了解工厂的生产环境和…

大模型对数字营销的驱动赋能

一、大模型驱动的营销数智化个信未来发展趋势 1.模型算法能力全面升级 大模型凭借智能化的用户洞察&#xff0c;个性化的需求预测、系统化的数据分析、效率化的营销决策以及实实化的全域检测支持&#xff0c;为营销行业更加准确地把握市场动态和消费者需求提供了强大支持。可以…

ubuntu22.04 修改内核源码教程

1. 确认当前内核版本 uname -a 2. 去ubuntu官网下载对应版本内核源码 6.5.0-28.29 : linux package : Ubuntu (launchpad.net) 3. 准备编译环境 sudo apt-get install libncurses5-dev libssl-dev build-essential openssl flex bison libelf-dev tar -xzvf linux_6.5.…