这篇文章与其说是分享,不如直接说是我部署过程的记录,虽然文中写到的东西在其他博客都能找到,但是我仍然还是记录下我使用到的部署流程,方便我以后换服务器,或是其他特殊原因,需要重新部署时查阅

前言

昨天心血来潮,把服务器又折腾了一番,之前采用Nginx + Docker方式部署,所有映射及转发都采用手动配置,当然这些对于我来说并没什么难度,而现在采用baota + Nginx + Docker方式部署,目前使用的是静态博客,以及fcircle + twikoo部署都更为便捷,下面分享内容主要以文字为主,可能不会截图,这部分部署相信大家都会

安装

由于我的服务器并不是纯净系统,所以不能直接安装宝塔,当然网络上也有人说可以通过 docker 安装 centos 方式来安装,但是我没试,而采用粗暴方式,重装系统(记得备份),我这里选择宝塔专享版的镜像直接安装

安装完后,发现这个专享版什么也不带,需要自己安装Apache、Nginx,当然php也不能少

部署

部署 hexo

源代码拉到服务器,然后hexo g编译,宝塔配置目录绑定即可,eg:/www/wwwroot/hexo_blog/public

部署 fcircle 鱼塘

Docker部署

之前部署在vercle上,总感觉不太稳定,现改为私有部署,我这里采用 docker 部署,官网

  1. 安装 Docker CE 之前需要删除 Docker 旧版本
    1
    yum remove docker docker-common docker-selinux docker-engine
  2. 安装 Docker 所需的软件包
    1
    yum install -y yum-utils device-mapper-persistent-data lvm2
  3. 设置 docker yum 源
    1
    yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
  4. 安装 DOCKER CE
    1
    2
    yum install docker-ce
    yum list docker-ce --showduplicates | sort -r #要安装特定版本的Docker CE,请列出repo中的可用版本
  5. 启动 Docker
    1
    2
    systemctl start docker
    systemctl status docker
1
yum install -y git

宝塔中自带python,在软件商店直接安装即可,我这里采用服务器安装模式

  1. 安装依赖
    1
    yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel yum vim gcc
  2. 安装 python
    1
    2
    3
    4
    wget https://www.python.org/ftp/python/3.8.8/Python-3.8.8.tgz
    tar -zxf Python-3.8.8.tgz && cd Python-3.8.8
    ./configure --prefix=/usr/local/python3
    make && make install
  3. 建立软连接
    1
    2
    ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3
    ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
  4. 验证(出现版本号即安装成功)
    1
    python3 --version
  5. 安装 yaml
    1
    pip3 install pyyaml

找到进程号,杀掉即可

1
ps aux

kill 掉 PID 即可,也可通过fcircle项目中python3 deploy.py脚本一键取消运行

  1. 克隆仓库
1
git clone https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
  1. 拉取镜像
1
docker pull yyyzyyyz/fcircle:latest
  1. 运行部署脚本
    进入hexo-circle-of-friends根目录,运行一下脚本,选择docker -> 部署即可
1
python3 deploy.py

尝试访问:curl 127.0.0.1:8000/all,有数据即为部署成功,再使用域名反向代理即可

部署 twikoo

官网

  1. 拉取镜像
    1
    docker pull imaegoo/twikoo
  2. 运行容器
    1
    docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v /root/twikoo/data:/app/data -d imaegoo/twikoo

部署卜算子

  1. 搭建docker + docker-compose环境;
  2. 宝塔添加静态页面,绑定域名busuanzi.lovelu.top,别忘记添加解析;
  3. 进入/www/wwwroot/busuanzi.lovelu.top下,新建docker-compose.yaml,内容如下;
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: "2"
services:
redis:
image: "redis:alpine"
volumes:
- /root/busuanzi/redis:/data

bsz:
image: "xcsoft/busuanzi:latest"
ports:
- "8999:8080"
volumes:
- /root/busuanzi:/app/expose
links:
- redis
depends_on:
- redis
environment:
LOG_ENABLE: true
API_SERVER: http:\/\/127.0.0.1:8999\/api

端口根据自己需要,因为我 8080 占用,所以改用 8999,记得添加解析,以及防火墙配置
其中你需要修改API_SERVER为你的地址,例如你的网址为busuanzi.lovelu.top,那么就需要填写https:\/\/busuanzi.lovelu.top\/api
修改完成后,执行docker-compose up -d4. 宝塔设置反代
http://127.0.0.1:8999进行代理即可

另外有个坑,记录一下
这个的 id 名为:busuanzi_page_pv
我的原来是:busuanzi_value_page_pv
如果你的也是busuanzi_value_site_pv,需要更改一下。butterfly 主题可以到themes/butterfly/layout/includes/header/post-info.pug文件中修改

一套部署下来,服务器内存占用还是比较客观,下面再去部署一个图床吧

参考:HeoAkilar安知鱼

以上我的部署就完成了,剩下就是配置反向代理以及 SSL 了