部署Springboot+vue项目version01
ps:某些会用到的指令:
创建文件夹 ---- mkdir 文件名
编辑文件 ---- vi/vim 文件名
强制退出编辑文件(不保存)---- :q!
保存并强制退出编辑文件 ---- :wq!
查看当前所在文件夹路径 ---- pwd
赋权 ---- chmod +x 文件名
删除单个文件:rm 文件路径/文件名
删除多个文件:rm 文件 1 文件 2 文件 3
删除目录及其中的所有内容:rm -r 目录路径/目录名
解压文件:
.tar.gz 后缀:tar -zxvf /路径/文件名 -C /usr/local/.tar.xz 后缀:tar -Jxvf /路径/文件名 -C /usr/local/
.tar 后缀:tar -xvf /路径/文件名 -C /usr/local/
ai生成的一个部署项目的流程图(可做参考):
一、安装 JDK
1、卸载 CentOS 自带的 OpenJDK,可以通过命令查看。
rpm -qa | grep jdk
2、通过命令删除已安装的jdk。
rpm -e --nodeps java-1.8.0-openjdk-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.65-3.b17.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-1.7.0.91-2.6.2.3.el7.x86_64
rpm -e --nodeps java-1.7.0-openjdk-headless-1.7.0.91-2.6.2.3.el7.x86_64
3、查看是否删除成功。
ll(查看文件夹中的文件)
4、在 /usr/local 目录下新建 java 文件夹,并进入
cd /usr/local
mkdir java
cd java
5、打开 Xftp,将 JDK 安装文件拷贝到 java 目录。
6、使用命令进行安装、与配置
# 解压 mysql 压缩包
tar -zxvf /tmp/jdk-8u371-linux-x64.tar.gz -C /usr/local/
# 对解压后的文件重命名(输入解压后的 jdk 文件夹名,可以点击 tab 键补全内容)
mv /usr/local/jdk1.8.0_371 /usr/local/java
# 编辑 mysql 的配置文件
vi /etc/profile
# 配置环境变量,与 windows 系统类似,也可以使用下面配置环境变量的版本
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
# 使配置的环境变量生效
source /etc/profile
# 验证
java -version
7、配置环境变量(可选)
按 i 进行输入,复制如下内容
vim /etc/profile
按 i 进入编辑模式,按 Esc 退出编辑模式,输入 :wq,回车退出保存。输入 :q,回车直接退出
JAVA_HOME=/usr/java/jdk1.8.0_221-amd64
CLASSPATH=%JAVA_HOME%/lib:%JAVA_HOME%/jre/lib
PATH=$PATH:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
export PATH CLASSPATH JAVA_HOME
8、使配置的环境变量生效(可选)
source /etc/profile
9、检查安装是否成功(可选)
java -version
二、安装 MySQL
查看 mysql 状态
rpm -qa | grep mysql
1、卸载 maridb 数据库
linux系统会自动携带一个数据库 maridb,我们需要把他给卸载掉,通过以下命令可以查看 maridb 数据库并卸载
rpm -qa | grep mariadb
yum remove -y mariadb-connector-c-3.1.11-2.oc8.1.x86_64
yum remove -y mariadb-connector-c-config-3.1.11-2.oc8.1.noarch
2、上传 mysql 的 .tar.gz 压缩包
可以直接使用 Xftp 将 mysql 压缩包上传到服务器的 /tmp 文件夹中
3、解压并安装 mysql
# 创建 /data/mysql 文件夹
mkdir /data/mysql
# 解压 mysql 安装包到 /usr/local 文件夹(需加 -C)
tar -zxvf /tmp/mysql-5.7.42-el7-x86_64.tar.gz -C /usr/local
# 修改解压后的文件名
mv /usr/local/mysql-5.7.42-el7-x86_64 /usr/local/mysql
# 添加用户组
groupadd mysql
useradd -r -g mysql mysql
chown -R mysql.mysql /usr/local/mysql
chown -R mysql.mysql /data/mysql
# 将mysql加入到服务中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 进入 /usr/local/mysql 文件夹
cd /usr/local/mysql
# 初始化 mysql
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql --initialize
# mysql快捷方式(软链接)
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
ln -s /usr/lib64/libncurses.so.6.1 /usr/lib64/libncurses.so.5
ps:添加软链接时,若添加软链接失败,可先尝试直接继续后面的操作,建议先尝试后续操作,若无法继续,则可选择在Xftp中找到并删掉这两个文件libtinfo.so.5,libncurses.so.5,然后通过yum -y install 文件名 下载这两个文件,然后做软链接
初始化成功后会出现一个临时密码,需复制下来备用
4、配置 mysql 配置文件 my.cnf(文件路径为:/etc/my.cnf)
# 编辑配置文件
vim /etc/my.cnf
[mysqld]
datadir=/data/mysql
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
# skip-grant-tables
# # Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
5、启动 mysql
cd /usr/local/mysql
service mysql start
6、设置 mysql 开机启动等
chkconfig mysql on
登录 mysql:mysql -u root -p
输入刚才记录的 mysql 的临时密码,进入 mysql
修改密码并设置权限(此状态时命令行输入状态,因此在结束一条命令时需加分号(;))
SET PASSWORD = PASSWORD('123456');
use mysql;
update user set host ='%'where user ='root' and host ='localhost';
flush privileges;
exit;
7、使用 Navicat 连接 mysql
ps:若想使用本地 navicat 连接远程服务器的 mysql,需在云服务器中添加3306端口的安全组
ps:连接上远程服务器的 mysql 之后,可建立对应的数据库表,并将数据库表复制进去
三、安装 redis
1、上传 redis 的 .tar.gz 安装包
可以直接使用 Xftp 将 redis 压缩包上传到服务器的 /tmp 文件夹中
2、解压 redis-7.0.15.tar.gz 压缩包
解压:
tar -xzf /tmp/redis-7.0.15.tar.gz -C /usr/local
重命名:
mv /usr/local/redis-7.0.15 /usr/local/redis
3、安装 redis 依赖
redis 是基于 C 语言编写的,因此首先需要安装 redis 所需要的 gcc 依赖:
yum install -y gcc tcl
4、运行编译命令
cd /usr/local/redis
make && make install
5、启动 redis
# 进入redis安装目录
cd /usr/local/redis/src
# 启动
./redis-server ../redis.conf
# 查看是否启动成功
ps -ef | grep redis
# 杀死redis进程
kill -9 进程号
6、配置 redis
6.1 注释掉bind 127.0.0.1
ps:否则只有此IP能访问
6.2 将保护模式改为no
ps:否则无法远程连接
6.3 开启守护进程 daemonize yes
ps:需开启
6.4 重启 redis 服务
/usr/local/src/redis-server /usr/local/redis.conf
ps:若还是无法远程连接,可以先在linux系统上设置一个密码,然后再进行远程连接,若此处开启密码,在后端项目有关 redis 的配置中需加上密码
在服务启动后,在云服务器中连接redis
redis-cli
设置密码:
set requirepass 密码
使用命令查看设置的密码:
get requirepass
退出 redis 窗口
exit 按enter
若设置了密码,需先登录:
auth 密码
7、远程连接 redis
ps:需先添加云服务器的安全组,端口号为6379
四、安装 nginx,反向代理
1、安装库文件
#安装gcc
yum install gcc-c++
#安装PCRE pcre-devel
yum install -y pcre pcre-devel
#安装zlib
yum install -y zlib zlib-devel
#安装Open SSL
yum install -y openssl openssl-devel
2、解压、编译 nginx 并安装
mkdir /usr/local/nginx
tar -zxvf /tmp/nginx-1.24.0.tar.gz -C /usr/local/nginx
cd /usr/local/nginx/nginx-1.24.0
# 编译安装
./configure --with-http_stub_status_module --with-http_ssl_module
make && make install
成功:
3、nginx 命令
cd /usr/local/nginx/sbin
./nginx # 启动
ps -ef | grep nginx # 查看
./nginx -s stop # 停止
./nginx -s reload # 重启
ps -ef | grep nginx 查看 nginx 启动成功
访问:http://个人的公网ip/
ps:nginx 的初始页面
4、配置 nginx
server {
listen 80;
server_name localhost;
#charset koi8-r;
#access_log logs/host.access.log main;
location / {
# 此处为前端项目 dist 所在目录
root /home/server/honey2024/vue/dist;
# 此处为 dist 中的 index.html,通过 nginx 进入网站默认打开的地方
index index.html index.htm;
# 一定要添加
try_files $uri $uri/ /index.html;
}
}
配置文件修改之后需重启 nginx,执行以下命令
cd /usr/local/nginx/sbin
./nginx -s reload
五、打包上传项目
ps:此处项目使用的是springboot+vue前后端框架,而前端vue项目除了可通过 nginx 反向代理进行部署外,还可以通过 tomcat 部署,也可通过 springboot 部署(打包在 springboot jar 包中)
1、修改前端项目请求路径
修改前端 vue 项目,axios 请求的 baseURL,以及各种会和后台信息交互的路径,如上传图片,打开管理员登录页面等
打开管理员登录的页面:
window.open(‘http://*******/managerLogin’)
打包命令:
npm run build
ps:会打包成一个 dist 文件夹
2、修改后端项目配置文件
1、使用 prod 生产环境,将 dev 配置文件 粘贴复制到 prod 配置文件中进行修改
2、修改连接数据库的 ip,改为服务器的公网 ip,若数据库密码与本地数据库密码不一致,需修改密码
3、redis 的 ip 也许修改,若 redis 设置了密码需在 prod 配置文件中加上
4、修改日志文件的输出位置,若不修改,在运行 jar 包后,会直接在 jar 包所在文件夹创建对应路径的文件夹,存储日志输出文件
5、修改配置文件中静态资源映射路径(可直接在jar包所在文件夹建个文件夹存储图片),以及上传图片方法中生产的映射路径 http://ip:port/**
打包项目
方式一、直接在 idea 中打包,点击 maven 的 clean,然后再点击 package,会出现一个 target 目录,*.jar 即是我们所求
方式二、找到项目所在路径,打开 cmd 窗口,或是打开 cmd 窗口后进入项目所在路径,然后运行
mvn clean install -Dmaven.test.skip=true
跳过测试打包项目
3、上传打包好的文件
创建文件夹存放打包好的项目 *.jar 和 dist 文件夹
mkdir /home/server/ljj2024/java
mkdir /home/server/ljj2024/vue
在上传完打包后的文件之后,需给后端项目的 jar 包或配置文件赋权,否者无法运行
chmod +x 文件名
4、启动 *.jar 包
可以将配置文件 application.yml 文件上传到 jar 包所在同级目录,用于覆盖 jar 包中的配置文件
4.1 创建 start.sh 启动脚本
NAME=项目名.jar
nohup java -jar $NAME > server.log 2>&1 &
echo 'start success'
之后启动项目,只需进入/home/server/ljj2024/java目录输入:
./start.sh
即可启动java项目,原本控制台输出的文件在 server.log 文件里面
可使用 tail -100f server.log 查看(需在/home/server/ljj2024/java目录),ctrl+z 退出查看
4.2 创建 stop.sh 停止脚本
PORT=端口号(后端项目的)
pid=`netstat -tnlp | grep $PORT | grep -v grep | awk '{print $7}' | awk -F/ '{print $1}'`
if [ ${pid} ]; then
kill -9 $pid
echo "kill $PORT"
else
echo 'stop sucess!'
fi
之后启动项目,只需进入/home/server/ljj2024/java目录输入:
./stop.sh
即可停止java项目,若修改了后端项目,启动项目前,最后使用 ./stop.sh 停止已运行的项目
end: 安装 Tomcat(可选择不装,完全不影响,看选择何种方式部署 vue)
1、在 /usr/local 目录下新建 tomcat 文件夹,并进入。
cd /usr/local
mkdir tomcat
cd tomcat
2、打开 Xftp,将 Tomcat 压缩文件拷贝到 tomcat 目录。
3、解压缩。
tar -zxvf apache-tomcat-9.0.85.tar.gz
# 添加用户组
创建有一个用户组:mysql5
groupadd mysql 5
创建一个系统用户:mysql5,指定用户组mysql5
useradd -r -g mysql5 mysql5
chown -R mysql5.mysql5 /usr/local/mysql/mysql5
mkdir -p /data/mysql5
chown -R mysql5.mysql5 /data/mysql5/
cd /usr/local/mysql/mysql5
/usr/local/mysql/mysql5/bin/mysqld --user=mysql5 --basedir=/usr/local/mysql/mysql5/ --datadir=/data/mysql5 --initialize
将服务加入到服务中
cp /usr/local/mysql/mysql5/support-files/mysql.server /etc/init.d/mysql
templatePassword:
P:kr>)rGv5mh
rootroot
4、进入 /apache-tomcat-9.0.85/bin 路径启动 Tomcat。
./startup.sh
关闭 Tomcat
./shutdomn.sh
启动成功之后,可以在 CentOS 中直接访问。
但是在本地无法访问,这是因为 CentOS 没有开放 8080 端口导致的。
5、CentOS 开放 8080 端口。(这一步可直接在阿里云服务器安全组中操作)
5.1、查看防火墙状态
firewall-cmd --state
runing 表示开启,not runing 表示关闭,如果关闭,执行
systemctl start firewalld.service
5.2、开启 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
5.3、输入命令重启防火墙
systemctl restart firewalld.service
5.4、输入命令重新载入配置
firewall-cmd --reload
5.5、打开浏览器,访问成功。
cat-9.0.85/bin 路径启动 Tomcat。
./startup.sh
关闭 Tomcat
./shutdomn.sh
启动成功之后,可以在 CentOS 中直接访问。
但是在本地无法访问,这是因为 CentOS 没有开放 8080 端口导致的。
5、CentOS 开放 8080 端口。(这一步可直接在阿里云服务器安全组中操作)
5.1、查看防火墙状态
firewall-cmd --state
runing 表示开启,not runing 表示关闭,如果关闭,执行
systemctl start firewalld.service
5.2、开启 8080 端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
5.3、输入命令重启防火墙
systemctl restart firewalld.service
5.4、输入命令重新载入配置
firewall-cmd --reload