手动部署springboot+vue前后端分离项目
一、前置准备
1.项目本地能够跑通
项目本地没有bug。同时要注意两个细节:
- 前端发送请求,需要设置成服务器的ip地址,因此开发时就可以采用统一变量代替ip地址,以后也好修改。
具体操作如下:
main.js 设置全局变量$baseUrl
Vue.prototype.$baseUrl=process.env.VUE_APP_BASEURL
request.js 中创建
const request = axios.create({
baseURL: process.env.VUE_APP_BASEURL, // 后端的接口地址
timeout: 30000
})
vue工程全局搜索 localhost:9090 替换成 $baseUrl
:action="$baseUrl + '/file/upload'"
- 后端规定端口号,在$baseUrl中就可以确定使用该端口号
2.购买云服务器,并重置密码
3.下载XFTP、XShell软件
连接远程服务器进行环境搭建,以及项目上传。免费下载链接如下:
https://www.xshell.com/zh/free-for-home-school/
4.相关软件的压缩包
本文采用压缩包为:
- jdk-8u371-linux-x64.tar.gz
- nginx-1.24.0.tar.gz
- mysql-5.7.42-el7-x86_64.tar.gz
- redis-7.0.11.tar.gz
百度云盘链接如下:待补充。
二、项目打包上传服务器
1.x-shell创建链接
使用x-shell,通过重置的账号密码,连接远程服务器。
2.打包前后端项目
前端项目使用 npm run build 命令,打包会生成dist目录。后端项目使用idea操作,先clean,再package,打包会生成target目录。
3.部署后端项目
1)创建文件夹
mkdir -p /home/server/blog
2)上传jar包到服务器 /home/server/blog/java 目录
3)设置 application.yml 覆盖
将后端项目的application.yml配置文件,在单独上传到/home/server/blog/java 目录
4)添加启动脚本
cd /home/server/blog/java
vi start.sh
#添加以下内容
NAME=springboot-0.0.1-SNAPSHOT.jar
nohup java -jar $NAME > server.log 2>&1 &
echo 'start success'
vi stop.sh
#添加以下内容,后端端口需要修改
PORT=9090
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
5)赋权
chmod +x *
4.部署前端项目
1)上传dist文件夹到 /home/server/honey2024/vue
如果是两个前端项目,将另一个项目放在第一个项目的dist目录下即可。
三、安装环境
将所有压缩包通过XFTP上传到服务器/tmp目录下。
1.安装jdk1.8
tar -zxvf /tmp/jdk-8u371-linux-x64.tar.gz -C /usr/local/
mv /usr/local/jdk1.8.0_371 /usr/local/java
vi /etc/profile
#加入以下内容
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile
# 验证
java -version
2.安装nginx
#安装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
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
nginx命令
cd /usr/local/nginx/sbin
./nginx # 启动
ps -ef | grep nginx # 查看
./nginx -s stop # 停止
./nginx -s reload # 重启
访问:http://公网ip地址/,查看到nginx欢迎界面,安装成功。
修改nginx.conf文件
针对前端项目有两个时的配置,如下:
server {
listen 80;
server_name localhost; # 你的上线地址
#第一个前端项目
location / {
root /home/server/blog/vue/dist; # dist 项目的根目录
index index.html index.htm; # dist 项目的默认索引文件
try_files $uri $uri/ /index.html;
}
#第二个前端项目
location /admin {
alias /home/server/blog/vue/dist/admin; # admin 项目的根目录
index index.html index.htm; # admin 项目的默认索引文件
try_files $uri $uri/ /admin/index.html;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
修改之后记得重启nginx
cd /usr/local/nginx/sbin
./nginx -s reload
3.安装redis
1)安装gcc依赖
yum install -y gcc-c++
2)上传安装包,解压
使用Xftp 在/usr/local/src/下上传压缩包。再进入该目录,使用命令解压:
tar -xvf /tmp/redis-7.0.11.tar.gz -C /usr/local
3)编译
自带了一个makedir,不需要像nginx创建了。
make
4)安装
PREFIX参数指定软件的安装位置,redis的默认安装目录在/usr/bin中。
make install PREFIX=/usr/local/redis
5)后端启动
前台启动:独占终端界面,一旦退出,服务停止。我们这里使用后端启动。
安装目录/usr/local/redis下创建conf和data目录
mkdir conf
mkdir data
6)编写配置文件
使用Xftp,将解压目录中的redis.conf复制到安装目录的conf目录下,并重命名为redis-6379.conf。再修改以下参数:
-
#bind 127.0.0.1 -::1。127.0.0.1只有本机才能访问。将该属性注释或者改成0.0.0.0
-
port 6379。默认就是6379,以后如果使用多个Redis,才用改。
-
requirepass 123。登录密码设置
-
daemonize yes。启用后台启动
-
dir /usr/local/redis/data。指定文件的默认保持位置
-
dbfilename dump-6379.rdb。rdb数据备份文件默认的名字
-
logfile "6379.log"。日志文件名
-
pidfile /var/run/redis_6379.pid。记录Redis进程id
7)启动服务端
需要带上配置文件。
./bin/redis-server ./conf/redis-6379.conf
8)进入客户端
./bin/redis-cli -a 密码
9)关闭客户端
exit
10)关闭服务端
./bin/redis-cli -a 密码 shutdown
4.安装mysql
1)linux系统会自动携带一个数据库,我们需要把它给卸载掉。
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命令
mkdir /data/mysql
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
cd /usr/local/mysql
#安装sudo命令依赖
sudo yum install libaio
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql --initialize
# 将mysql加入到服务中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
# 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
3)记住临时密码 osGMitUO<56.
4)配置mysql配置文件 my.cnf
vi /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
service mysql start
6)开机启动
chkconfig mysql on
7)输入临时密码,登录mysql
mysql -uroot -p
8)修改密码并设置权限
SET PASSWORD = PASSWORD('123');
use mysql;
update user set host ='%'where user ='root' and host ='localhost';
flush privileges;
exit;
9)服务器控制台开放防火墙端口
开放22、80、443、3306、6379、以及你前后端使用到的端口。
10)使用Navicat连接mysql
导入你的sql文件
四、运行程序
1.启动后台程序
cd /home/server/honey2024/java
./start.sh
2.查看实时日志
tail -100f server.log
至此,全部完成,恭喜你!
- 感谢你赐予我前进的力量