环境准备
服务器环境为Ubuntu系统
lsb_release -a
1、安装MySQL数据库
# 1.首先更新本地存储库索引
sudo apt update
# 2.从APT存储库安装MySQL
sudo apt install mysql-server
# 3.安装完成后可通过mysql --version查看版本
mysql --version
# 4.安装完成后MySQL服务自动启动,可以通过下面命令查看MySQL是否在运行中
systemctl status mysql.service
# 5.如果由于某些原因MySQL服务器未运行,执行以下命令以启动MySQL服务器
sudo systemctl start mysql
2、安装redis
Redis 5.0 和MySQL一样被包含在默认的 Ubuntu 20.04 软件源中。
# 1.从APT存储库安装redis
sudo apt install redis-server
# 2.安装完成后redis服务自动启动,可以通过下面命令查看redis是否在运行中
systemctl status redis.service
3、安装openjdk
# 1.从APT存储库安装openjdk
sudo apt-get install openjdk-8-jdk
# 2.可以通过下面命令查看openjdk版本
java -version
4、安装nodejs和npm
# 1.从APT存储库安装nodejs和npm
sudo apt install nodejs npm
# 2.查看nodejs和npm版本
nodejs --version
npm --version
5、安装nginx
# 1.从APT存储库安装nginx
sudo apt install nginx
# 2.安装完成后nignx服务自动启动,可以通过下面命令查看nignx是否在运行中
sudo systemctl status nginx
6、安装vue-cli
# 安装vue手脚架
sudo cnpm install -g vue-cli
# 查看vue版本
vue -V
系统实施
1、中间件配置
1.1 数据准备
创建online_repair数据库,执行数据库回滚
# 进入MySQL后执行数据库创建语句
create database online_repair;
# 数据库创建完成之后退出MySQL,将sql文件从本地上传至服务器中,执行回滚操作
mysql -u root -p online_repair < /root/project/online_repair.sql
# 回滚完成后可进入数据库中查询是否回滚成功
1.2 开启MySQL允许远程访问
1、MySQL配置
# 1.登录mysql
mysql -u root -p
# 2.查看use表
use mysql
select host, user, authentication_string from user;
# 注:在新版数据库中use表中的password字段换成了authentication_string,8.0以前的可以使用select host, user, password from user;
# 3.将用户的访问地址改为%
update user set host = '%' where user = 'root'
# 注:localhost表示只允许本地进行访问,‘%’表示所有用户可以进行访问,也可根据IP进行绑定访问
2、配置文件修改
在Ubuntu系统中,MySQL默认只能本地访问,不能远程访问,因为访问地址被绑定死了为本地127.0.0.1,想要远程访问的话,需要去/etc/mysql/mysql.conf.d中找到bind-address = 127.0.0.1,然后注释掉这一句,也就是在这句前面加上#号。
vi /etc/mysql/mysql.conf.d/mysqld.cnf
注释掉之后可使用service mysql restart命令对MySQL服务进行重启,然后可在本地navicat测试连接服务器中的MySQL数据库。
1.3 redis允许远程访问
允许访问的地址,默认是127.0.0.1,会导致只能在本地访问。修改为0.0.0.0则可以在任意IP访问,生产环境不要设置为0.0.0.0
bind 0.0.0.0
守护进程,修改为yes后即可后台运行
daemonize yes
密码,设置后访问Redis必须输入密码,可选,如果设置密码,要在后端配置文件中填写
requirepass 123321
vi /etc/redis/redis.conf
修改之后可使用service redis restart命令对redis服务进行重启
2、前端项目启动
2.1 打包dist文件夹
进入ruoyi-ui文件夹,并对前端代码进行打包,生成一个dist文件夹
cd ruoyi-ui
npm install --unsafe-perm --registry=https://registry.npm.taobao.org
chmod -R 755 ./*
npm run build:prod
2.2 配置nginx文件
server{
listen 80;
server_name {输入服务器的公网IP};
location / {
root /root/project/dist;
try_files $uri $uri/ @router; #解决404问题的关键行
index index.html index.htm;
}
location @router {
rewrite ^.*$ /index.html last;
}
location /prod-api/ {
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP &remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_pass http://{输入服务器内网IP}:8080/;
}
}
2.3 开放防火墙访问端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 防火墙开启后需要重启防火墙才能够生效
sudo firewall-cmd --reload
2.4 浏览器测试前端是否启动成功
输入在nginx中配置的IP地址和端口号进行访问,这里我使用的是http协议默认的80端口,所以直接输入http://{ip地址}
3、后端项目启动
3.1 修改配置文件信息
在application.yml中,修改redis的信息,分别为host地址(服务器ip),port端口号(redis开放的端口号,一般为6379),password密码(前面配置redis时设置的密码)。
在application-druid.yml中可进行MySQL数据库配置信息的修改
3.2 打包上传服务器
在本地ruoyi项目下bin目录下找到package.bat脚本,可一件打包jar包,打包后的jar包在…/RuoYi-Vue-master\ruoyi-admin\target路径下,将jar包上传至服务器中
注:也可使用maven进行package打包操作
3.3 启动jar包
进入jar包所在路径
nohup java -jar ruoyi-admin.jar &
可通过telnet [ip] [prod]是否连通判断后端是否启动成功
若启动失败的可在/home/ruoyi/logs路径下查看失败日志
3.4 停止jar运行
# 查看jar包进程
[root@lgs serviceJarTest]# ps -ef | grep java
可以看到我们启动ruoyi-admin应用的进程号是929736
# 直接结束进程
kill -9 929736
异常汇总
1、项目执行 npm install 初始化时提示 reason: certificate has expired 错误
证书验证不通过,可以通过替换镜像源或者更换镜像源进行解决
1、取消ssl验证:
npm config set strict-ssl false
这个方法一般就可以解决了。
2、更换npm镜像源:
npm config set registry http://registry.cnpmjs.org
npm config set registry http://registry.npm.taobao.org
2、前端打包出现异常
执行npm run build:prod命令时出现异常
查看报错日志,权限被拒绝
进入node_modules/.bin/
“ll"查看一下会发现该文件“vue-cli-service” 并没有可执行权限
chmod -R 755 ./*
为路径下应用分配权限后再重新执行,则恢复正常