本博客使用Halo博客框架,原本是一直在使用Hexo
但Hexo没有后端,管理和发布比较受局限因此暂时搞一个Halo博客用一阵。因此Hexo的优势很明显——绝对的免费
对于云服务器
阿里云、华为云、腾讯云等大厂云服务器价格偏贵,不要去相信什么首年特惠!等续费时直接让你傻眼。如果你还是想使用大厂服务器那么你可以**1+1购买**就是一年一年的买,在第一年到期之后不进行续费然后例如腾讯云会有老用户专区哪里可以进行打折购买新服务器,价钱要看官方如何定价价格是浮动的。
我使用的是小厂云服务器,这里就不把他介绍出来了,如果也想了解一下我这个云服务器的提供商不妨评论一下或者私信我会将地址发送给你。这里不提供名称是因为这个服务器厂商还是不错的而且至少不会跑路并且价钱对于我这种还是学生的来说正好合适2H 2G过年打折期间270多并且购买后还有返利支持提现到支付宝(新用户10%返利)还有就是因为他毕竟是小厂嘛价格便宜所以经常会受到攻击官网经常被打死(大概二周一次吧)但服务器不会受到影响,受影响的只有官网有时配套的免费CDN会受到影响
搭建Halo博客 2H2G就已经足够,4H4G也可以,但建议在2H2G不足够提供博客支持时升级到4H4G避免资源富裕
![](https://img-blog.csdnimg.cn/img_convert/53c7bf047ceba8e48d00869c6b15e2b6.png)
搭建历程
系统环境
建议安装宝塔面板以及在宝塔里面安装Docker,若您不打算安装宝塔(您真是一身反骨呢)请前往Docker官网选择与您相对应的Docker安装指令
这里将按照我的服务器系统和博客版本进行安装,其他服务器系统同理,换汤不换药。
当你购买完成服务器以后请将你的系统更改为CentOS 7.x~CentOS 8,很多人不推荐使用CentOS 8说是有一定的适配问题,经过我前几次的安装踩坑对于CentOS 8来说可以适配Halo1.6.0以下的版本(包含1.6.0)但在CentOS 8部署Halo2.0.0以上版本时我发现了在上传完成附件时会无法预览提示预览失败,但却写着上传成功,原因不得而知所以**推荐各位使用1.6.0版本**
Halo安装以及部署(使用Docker部署)
接下来请点击进入Halo 1.6.0 官方文档在安装指南中点击使用Docker部署Halo
1.创建工作目录
请在你的键盘上按住Win+R进入cmd(如果你使用的服务器有自带的SSH终端可省略这一步)
复制这个命令`ssh root@(IP地址)`记得在@输入你的IP地址
什么?你问我然后?当然是输入密码啊!但密码在你输入或复制后是不可见的直接Enter即可
之后请复制下面的代码在终端中之后Enter运行
mkdir ~/.halo && cd ~/.halo
2.下载示例配置文件到工作目录
Halo 所依赖的工作目录,在运行时产生的一些文件会在这里
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
3.编辑配置文件,配置数据库或者端口等
这一步有些人可能会有些插曲这些人有可能会出现这个`-bash:vim: command not found`解决方案如下:
输入`rpm -qa|grep vim`命令,对于Halo来说需要具备以下三个Vim(版本不限)
vim-minimal-7.0.109-6.el5
vim-common-7.0.109-7.2.el5
vim-enhanced-7.0.109-7.2.el5
若缺少某一个则输入(这里以enhanced作为例子)`yum -y install vim-enhanced`或者全部重新安装`yum -y install vim*`至此插曲解决完毕。
配置文件可编辑可不编辑,若不编辑按Esc退出,然后Shift+:初入wq!完成(是否需要输入这些请自行判断)
vim application.yaml
4.拉取最新的 Halo 镜像
这里版本号不过多赘述,请自行选择您需要的版本(这里以1.6.0为例)
docker pull halohub/halo:1.6.0
5.创建容器
官网是横着的没有分段,我看着很难受很不容易理解,我帮各位分解好了可复制粘贴使用
官网:
docker run -it -d --name halo -p 8090:8090 -v ~/.halo:/root/.halo --restart=unless-stopped halohub/halo:1.6.0
更改格式(为了更美观):
docker run \
-it -d \
--name halo \
-p 8090:8090 \
-v ~/.halo:/root/.halo \
halohub/halo:1.6.0 \
输入完Enter以后会有一大串英文加数字不拉不拉~则创建成功(注意:若您使用的是国内服务器请前往提供商防火墙添加8090端口)
完成之后去你的域名注册商添加解析(我的是阿里云的其他厂请注意内容顺序!)
主机记录 | 记录类型 | 记录值 |
@ | A | 你的IP |
www | A | 你的IP |
在网页输入您的IP:8090/admin进入后台进行初始化配置(这里就不用我教您了吧)之后若您使用了宝塔面板请您移步到宝塔面板,进入网站页面点击添加站点域名,进行操作(这些只能靠您自己了)
搞完了?哦~,那接下来沿着你刚刚添加完的站点向后看,请点击设置然后点击SSL配置SSL证书(前往域名注册商会有免费的SSL证书,您先搞我去摸会鱼)哦!对了不要忘记开启强制HTTPS
什么?搞完了?哦,接下来在你刚刚搞的SSL上面有一个配置文件看到了吧,瞄准下面这些代码将他们注释掉
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
中间省略:大概在56-68首尾我已经给出
access_log /dev/null;
}
然后在下方回车添加新代码
反代脚本:
location / {
proxy_pass http://127.0.0.1:8090/;
rewrite ^/(.*)$ /$1 break;
proxy_redirect off;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Upgrade-Insecure-Requests 1;
proxy_set_header X-Forwarded-Proto https;
}
注意缩进这里我给出图片
![](https://img-blog.csdnimg.cn/img_convert/b5bebe242fcd77e3537d5dcbbd206e98.png)
注意!注意!注意!
请不要使用域名/admin访问后台,尽量使用IP/admin进入后台二者会存在数据异常以及不同步问题,博主已经遇到这个问题,解决方案便是放弃原有Docker Halo容器重新创建一个,不需要重做系统或格式化服务器。
之后就可以通过域名访问您的网站了,若想要添加CDN除了大厂之外的我推荐您CouldFlare到这里Halo就已经部署完成了主题配置就是您自己的事情了,在写的过程中我并没有一步一步去重演然后撰写可能会有遗漏或者位置前后颠倒的,如有发现请评论指正我会进行修改,感谢你的阅读。
闲话:原文首发于个人博客
麻了!TNND为什么不支持MarkDown!为什么!