This action will force synchronization from 陌溪/LearningNotes, which will overwrite any changes that you have made since you forked the repository, and can not be recovered!!!
Synchronous operation will process in the background and will refresh the page when finishing processing. Please be patient.
最近很多小伙伴问我如何把蘑菇博客部署在自己的云服务器中,今天花费了一些时间整理一下博客部署的过程,希望能够对大家有所帮助,好了话不多说,下面开始进入正式的部署过程。
如果还没有安装好对应的环境话,需要按这篇博客搭建好环境:使用Docker快速搭建蘑菇博客(Eureka分支)
如果已经拥有域名的小伙伴,并且想给蘑菇博客配置域名解析:可以参考这篇博客:蘑菇博客配置域名解析
如果本博客教程在搭建的时候存在疑惑,那么可以参考我录制的视频教程:利用阿里云免费服务器搭建个人博客
本文不再重复叙述 nginx、rabbitmq、mysql、solr以及redis的安装和启动,如果了解,请移步至上一篇博客~
首先我们需要将项目拉取下来,然后进入到mogu_blog_v2目录
# 拉取项目
git clone https://gitee.com/moxi159753/mogu_blog_v2.git
首先判断当前分支是否是Eureka分支,使用下面命令查看
git branch
这里显示的是目前在Nacos分支,所以我们需要切换到Eureka分支
使用下面命令切换分支
# 切换Eureka分支
git checkout Eureka
切换好分支后,后面我们就可以进行 maven依赖安装了
因为之前部署的docker环境中的数据库脚本可能不是最新的,因此在配置好docker环境后,我们需要远程连接上我们docker服务器中的Mysql,我们进入doc文件夹
mogu_blog.sql:代表mogu_blog数据库的文件
mogu_blog_update.sql:代表mogu_blog在后续开发时候更新的字段)
mogu_picture.sql:代表mogu_picture数据库文件
mogu_picture_update.sql:代表mogu_picture在后续开发时候更新的字段)
nacos_config.sql:表示Nacos配置脚本【仅用于Nacos分支】
首次导入数据库文件的时候,我们只需要执行mogu_blog.sql 、 mogu_picture.sql文件即可,如果你在之前已经部署了本项目,那么你需要在对应的update.sql文件中,打开后,从中找到没有的字段,复制上执行即可,里面每个字段的添加,都会有对应的日期提示,如果有些字段是你clone项目后添加的,那么你就需要执行它们一遍
【举例】假设我在2020.10.15号部署了项目,那会只需要通过导入 mogu_blog.sql 、mogu_picture.sql 和 nacos_config.sql 导入到数据库即可成功运行。但是后面在 2020.11.17号,又重新拉取了蘑菇博客的源码,想要更新最新的代码,那么这个时候就有两种情况
每次更新的时间,在mogu_*_update.sql 表里都有体现,只需要进去查看即可 ,然后找到对应访问内的,增量更新即可
下面我们进行 maven依赖安装了
# 拉取项目
git clone https://gitee.com/moxi159753/mogu_blog_v2.git
# 进入mogu_blog_v2目录
cd mogu_blog_v2
# 执行mvn打包命令
mvn clean install
完成上面操作后,能看到下面的图,说明已经成功打包了
下面我们需要进入下列的目录,把对应的jar上传到我们之前制作的docker容器中
# 进入 mogu_eureka目录
cd mogu_eureka\target
我们把下面的jar包复制
然后通过xftp工具,把jar复制到Docker容器的/home/mogu_blog/mogu_eureka目录,替换里面的jar包
cd /home/mogu_blog/mogu_eureka
里面的结构有:
./startup.sh #启动脚本
./shutdown.sh #关闭脚本
mogu_eureka***.jar #springboot打包的可执行jar包
/config #外部配置文件
catalina.out #启动脚本后,生成的日志文件
然后我们执行里面的start.sh脚本启动jar包
./startup.sh
startup.sh脚本其实比较简单,代码如下
#!/bin/bash
nohup java -Xms256m -Xmx512m -jar mogu_eureka-0.0.1-SNAPSHOT.jar > catalina.out 2>&1 &
tail -f ./catalina.out
就是通过nohup命令,进行后台启动 java jar包,同时里面-Xms256m -Xmx512m 是指定最大堆和最小堆内存,这个命令就是为了防止tomcat请求太多内存,而造成其它项目无法启动。
shutdown.sh脚本如下所示:
#!/bin/bash
PID=$(ps -ef | grep mogu_eureka-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{ print $2 }')
if [ -z "$PID" ]
then
echo Application is already stopped
else
echo kill $PID
kill $PID
fi
大概意思就是,我们找到jar启动的PID,然后使用kill命令杀死即可。
启动mogu_eureka后,我们重复上面的操作,分别把 mogu_picture、mogu_sms、mogu_web、mogu_admin分别执行上述操作,即可完成蘑菇博客后台项目的部署
需要注意的是:mogu_picture项目和mogu_web项目,除了替换对应的jar包外,我们还需要修改对应的配置文件,然后在启动项目
首先我们在启动startup.sh脚本前,先修改对应目录下 config文件夹的application.yml配置文件,直接修改可能会里面是乱码,可以先把它取出来,到window下修改,然后在放入
# 进入picture目录下
cd /home/mogu_blog/mogu_picture/config
# 编辑配置
vim application.yml
然后找到下面的内容
#Data image url
data:
image:
url: http://your_ip:8600/
file:
upload:
path: /home/mogu_blog/mogu_data/
特别注意的是:如果有的小伙伴自己有域名的话,并且已经配置了域名解析,即可换成对应的域名
例如:我的 picture.moguit.cn域名,映射到服务器的8600端口,那么我的配置就可以改成如下所示
#Data image url
data:
image:
url: http://picture.moguit.cn/
file:
upload:
path: /home/mogu_blog/mogu_data/
修改完成后,我们启动picture项目
同理,找到mogu_web下的config文件,我们需要将下面的域名,改成自己的IP地址
#Data image url
data:
# 门户页面
webSite:
url: http://101.132.122.175:9527/#/
# mogu_web网址,用于第三方登录回调
web:
url: http://101.132.122.175:8603
如果拥有域名的小伙伴,可以将配置改成如下形式
#Data image url
data:
# 门户页面
webSite:
url: http://www.moguit.cn:9527/#/
# mogu_web网址,用于第三方登录回调
web:
url: http://101.132.122.175:8603
同时在配置文件的最下面,还需要修改第三方注册需要的 clientId 和 ClientSecret:如果不清楚如何获取的小伙伴,可以查看我的这篇博客,在后面部分对ID的获取有相关介绍:SpringBoot+Vue如何集成第三方登录JustAuth
# 第三方登录
justAuth:
clientId:
gitee: XXXXXXXXXXXXXXXXXXXXXX
github: XXXXXXXXXXXXXXXXXXXXXX
clientSecret:
gitee: XXXXXXXXXXXXXXXXXXXXXX
github: XXXXXXXXXXXXXXXXXXXXXX
在我们把配置文件修改完成后,然后启动5个服务后,我们使用下列命令查看启动的端口号
netstat -tunlp
能够发现5个服务已经成功启动了
到目前为止已经启动了对应的端口了
tip:有些小伙伴反馈rabbitmq端口经常断开,所以在启动项目的时候,注意查看是否出现rabbitmq的报错信息,如果有的话,那就是因为rabbitmq没有正确启动而造成的,使用下面的命令启动即可
# 启动rabbitmq
systemctl start rabbitmq-server
服务器都启动完成后,下面我们验证一下后台是否正常启动,访问下列的地址:
http://your_ip:8761
首次登录会出现登录框:用户名:user,密码:password123
这个用户名密码是可以修改的,我们如果要修改的话,可以到mogu_eureka 下的 config文件夹修改配置
spring:
jmx:
default-domain: mogu_eureka
security:
user:
name: user
password: password123
eureka:
client:
registerWithEureka: false
fetchRegistry: false
serviceUrl:
defaultZone: http://user:password123@localhost:8761/eureka
我们需要修改里面的对应name 和 password即可,同时修改后,对应的defaultZone也需要修改
如果出现下面的页面,说明已经成功启动
后台项目启动后,都能够看到对应的swagger-ui页面
# admin接口
http://your_ip:8601/swagger-ui.html
# picture接口
http://your_ip:8601/swagger-ui.html
# web接口
http://your_ip:8603/swagger-ui.html
进入 admin接口是这样的
选择LoginRestApi,验证登录,输入默认用户名和密码:admin mogu2018
登录功能正常使用,我们把token复制到来,然后在swagger页面的右上角,有一个authorize的按钮,点击后,将token粘贴进去,即可操作全部接口进行测试了~
前端部分,我们现在需要修改两个地方的配置,分别是:vue_mogu_admin 和 vue_mogu_web
下面我们到 vue_mogu_web/config/目录下,修改prod.env.js文件
//配置线上环境
WEB_API: '"http://yourIp:8603"',
PICTURE_HOST: '"http://youip:8600"',
如果有域名的小伙伴,可以改成下面的配置,例如我这边有 picture.moguit.cn,用来显示图片,即可改成
//配置线上环境
WEB_API: '"http://yourIp:8603"',
PICTURE_HOST: '"http://picture.moguit.cn"',
然后执行下列命令,进行依赖安装和打包
# 安装依赖
npm install --registry=https://registry.npm.taobao.org
# 打包
npm run build
打包完成后,会生成一个dist目录,我们将整个dist目录,压缩成 zip格式
然后使用xftp工具,丢入到我们的前端目录下,目录在 /home/mogu_blog/vue_mogu_web
注意:如果该文件夹下存在 dist文件夹,我们需要将其删除,然后在解压,然后使用下面命令进行解压
unzip dist.zip
前台admin项目,修改配置的方式基本类似,我们到 vue_mogu_admin/config/目录下,修改prod.env.js文件,然后把里面的ip地址,改成你对应服务器的即可
// 生产环境
ADMIN_API: '"http://youIp:8601"',
PICTURE_API: '"http://youIp:8602"',
WEB_API: '"http://youIp:8603"',
SOLR_API: '"http://youIp:8080/solr"',
BASE_IMAGE_URL: '"http://youIp:8600"',
BLOG_WEB_URL: '"http://youIp:9527"',
如有拥有域名的小伙伴,可以将配置改成下面的形式
//生产环境
ADMIN_API: '"http://101.132.194.128:8601"',
PICTURE_API: '"http://101.132.194.128:8602"',
WEB_API: '"http://101.132.194.128:8603"',
SOLR_API: '"http://101.132.194.128:8080/solr"',
BASE_IMAGE_URL: '"http://picture.moguit.cn"',
BLOG_WEB_URL: '"http://www.moguit.cn"',
修改完成后prod.js后,我们还需要修改ckeditor图片上传的接口,vue_mogu_admin/static/ckeditor/config.js,修改下面的内容,这个只需要在admin项目才需要修改,web中没有使用ckeditor
//开启工具栏“图像”中文件上传功能,后面的url为待会要上传action要指向的的action或servlet
config.filebrowserImageUploadUrl = "http://your_ip:8602/ckeditor/imgUpload?";
//开启插入\编辑超链接中文件上传功能,后面的url为待会要上传action要指向的的action或servlet
config.filebrowserUploadUrl = 'http://your_ip:8602/ckeditor/fileUpload';
修改完成后,需要进行重新编译~ 打包~ 部署
# 安装依赖
npm install --registry=https://registry.npm.taobao.org
# 打包
npm run build
我们在按上述操作,把dist压缩,然后放到/home/mogu_blog/vue_mogu_admin文件夹下
然后解压
unzip dist.zip
执行完上述操作后,即可重新访问页面了
# 前台项目
http://yourIp:9527
# 后台项目 admin mogu2018
http://yourIp:9528
如果配置了域名的话,输入对应的域名即可
# 前台项目
http://www.moguit.cn
# 后台项目 admin mogu2018
http://admin.moguit.cn
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。