阿里云服务器(centos7.6)部署前后端分离项目(MAC环境)

mysql安装和部署

下载前准备

确定一下系统的glibc版本,可以使用以下命令进行查看,当前系统glibc版本:2.17

rpm -qa | grep glibc

linux系统会自动携带一个数据库,需要把它给卸载掉,通过以下代码可以查看mariadb 并卸载

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs

下载压缩包
官网:https://www.mysql.com/
选择自己需要的mysql版本和服务器对应glibc版本

在这里插入图片描述
点击下载
在这里插入图片描述

创建压缩包存放目录

mkdir /compile/package/mysql/mysql8.4.0

创建安装目录

mkdir /compile/install/mysql

先将已经下载好的压缩包上传到虚拟机的存放目录里面,然后将压缩包解压到安装目录里面
这里我通过xftp将mysql压缩包上传到服务器、
在这里插入图片描述

# 进入到mysql8压缩包所在目录
cd /compile/package/mysql/mysql8.4.0
# 解压缩文件到当前目录下
tar -xvf mysql-8.4.0-linux-glibc2.17-x86_64.tar
# 将需要用的压缩文件解压到安装目录
tar -xvf mysql-8.4.0-linux-glibc2.17-x86_64.tar.xz -C /compile/install/mysql/

在mysql目录下创建data文件夹

cd /compile/install/mysql/mysql8.4.0/
mkdir data

mysql安装目录赋予权限

chmod -R 777 /compile/install/mysql/mysql8.4.0/

创建用户组以及用户

# 创建组
groupadd mysql
# 创建用户(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)
useradd -r -g mysql -s /bin/false mysql
# 将用户添加到组中
chown -R mysql:mysql ./

将mysql文件夹的所有者和所有组都改为mysql

chown -R mysql.mysql /compile/install/mysql/mysql8.4.0/

进入bin目录执行mysqld文件进行初始化

cd /compile/install/mysql/mysql8.4.0/bin/
./mysqld --user=mysql --basedir=/compile/install/mysql/mysql8.4.0/ --datadir=/compile/install/mysql/mysql8.4.0/data --initialize

初始化之后会生成一个密码要记住,先复制等后面登录的时候使用

vim /etc/my.cnf

[mysqld]
port=3306
basedir=/compile/install/mysql/mysql8.4.0
datadir=/compile/install/mysql/mysql8.4.0/data
character-set-server=utf8
default-storage-engine=INNODB[mysql]
default-character-set=utf8[client]
port=3306
default-character-set=utf8

启动mysql

# 进入mysql.server服务目录
cd /compile/install/mysql/mysql8.4.0/support-files/
# 启动服务
./mysql.server start

将mysql添加到系统进程中

cp /compile/install/mysql/mysql8.4.0/support-files/mysql.server /etc/init.d/mysqld

设置mysql自启动

chmod +x /etc/init.d/mysqld
systemctl enable mysqld

登录mysql

# 进入mysql bin目录
cd /compile/install/mysql/mysql8.4.0/bin/
# 进入mysql
./mysql -u root -p

修改密码

ALTER USER 'root'@'localhost' IDENTIFIED BY 'xxx';

设置允许远程登录
如果密码设置的太简单,使用连接软件连接数据库的时候可能报错

use mysql
update user set user.Host='%'where user.User='root';
flush privileges;
quit

重启数据库,查看运行状态

systemctl restart mysql
service mysql restart
# 查看mysql是否启动
systemctl status mysql

在阿里云服务器控制台->安全组->修改策略
添加3306端口
在这里插入图片描述

测试连接:成功连接
在这里插入图片描述
数据库脚本的导入

.首先在navicat中将本地数据库的内容导出
在这里插入图片描述
将.sql文件上传到对应文件夹下

mysql -u root -p#输入自己的密码#创建数据库
create database sky_take_out;#查看数据库
show databases;#进入manager库
use sky_take_out;#执行脚本文件
source /usr/local/sky_take_out.sql#查看数据库表
show tables;

在这里插入图片描述

Jdk17安装部署

下载地址:https://www.oracle.com/java/technologies/downloads/
选择自己需要的jdk版本进行下载。
在这里插入图片描述

通过mac终端scp命令上传下载好的jdk17到服务器的/usr/local目录下

scp -r Downloads/jdk-17.0.13_linux-x64_bin.tar.gz 用户名@服务器ip地址:/usr/local

上传成功
在这里插入图片描述

进入到/usr/local目录下,解压jdk到对应目录

tar -zxvf jdk-17.0.13_linux-x64_bin.tar.gz -C /usr/local

移动jdk到java目录下

 mv /usr/local/jdk-17.0.13 /usr/local/java

进入profile文件,对jdk设置全局变量

vi /etc/profile

添加

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

在这里插入图片描述
按下 esc 退出insert模式 再输入 :wq

生效配置文件

source /etc/profile

验证:

java -version

在这里插入图片描述

nginx安装:

wget http://nginx.org/download/nginx-1.27.2.tar.gz

安装所需库文件

#安装库文件yum install gcc-c++ -y
yum install -y pcre pcre-devel -y
yum install -y zlib zlib-devel -y
yum install -y openssl openssl-devel -y

创建目录

mkdir /usr/local/nginx

下载nginx1.27

wget http://nginx.org/download/nginx-1.27.2.tar.gz

解压到指定目录

tar -zxvf /tmp/nginx-1.27.2.tar.gz -C /usr/local/nginx

进行编译安装

cd /usr/local/nginx/nginx-1.27.2./configure --with-http_stub_status_module --with-http_ssl_modulemake && make install

创建软连接,让系统识别Nginx命令

ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/

#检查文件是否正确

nginx -t

启动

nginx    

常用命令

 
ps -ef | grep nginx  # 查看
./nginx -s stop      # 停止
./nginx -s reload    # 重启

ps -ef | grep nginx
在这里插入图片描述

打开阿里云ecs控制台,点击安全组->管理规则->添加
在这里插入图片描述
打开80端口,然后在网页上输入自己服务器的公网ip就可以访问到nginx页面了

先将自己的vue工程进行打包

我是通过mac终端命令scp上传前端项目到服务器 命令如下

scp -r /opt/homebrew/opt/nginx/html/sky 云服务器用户名@ip地址:/usr/local/nginx/html/

在这里插入图片描述

简单修改一下配置文件(vi /usr/local/nginx/conf/nginx.conf)
在这里插入图片描述

配置好后重启nginx

cd /usr/local/nginx/sbin    
./nginx -s reload

在网页上输入自己服务器的公网ip就可以访问到nginx页面了

在这里插入图片描述

我的nginx.conf配置如下:


#user  nobody;
worker_processes  1;#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;#pid        logs/nginx.pid;events {worker_connections  1024;
}http {include       mime.types;default_type  application/octet-stream;#log_format  main  '$remote_addr - $remote_user [$time_local] "$request" '#                  '$status $body_bytes_sent "$http_referer" '#                  '"$http_user_agent" "$http_x_forwarded_for"';#access_log  logs/access.log  main;sendfile        on;#tcp_nopush     on;#keepalive_timeout  0;keepalive_timeout  65;#gzip  on;map $http_upgrade $connection_upgrade{default upgrade;'' close;}upstream webservers{server 127.0.0.1:8080 weight=90 ;#server 127.0.0.1:8088 weight=10 ;}server {listen       8088;server_name  localhost;#charset koi8-r;#access_log  logs/host.access.log  main;location / {root   /usr/local/nginx/html/sky;index  index.html index.htm;}#error_page  404              /404.html;# redirect server error pages to the static page /50x.html#error_page   500 502 503 504  /50x.html;location = /50x.html {root   html;}# 反向代理,处理管理端发送的请求location /api/ {proxy_pass   http://localhost:8080/admin/;#proxy_pass   http://webservers/admin/;}# 反向代理,处理用户端发送的请求location /user/ {proxy_pass   http://webservers/user/;}# WebSocketlocation /ws/ {proxy_pass   http://webservers/ws/;proxy_http_version 1.1;proxy_read_timeout 3600s;proxy_set_header Upgrade $http_upgrade;proxy_set_header Connection "$connection_upgrade";}# pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000##location ~ \.php$ {#    root           html;#    fastcgi_pass   127.0.0.1:9000;#    fastcgi_index  index.php;#    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;#    include        fastcgi_params;#}# deny access to .htaccess files, if Apache's document root# concurs with nginx's one##location ~ /\.ht {#    deny  all;#}}# another virtual host using mix of IP-, name-, and port-based configuration##server {#    listen       8000;#    listen       somename:8080;#    server_name  somename  alias  another.alias;#    location / {#        root   html;#        index  index.html index.htm;#    }#}# HTTPS server##server {#    listen       443 ssl;#    server_name  localhost;#    ssl_certificate      cert.pem;#    ssl_certificate_key  cert.key;#    ssl_session_cache    shared:SSL:1m;#    ssl_session_timeout  5m;#    ssl_ciphers  HIGH:!aNULL:!MD5;#    ssl_prefer_server_ciphers  on;#    location / {#        root   html;#        index  index.html index.htm;#    }#}}

安装和部署Redis

# 下载redis压缩包,这儿下载的6.2.6版本
wget https://download.redis.io/releases/redis-7.2.6.tar.gz
#  解压压缩包
tar -zxvf redis-7.2.6.tar.gz
# 进入解压目录
cd redis-7.2.6
# 编译
make

指定安装目录并进行安装

sudo make install PREFIX=/usr/local/redis
# 进入redis安装目录
cd /usr/local/redis/bin/
# 启动服务

在Linux系统中,安装好Redis后,进行启动时,出现如下的警告信息:

WARNING Memory overcommit must be enabled! Without it, a background save or replication may fail under low memory condition. Being disabled, it can also cause failures without low memory condition, see https://github.com/jemalloc/jemalloc/issues/1328. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect

意思是:必须启用内存复用!没有它,在内存不足的情况下,后台保存或复制可能会失败。如果被禁用,它也可能导致故障,但不会造成低内存条件,请参阅https://github.com/jemalloc/jemalloc/issues/1328。要解决此问题,请添加“vm.Overcommit_memory = 1”到/etc/sysctl.conf中,然后重新启动或运行命令“sysctl vm. conf”。Overcommit_memory =1’才能生效

首先,打开 sysctl.conf 文件,使用以下命令

vim /etc/sysctl.conf

按 i 键进入编辑模式,在配置文件中添加以下配置

vm.overcommit_memory = 1

按 Esc 键,退出编辑模式,输入 :wq 命令,保存退出

执行以下命令

sysctl vm.overcommit_memory=1

就没有报错信息了
在这里插入图片描述

在这里插入图片描述

云服务器开放6379端口
在这里插入图片描述

后端工程打包部署

mavne多模块依赖打包

打开父pom.xml修改打包方式jar为pom

在这里插入图片描述
sky-server模块 po m.xml引入其他两个模块
在这里插入图片描述
打包前把yml里mysq和redis配成服务器的
在这里插入图片描述

使用maven打包
在这里插入图片描述
在这里插入图片描述

使用mac终端scp将打包生成的jar包上传到服务器
进到上传的目录下使用

java -jar 上传的jar名

在这里插入图片描述
前后端成功连通
在这里插入图片描述

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

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

相关文章

道路机器人识别交通灯,马路,左右转,黄线,人行道,机器人等路面导航标志识别-使用YOLO标记

数据集分割 train组66% 268图片 validation集22% 91图片 test集12% 48图片 预处理 没有采用任何预处理步骤。 增强 未应用任何增强。 数据集图片: 交通灯 马路 右转 向右掉头 机器人识别 人行横道 黄线 直行或右转 数据集下载: 道路…

偏差-方差权衡(Bias–Variance Tradeoff):理解监督学习中的核心问题

偏差-方差权衡(Bias–Variance Tradeoff):理解监督学习中的核心问题 在机器学习中,我们希望构建一个能够在训练数据上表现良好,同时对未见数据也具有强大泛化能力的模型。然而,模型的误差(尤其…

Linux服务器安装mongodb

因为项目需要做评论功能,领导要求使用mongodb,所以趁机多学习一下。 在服务器我们使用docker安装mongodb 1、拉取mongodb镜像 docker pull mongo (默认拉取最新的镜像) 如果你想指定版本可以这样 docker pull mongo:4.4&#…

STM32 使用ARM Compiler V6 编译裸机 LWIP协议栈报错的解决方法

在lwip 的cc.h 中使用以下宏定义,来兼容 V5 和 V6编译器 #if defined (__ARMCC_VERSION) && (__ARMCC_VERSION > 6010050) /* ARM Compiler V6 */ #define __CC_ARM /* when use v6 compiler define this */ #endifV6编译的速度确实比V5块了好多倍。 …

使用ESP32通过Arduino IDE点亮1.8寸TFT显示屏

开发板选择 本次使用开发板模块丝印为ESP32-WROOM-32E 开发板库选择 Arduino IDE上型号选择为ESP32-WROOM-DA Module 显示屏选择 使用显示屏为8针SPI接口显示屏 驱动IC为ST7735S 使用库 使用三个Arduino平台库 分别是 Adafruit_GFXAdafruit_ST7735SPI 代码详解 首…

图像显示的是矩阵的行和列,修改为坐标范围。

x 3; y 3; f1x x^2 y^2; guance1 f1x; F (x, y) sqrt((x.^2 y.^2 - guance1).^2); % 使用点乘 [x, y] meshgrid(0:1:5, 0:1:5); Z F(x, y); figure; imagesc(Z); % 由于 imagesc 使用矩阵索引作为坐标,我们需要手动添加刻度 % 这里我们假设 x 和 y 的范围…

【K230 CanMV】图像识别-摄像头获取图像 Sensor 函数全解析

引言:随着图像处理技术的不断发展,摄像头在嵌入式系统中的应用越来越广泛,尤其是在智能监控、自动驾驶、机器人视觉等领域。K230作为一款高性能的嵌入式处理器,提供了强大的图像处理能力,支持多种类型的摄像头接入与图…

基于FPGA的FM调制(载波频率、频偏、峰值、DAC输出)-带仿真文件-上板验证正确

基于FPGA的FM调制-带仿真文件-上板验证正确 前言一、FM调制储备知识载波频率频偏峰值个人理解 二、代码分析1.模块分析2.波形分析 总结 前言 FM、AM等调制是学习FPGA信号处理一个比较好的小项目,通过学习FM调制过程熟悉信号处理的一个简单流程,进而熟悉…

论文笔记(五十九)A survey of robot manipulation in contact

A survey of robot manipulation in contact 文章概括摘要1. 引言解释柔顺性控制的概念:应用实例: 2. 需要接触操控的任务2.1 环境塑造2.2 工件对齐2.3 关节运动2.4 双臂接触操控 3. 接触操控中的控制3.1 力控制3.2 阻抗控制3.3 顺应控制 4. 接触操控中的…

拥抱 OpenTelemetry:阿里云 Java Agent 演进实践

作者:陈承 背景 在 2018 年的 2 月,ARMS Java Agent 的第一个版本正式发布,为用户提供无侵入的的可观测数据采集服务。6 年后的今天,随着软件技术的迅猛发展、业务场景的逐渐丰富、用户规模的快速增长,我们逐渐发现过…

学习ASP.NET Core的身份认证(基于Session的身份认证3)

开源博客项目Blog中提供了另一种访问控制方式,其基于自定义类及函数的特性类控制访问权限。本文学习并测试开源博客项目Blog的访问控制方式,测试程序中直接复用开源博客项目Blog中的相关类及接口定义,并在其上调整判断逻辑。   首先是接口A…

电子应用设计方案-31:智能AI音响系统方案设计

智能 AI 音响系统方案设计 一、引言 智能 AI 音响作为一种新兴的智能家居设备,通过融合语音识别、自然语言处理、音频播放等技术,为用户提供便捷的语音交互服务和高品质的音乐体验。本方案旨在设计一款功能强大、性能稳定、用户体验良好的智能 AI 音响系…

可变电阻和电位器

1.可变电阻和电位器 (1)可变电阻:阻值可以调整的电阻。 (2)电位器:为了获得某个电位(电势、电压)的器件。其本质就是在一个固定阻值的电阻中间增 加一个触点,滑动电阻的中…

RK3568平台开发系列讲解(PWM篇)PWM 子系统框架

🚀返回专栏总目录 文章目录 一、PWM 设备驱动层二、PWM 核心层三、PWM 适配器驱动层沉淀、分享、成长,让自己和他人都能有所收获!😄 📢整个 PWM 子系统可以用下面的框图来描述: 再上图中 PWM 子系统被划分为了三个层次, 分别为用户空间、 内核空间和硬件层, 内核空…

CSAPP Cache Lab(缓存模拟器)

前言 理解高速缓存对 C 程序性能的影响,通过两部分实验达成:编写高速缓存模拟器;优化矩阵转置函数以减少高速缓存未命中次数。Part A一开始根本不知道要做什么,慢慢看官方文档,以及一些博客,和B站视频&…

【趣味升级版】斗破苍穹修炼文字游戏HTML,CSS,JS

目录 图片展示 开始游戏 手动升级(满100%即可升级) 升级完成,即可解锁打怪模式 新增功能说明: 如何操作: 完整代码 实现一个简单的斗破苍穹修炼文字游戏,你可以使用HTML、CSS和JavaScript结合来构建…

hadoop环境配置-vm安装+麒麟ubantu

一.VM版本 选择16版本,15版本存在windows蓝屏的情况,也不用设置HV等相关设置 激活下载参考下述博客:https://blog.csdn.net/matrixlzp/article/details/140674802 提前在bois打开SVM设置,不设置无法打开新建的虚拟机 ubantu下载…

会议直击|美格智能亮相2024紫光展锐全球合作伙伴大会,融合5G+AI共拓全球市场

11月26日,2024紫光展锐全球合作伙伴大会在上海举办,作为紫光展锐年度盛会,吸引来自全球的众多合作伙伴和行业专家、学者共同参与。美格智能与紫光展锐竭诚合作多年,共同面向5G、AI和卫星通信为代表的前沿科技,聚焦技术…

工业公辅车间数智化节能头部企业,蘑菇物联选择 TDengine 升级 AI 云智控

小T导读:在工业节能和智能化转型的浪潮中,蘑菇物联凭借其自研的灵知 AI 大模型走在行业前沿,为高能耗设备和公辅能源车间提供先进的 AI 解决方案。此次采访聚焦于蘑菇物联与 TDengine 的合作项目,通过 AI 云智控平台的建设&#x…

华为IPD流程学习之——深入解读123页华为IPD流程体系设计方法论PPT

该方案全面介绍了华为IPD流程体系设计方法论,包括流程体系建设的背景、理念、架构、核心特征、构建模型、与组织和战略的关系、运营机制、数字化转型以及流程管理组织等内容,旨在为企业提供一套系统的流程体系建设指导,以提升运营效率、质量和…