前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何通过宝塔安装蘑菇博客

如何通过宝塔安装蘑菇博客

作者头像
陌溪
发布2021-09-29 15:45:58
9020
发布2021-09-29 15:45:58
举报

作者:陌溪

陌溪的学习笔记:http://note.moguit.cn

大家好,我是陌溪

最近在蘑菇博客的交流群里,见到很多小伙伴想让我出一份宝塔安装 蘑菇博客 的文档教程。宝塔是一个简单好用的服务器运维面板,但是说实话,陌溪是一直没有使用过 宝塔面板 的,一方面是觉得 宝塔PHP 时代的产物,适合于之前的单机架构,同时宝塔本身在运行的时候也会耗费内存,容易让本不富裕的内存资源雪上加霜(最重要的是命令行这么香,为啥不用它)。

群友的咨询

不过其实也有很多小伙伴也在使用宝塔面板,并且在上面已经部署过其它的站点,然后又想要在上面部署 蘑菇博客。这个时候小伙伴跑来咨询陌溪,这样有问题么?

陌溪的回答,当然是,很有问题!

很有问题

毕竟蘑菇博客需要安装 MySQLRedisNginx,而这些新安装的软件和原来的都会有端口号冲突,如果要一起部署的话,就得做一些修改了。

下面我们一起来看看,如何在一台新机器上安装宝塔面板,然后部署蘑菇呢。

安装宝塔面板

宝塔的官网上 www.bt.cn 提供了一键部署脚本,只需要执行如下命令,即可在 CentOS 系统上进行安装。

代码语言:javascript
复制
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

命令执行完成后,即会输出对应的面板地址,包括了账号和密码

安装宝塔成功

访问后,即可打开宝塔的使用面板,同时还会提示你是否需要安装对应的软件。

宝塔首页

如果是已经使用过宝塔搭建过站点的小伙伴,里面肯定已经包含了 MySQLRedisNginx,这个时候如果在执行蘑菇博客一键部署脚本,就会有冲突了,下面让我们一起来看看蘑菇群里的大佬是怎么解决冲突的,以下是 @泪梦红尘 在改造宝塔部署蘑菇时的一些改动,让我们一起来康康吧。

感言

大家好,我是泪梦红尘,第一次看见蘑菇到现在一年有余,因为一些原因到现在我也没有一个基于蘑菇上线的网站,最近就想着直接抱 蘑菇博客 的大腿在上面发布文章(陌溪给了他一个蘑菇博客超管账号),于是就根据其他小伙伴的问题,将以前写的关于蘑菇的笔记整理了一下。

还记得,我第一次搭建蘑菇时只有一台 2C4G 的服务器,当时服务器上面用的是宝塔面板,跑着两个 PHP 的网站,为了让二者共存当时就修改了一下各自的端口,后来又发现其他小伙伴,遇到了相似的问题于是就将这篇文章整理了出来,帮助大家一起完成蘑菇博客的宝塔部署。

蘑菇博客与宝塔共存

关于蘑菇博客如何与宝塔面板共存,是有多种方案的,比较容易实现的有以下两种:

  • 第一种:修改宝塔或者蘑菇博客两者冲突的端口,缺点就是无论你修改那个,都需要做相应的更改。
  • 第二种:将两者冲突的合并起来,其实冲突的无非就是 Nginx 80 端口,MySQL 3306 端口,那蘑菇和宝塔这两个都用宝塔的不就好了。

将宝塔与蘑菇冲突部分进行合并

下面,先捋一下蘑菇与宝塔冲突的都有哪些服务

  • 首先蘑菇 vue_mogu_web80 端口
  • 其次蘑菇 vue_mogu_admin80 端口
  • 然后蘑菇上传目录需要迁移到宝塔的 nginx 目录下
  • 最后就是蘑菇的 MySQL 采用宝塔的 MySQL 服务

下面就是将以上服务由原来的 Docker 迁移到宝塔上面去,192.168.255.128 现在已经安装了宝塔

仪表盘

并且已经在这台服务器上,已经成功部署过一个 WordPress 站点(相信很多小伙伴装宝塔也是为了装这个~)

WordPress

然后我们去找一下蘑菇一键部署的脚本,并将其做下修改

代码语言:javascript
复制
# 此命令是下载 moguInit.sh然后赋予其权限立即执行
# 我们只让他下载然后修改脚本后手动执行
wget http://oss.moguit.cn/script/moguInit.sh && chmod +x moguInit.sh && sh moguInit.sh
#修改后
wget http://oss.moguit.cn/script/moguInit.sh && chmod +x moguInit.sh 

这是下载 下来的 moguInit.sh 的部分脚本,我们将框起来的两行干掉,然后在执行一下脚本即可

  • 其中 python2 replaceIp.py 是更换 ip 的脚本
  • sh kernStartup.sh 是执行部署的脚本 此脚本后期需要做下更改

一键部署脚本5

将红框的内容删除后,重新执行脚本,完成环境的搭建

代码语言:javascript
复制
sh moguInit.sh 

moguInit.sh 脚本执行之后,我们需要更改一下 nacos 配置,以及在宝塔中创建 nacos_config 数据库

在码云上面拉下来蘑菇源码后,会有一个 doc 目录里面可以找到蘑菇博客数据库脚本,将如图三个脚本导入到宝塔的 MySQL 数据库中。

导入SQL

然后在修改 nacos 配置文件目录 /root/docker-compose/yaml/nacos/nacos-config.env ,修改对应的配置信息,主要修改的是数据库的 ip 地址,以及对应的账号和密码

代码语言:javascript
复制
# 修改后nacos-config.env配置
PREFER_HOST_MODE=hostname
MODE=standalone
SPRING_DATASOURCE_PLATFORM=mysql
## 对应数据库ip
MYSQL_SERVICE_HOST=192.168.255.128
## 对应数据库名字
MYSQL_SERVICE_DB_NAME=nacos_config
MYSQL_SERVICE_DB_PARAM="characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false"
## 数据库端口
MYSQL_SERVICE_PORT=3306
## 数据库用户名
MYSQL_SERVICE_USER=nacos_config
## 数据库密码
MYSQL_SERVICE_PASSWORD=eRCTiazkWPyxd2Mx
JVM_XMS=256m
JVM_XMX=256m
JVM_XMN=256m
NACOS_AUTH_ENABLE=true
NACOS_AUTH_USER_AGENT_AUTH_WHITE_ENABLE=false
NACOS_AUTH_IDENTITY_KEY=mogu2018
NACOS_AUTH_IDENTITY_VALUE=mogu2018

注意做完这一步需要去宝塔防火墙开放 3306 端口和蘑菇所需要的端口,nacos_config 数据库访问权限也需要放行docker 容器 ip 或者 直接开放所有端口

最后,执行nacos 启动命令

代码语言:javascript
复制
docker-compose -f ../yaml/nacos.yml up -d

启动成功后,访问 nacos的图形化页面 http://ip:8848/nacos

nacos启动完成

接下来我们去宝塔导入蘑菇数据库脚本

  • 分别创建 mogu_blogmogu_picture 两个数据库,并将 doc 目录下脚本进行导入
  • 需要注意下访问权限 改为所有人或者开放 docker 容器的 IP ,否则 docker 会访问不到数据库。

开放端口号

下一步,去 nacos 中修改配置将对应数据库密码修改下。

编辑nacos配置

将所有服务配置进项检查修改,主要修改的是里面的 mysql 账号和密码

编辑Mysql配置 然后就是将 mogu_picture 上传图片的目录进行下修改

修改图片上传目录

进入 /root/docker-compose/yaml ,修改 mogu_picture.yml

代码语言:javascript
复制
version: '3'
services:
  #授权服务
  mogu_picture:
    image: registry.cn-shenzhen.aliyuncs.com/mogublog/mogu_picture:latest
    container_name: mogu_picture
    restart: always
    ports:
      - 8602:8602
    networks:
      - mogu
    environment:
      - COMPOSE_PROJECT_NAME=mogu_picture
    volumes:
      - ../log/:/logs/
      - ../config/mogu_picture/:/config/    
      ## 映射目录修改为宝塔目录
      - /www/wwwroot/mogu_picture.cn/:/home/mogu_blog/mogu_data/
networks:
  mogu:
    external: true

然后我们进到 /root/docker-compose/bin 目录修改 kernStartup.sh 脚本,干掉 MySQLvue_mogu_web, vue_mogu_adminnacos

代码语言:javascript
复制
#!/usr/bin/env bash
echo '=====nacos正在进行初始化,请等待...====='
./wait-for-it.sh localhost:8848 --timeout=60  -- echo "=====nacos已经准备就绪====="
echo '=====开始运行rabbitmq====='
docker-compose -f ../yaml/rabbitmq.yml up -d
echo '=====开始运行redis====='
docker-compose -f ../yaml/redis.yml up -d
echo '=====开始部署mogu_data====='
docker-compose -f ../yaml/mogu_data.yml up -d
echo '======================'
echo '=====开始运行后台====='
echo '======================'

echo '=====开始运行mogu_gateway====='
docker-compose -f ../yaml/mogu_gateway.yml up -d

echo '=====开始运行mogu_admin====='
docker-compose -f ../yaml/mogu_admin.yml up -d

echo '=====开始运行mogu_picture====='
docker-compose -f ../yaml/mogu_picture.yml up -d

echo '=====开始运行mogu_sms====='
docker-compose -f ../yaml/mogu_sms.yml up -d

echo '=====开始运行mogu_web====='
docker-compose -f ../yaml/mogu_web.yml up -d

echo '执行完成 日志目录: ./log'

echo '================================================================='
echo '=====【微服务启动需要耗费一定时间,请到Nacos中查看启动情况】====='
echo '================================================================='

执行脚本后去 nacos 检查下服务是否都已经正常启动

查看是否启动成功

当后台服务都已经正常启动后,需要去将前台页面进行打包了,打包后交给宝塔 nginx 管理就大功告成了

  • 将蘑菇博客从码云上拉下来
  • 分别在 vue_mogu_adminvue_mogu_web 目录下执行 npm install (本机需要装 nodejs
  • 分别替换 vue_mogu_admin 和 **vue_mogu_web **中的 .env 文件的 ip 地址

替换ip端口号

  • 分别在 vue_mogu_adminvue_mogu_web 目录下执行 npm run build 进行打包
  • 最后将打包后 dist 目录上传到宝塔中

上传打包后的dist文件

打开测试,能够正常访问,前端没有图片 去后台系统配置哪里,将图片改为 picture 绑定的域名即可

首页访问成功

通过请求后端地址,也能够成功访问

后端访问成功

到此 蘑菇博客就与宝塔共存,当然还有其他的方案,比如改下 nginx 端口 MySQL 端口,或者直接在宝塔中运行蘑菇,但是我感觉这种是比较容易维护且对其他项目侵入都比较小的。

最后,认识蘑菇博客也有一年多了,各种搭建方式也都有过尝试,自认坑都踩的差不多了,有其他小伙伴有蘑菇方面的问题,欢迎过来蘑菇交流群中,与我进行交流吧。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-09-28,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 陌溪教你学编程 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装宝塔面板
  • 感言
  • 蘑菇博客与宝塔共存
  • 将宝塔与蘑菇冲突部分进行合并
相关产品与服务
对象存储
对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档