项目部署总结

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/;  #域名代理,真实的urlindex  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.mzph.cn/pingmian/4609.shtml

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

相关文章

鉴权到底做什么

两种方案&#xff1a; 将 token 放在 cookie 里&#xff1b;将 token 放在请求头里&#xff0c;用 Authorization 字段。 无论对于前端还是后端而言&#xff0c;这两种方案都是各有利弊的&#xff0c;下面稍微讲几点&#xff0c;实际开发中根据需求来选用即可。 将 token 放在…

进程控制5 - exit()退出+子进程被收养+僵死进程

我们应当知道的是&#xff0c;在用fork创建子进程后&#xff0c;父子进程的执行的先后顺序是不定的&#xff0c;这时&#xff0c;我们可以用wait函数&#xff0c;wait()会暂停当前进程的执行&#xff0c;直到有信号到来或者子进程结束。总的来说&#xff0c;wait()的作用就是阻…

C语言编译的优化等级应该选哪个?O0、O1、O2还是O3

在使用IDE开发STM32程序时&#xff0c;IDE一般都会提供优化等级设置的选项&#xff0c;例如下图中KEIL软件优化等级的设置。 从上图中也可以看出&#xff0c;设置不同的优化等级&#xff0c;实际上是修改了编译器的编译参数。这个编译器是由ARM公司提供的C/C编译器armclang或者…

微信小程序Vue+nodejs+uniapp课堂教学辅助在线学习系统

uni-app框架&#xff1a;使用Vue.js开发跨平台应用的前端框架&#xff0c;编写一套代码&#xff0c;可编译到Android、小程序等平台。 后台主要实现功能&#xff1a;一、用户的管理(用户的信息管理) 二、 课程的管理&#xff08;课程发布&#xff0c;课后成绩的查看&#xff0c…

DAY 5

1. 2. #include <iostream>using namespace std; class Person {string name;int *age;public:Person():name("zhangsan"),age(new int (18)){cout << "Person的无参函数" << endl;}Person(string name,int *age):name("zhangsan&q…

水稻病害检测(YOLO数据集,多分类,稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫)

是自己利用LabelImg工具进行手工标注&#xff0c;数据集制作不易&#xff0c;请尊重版权&#xff08;稻瘟病、纹枯病、褐斑病、枯心病、霜霉病、水稻细菌性条纹斑病、稻苞虫&#xff09; 如果需要yolv8检测模型和数据集放在一起的压缩包&#xff0c;可以关注&#xff1a;最新最…

聊聊Flink:Docker搭建Flink

一、准备工作 查看下Docker和Docker Compose版本&#xff0c;确保你安装了这些软件。 在 Flink 官网上下载 Flink 的 Docker 镜像。您可以使用以下命令从 Docker Hub 中下载&#xff1a; docker pull flink:1.18.0-scala_2.12 此命令将下载 Flink 1.18.0 版本的 Docker 镜像…

电商架构:系统设计+表设计

如有不对&#xff0c;请指正 欢迎评论区交流 需要哪些系统 商品系统、订单系统、权限系统、审核系统等。 商品系统 订单系统 审核系统 权限系统 参考 基于电商中台架构-商品系统设计(一) 附件

2024年【流动式起重机司机】报名考试及流动式起重机司机复审模拟考试

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 2024年【流动式起重机司机】报名考试及流动式起重机司机复审模拟考试&#xff0c;包含流动式起重机司机报名考试答案和解析及流动式起重机司机复审模拟考试练习。安全生产模拟考试一点通结合国家流动式起重机司机考试…

电脑已经有了一个Windows10,再多装一个Windows10组成双系统

前言 前段时间已经讲过一次双Windows系统的安装教程&#xff0c;但是小白重新去看了一下&#xff0c;发现写的内容太多&#xff0c;怕小伙伴看了之后一脸萌。 所以今天咱们就重新再来讲讲&#xff1a;在同一台机器上安装Windows10双系统的教程。 注意哦&#xff01;这里的Wi…

Android优化RecyclerView图片展示:Glide成堆加载批量Bitmap在RecyclerView成片绘制Canvas,Kotlin(b)

Android优化RecyclerView图片展示&#xff1a;Glide成堆加载批量Bitmap在RecyclerView成片绘制Canvas&#xff0c;Kotlin&#xff08;b&#xff09; 对 Android GridLayoutManager Glide批量加载Bitmap绘制Canvas画在RecyclerView&#xff0c;Kotlin&#xff08;a&#xff09;-…

【GitHub】主页简历优化

【github主页】优化简历 写在最前面一、新建秘密仓库二、插件卡片配置1、仓库状态统计2、Most used languages&#xff08;GitHub 常用语言统计&#xff09;使用细则 3、Visitor Badge&#xff08;GitHub 访客徽章&#xff09;4、社交统计5、打字特效6、省略展示小猫 &#x1f…

求解约瑟夫问题

思路&#xff1a; 我们要创建两个指针 有一个指针pcur指向头结点&#xff0c;该pcur作为报数的指针&#xff0c;还有一个指针ptail指向尾结点&#xff0c;作为记录pcur的地址 每报数为m时&#xff0c;pcur指向下一个元素的地址&#xff0c;ptail销毁报数为m的地址&#xff0…

制糖工业智能工厂数字孪生可视化平台,推进制糖产业数字化转型

制糖工业智能工厂数字孪生可视化平台&#xff0c;推进制糖产业数字化转型。随着信息技术的快速发展&#xff0c;数字化转型已成为各行各业的重要趋势。在糖果加工制造领域&#xff0c;智能工厂数字孪生可视化平台的出现&#xff0c;为行业数字化转型注入了新的活力。 糖果加工制…

算法训练营day25

零、回溯算法理论 参考链接13.1 回溯算法 - Hello 算法 (hello-algo.com) 1.尝试与回退 之所以称之为回溯算法&#xff0c;是因为该算法在搜索解空间时会采用“尝试”与“回退”的策略。当算法在搜索过程中遇到某个状态无法继续前进或无法得到满足条件的解时&#xff0c;它会…

python应用-socket网络编程(1)

目录 1 先简单回顾下客户端和服务端通信的知识 2 服务端常用函数 3 客户端常用函数 4 服务端和客户端都用的函数 5 示例介绍客户端和服务端通信过程 6 建立服务端套接制 7 创建服务端函数socket.create_server() 8 创建客户端套接字 9 客户端连接函数socket.create_co…

基于Springboot的甘肃旅游服务平台(有报告)。Javaee项目,springboot项目。

演示视频&#xff1a; 基于Springboot的甘肃旅游服务平台&#xff08;有报告&#xff09;。Javaee项目&#xff0c;springboot项目。 项目介绍&#xff1a; 采用M&#xff08;model&#xff09;V&#xff08;view&#xff09;C&#xff08;controller&#xff09;三层体系结构…

学习周报:文献阅读+Fluent案例+有限体积法理论学习

目录 摘要 Abstract 文献阅读&#xff1a;基于物理信息神经网络的稀疏数据油藏模拟 文献摘要 文章讨论|结论 各方程和原理简介 PINN简介 域分解 实验设置 单相油藏问题 油水两相问题 Fluent实例&#xff1a;Y型弯管中的流体混合分析 几何建模部分 网格划分 求解器设…

获取boss直聘城市地区josn数据

获取boss直聘城市地区josn数据 当我需要爬取多个城市的地区的时候&#xff0c;只能手动点击&#xff0c;然后一个一个看 结果&#xff1a; 能看到所有区域所有子地区的地区代码 解析该JSON数据 import pandas as pd import requests code[] area[] 城市代码101210100 res…

VForm3的文件上传后的一种文件回显方式

更多ruoyi-nbcio功能请看演示系统 gitee源代码地址 前后端代码&#xff1a; https://gitee.com/nbacheng/ruoyi-nbcio 演示地址&#xff1a;RuoYi-Nbcio后台管理系统 http://218.75.87.38:9666/ 更多nbcio-boot功能请看演示系统 gitee源代码地址 后端代码&#xff1a; h…