hexo博客相关应用部署历程
这篇文章与其说是分享,不如直接说是我部署过程的记录,虽然文中写到的东西在其他博客都能找到,但是我仍然还是记录下我使用到的部署流程,方便我以后换服务器,或是其他特殊原因,需要重新部署时查阅
前言
昨天心血来潮,把服务器又折腾了一番,之前采用Nginx + Docker方式部署,所有映射及转发都采用手动配置,当然这些对于我来说并没什么难度,而现在采用baota + Nginx + Docker方式部署,目前使用的是静态博客,以及fcircle + twikoo部署都更为便捷,下面分享内容主要以文字为主,可能不会截图,这部分部署相信大家都会
安装
由于我的服务器并不是纯净系统,所以不能直接安装宝塔,当然网络上也有人说可以通过 docker 安装 centos 方式来安装,但是我没试,而采用粗暴方式,重装系统(记得备份),我这里选择宝塔专享版的镜像直接安装
安装完后,发现这个专享版什么也不带,需要自己安装Apache、Nginx,当然php也不能少
部署
部署 hexo
源代码拉到服务器,然后hexo g
编译,宝塔配置目录绑定即可,eg:/www/wwwroot/hexo_blog/public
部署 fcircle 鱼塘
之前部署在vercle
上,总感觉不太稳定,现改为私有部署,我这里采用 docker 部署,官网
安装docker
- 安装 Docker CE 之前需要删除 Docker 旧版本
yum remove docker docker-common docker-selinux docker-engine
- 安装 Docker 所需的软件包
yum install -y yum-utils device-mapper-persistent-data lvm2
- 设置 docker yum 源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装 DOCKER CE
yum install docker-ce yum list docker-ce --showduplicates | sort -r #要安装特定版本的Docker CE,请列出repo中的可用版本
- 启动 Docker
systemctl start docker systemctl status docker
安装git
yum install -y git
安装python
宝塔中自带python,在软件商店直接安装即可,我这里采用服务器安装模式
- 安装依赖
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
- 安装 python
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
- 建立软连接
ln -s /usr/local/python3/bin/python3.8 /usr/bin/python3 ln -s /usr/local/python3/bin/pip3.8 /usr/bin/pip3
- 验证(出现版本号即安装成功)
python3 --version
- 安装 yaml
pip3 install pyyaml
停止运行
找到进程号,杀掉即可
ps aux
kill 掉 PID 即可,也可通过fcircle项目中python3 deploy.py脚本一键取消运行
部署后端
- 克隆仓库
git clone https://github.com/Rock-Candy-Tea/hexo-circle-of-friends
- 拉取镜像
docker pull yyyzyyyz/fcircle:latest
- 运行部署脚本
进入hexo-circle-of-friends
根目录,运行一下脚本,选择docker -> 部署
即可
python3 deploy.py
尝试访问:curl 127.0.0.1:8000/all,有数据即为部署成功,再使用域名反向代理即可
部署前端
部署 twikoo
- 拉取镜像
docker pull imaegoo/twikoo
- 运行容器
docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v /root/twikoo/data:/app/data -d imaegoo/twikoo
部署卜算子
- 搭建docker + docker-compose环境;
- 宝塔添加静态页面,绑定域名busuanzi.lovelu.top,别忘记添加解析;
- 进入/www/wwwroot/busuanzi.lovelu.top下,新建
docker-compose.yaml
,内容如下;
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 -d
4. 宝塔设置反代
将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
文件中修改
一套部署下来,服务器内存占用还是比较客观,下面再去部署一个图床吧
以上我的部署就完成了,剩下就是配置反向代理以及 SSL 了
空空如也!