SpringBoot+Vue项目部署上线的实现示例
作者:奇遇少年
部署前准备
注册京东云
京东云: https://www.jdcloud.com/
117.72.32.65
vue本地部署
新建文件.env.development
VUE_APP_BASEURL='http://localhost:9191'
新建文件 .env.production
VUE_APP_BASEURL='http://117.72.32.65:9191'
main.js 设置全局变量$baseUrl
Vue.prototype.$baseUrl =process.env.VUE_APP_BASEURL
搜索
替换
替换request.js
const request = axios.create({ baseURL: process.env.VUE_APP_BASEURL, timeout: 5000 })
vue全局搜索localhost:9191 替换成$baseUrl
方式一:request.post(this.$baseUrl+"/role") 方式二::action="$baseUrl+'/file/upload'"
打包
添加插件
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <version>2.7.13</version> 可选 </plugin> </plugins> </build>
npm run build
SpringBoot部署
打包
mvn clean package
服务器
部署java项目
mkdir -p /home/server/ElectronicMallApi mkdir -p /home/server/ElectronicMallVue
上传jar 包到服务器/home/server/ElectronicMallApi目录
设置application.yml覆盖
server: port: 9191 spring: datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://${ip}:3306/electronic_mall username: root password: root servlet: multipart: max-file-size: 30MB redis: database: 0 host: ${ip} port: 6379 lettuce: pool: min-idle: 0 max-active: 8 max-idle: 8 max-wait: -1ms connect-timeout: 30000ms mybatis: mapper-locations: classpath:mapper/*.xml configuration: map-underscore-to-camel-case: true ip: 117.72.32.65
添加启动和停止脚本
start.sh
NAME=ElectronicMallApi-0.0.1-SNAPSHOT.jar nohup java -jar $NAME > server.log 2>&1 & echo 'start success'
stop.sh
#!/bin/bash PID=$(ps -ef | grep "ElectronicMallApi-0.0.1-SNAPSHOT.jar" | grep -v grep | awk '{print $2}') if [ -z "$PID" ]; then echo "ElectronicMallApi-0.0.1-SNAPSHOT.jar 进程不存在" else kill -9 $PID echo "已停止 ElectronicMallApi-0.0.1-SNAPSHOT.jar 进程" fi
授权
chmod +x *
vue远程部署
上传dist 文件到服务器/home/server/ElectronicMallVue
安装jdk 1.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
安装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
下载nginx到/tmp
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://117.72.32.65/
nginx.conf 配置
location / { root /home/server/ElectronicMallVue/dist; index index.html index.htm; try_files $uri $uri/ /index.html; #防止手动输入项目地址报错 }
重启nginx
cd /usr/local/nginx/sbin ./nginx -s reload
安装mysql
mkdir -p /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 /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/data/mysql --initialize 报错:/usr/local/mysql/bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory 解决:yum install libaio-devel.x86_64 -y # 将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
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/
–datadir=/data/mysql --initialize执行完
零时密码:r4siIs:k(9Z7
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 symbolic-links=0 [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
报错
vi my.cnf vi: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
解决
sudo yum update ncurses
启动mysql: service mysql start 开机启动: chkconfig mysql on 登录mysql :mysql -uroot -p
修改密码并设置 权限
set password = password('root'); use mysql; update user set host='%' where user='root' and host='localhost'; flush privileges;
开3306端口
Navicat连接
导入数据
安装redis
mkdir /usr/local/redis tar -zxvf /tmp/redis-stable.tar.gz -C /usr/local/redis
编译make
cd /usr/local/redis/redis-stable make
执行完 make 命令后,redis-stable 的 src 目录下会出现编译后的 redis 服务程序 redis-server,还有用于测试的客户端程序 redis-cli
默认启动
cd src # 进入src目录 ./redis-server
配置文件启动
./redis-server ../redis.conf # 或用配置启动
后台进程方式启动
修改redis.conf,将daemonize设置为yes
配置文件启动
./redis-server ../redis.conf # 或用配置启动
设置外网可以访问
打开redis-conf
修改redis.conf配置
# 找到protected-mode 设置为no protected-mode no # bind 设置为0.0.0.0 bind 0.0.0.0 # 取消requirepass注释,设置密码 (可选) requirepass "password"
修改application.yml 里面的ip为服务器的公网ip
启动java
cd /home/server/ElectronicMallApi ./start.sh
tail -100f server.log #查看日志 ps -ef | grep ElectronicMallApi-0.0.1-SNAPSHOT.jar
到此这篇关于SpringBoot+Vue项目部署上线的实现示例的文章就介绍到这了,更多相关SpringBoot Vue项目部署上线内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!