个人博客搭建:如何使用Halo与宝塔搭建同款网站
1. 前期准备
1.1 服务器选择
我推荐使用的是阿里云的轻质量ECS服务器,因为阿里云有全面的产品和服务。在提供DNS云解析,容器管理,安全解决方案等等网站配套服务,有完整且全面的生态。大大减少了我们挑选适配和维护网站的时间成本。但是选择其他提供商也大差不差。
你也可以租一台海外服务器,这样通信更加方便,但是国内访问会慢
1.2 获取域名
获取域名有很多种渠道:
- 付费渠道:在各大服务提供商或其他方式购买
- 白嫖:
- 你可以使用一些免费的顶级域名(如
.tk
,.ml
,.ga
,.cf
,.gq
)在一些免费的域名提供商注册:Freenom等等。但是他们可能会有一些限制 - 使用托管服务商提供的免费子域名如:Github Page、Netlify、Vercel等等。不过这些提供商都提供了不同的域名使用规则,在此不便赘述
- 你可以使用一些免费的顶级域名(如
1.3 开放服务器安全组
服务器安全组必须将几个常用的端口开放才能正常通信如:https(443),(宝塔)8888,(Halo)8090,http(80),SSH(22)等等。开放端口在你的服务器控制台安全组
2. 安装宝塔面板
你可以在选择阿里云服务器配置的时候勾选带有宝塔面板的配置,或者在宝塔官网上使用公网ip安装。安装完成后你可以使用ip:8888在浏览器访问面板。PS: 如果你使用服务器安装面板可以使用 sudo /ect/init.d/bt default
命令查看
2.1 安装docker
- 尝试在宝塔面板安装:登录到宝塔面板后,点击左侧docker一栏,在里面安装
- 如果上面安装失败,可能是网络通信问题,你可以使用命令,在服务器终端安装,先在阿里云控制台远程连接服务器,并在服务器终端使用
sudo apt-get install docker-ce
安装
2.1 拉取Halo镜像
- 在你的服务器终端使用
docker run -d --name halo -p 8090:8090 halohub/halo:2.16
命令安装,注意:使用该命令必须指定Tag,不能使用latest或不指定,这会拉取到低版本的halo,因为自从halo2.0以后他们就不维护Tag了 - 由于docker退出中国了,带给了我们这些开发者诸多不便,如果上面命令出现443I/O异常,以下提供几种解决方案:
- 使用阿里云容器镜像服务,创建个人实例,并在本地docker拉取halo,并上传到阿里仓库,通过镜像在服务器拉取阿里仓库的halo。(这个方法可能需要docker的使用基础)docker官方使用文档
- 在本地拉取到halo镜像后,使用
docker save -o halo_2.16.tar halo:2.16
导出镜像为.tar压缩包。传输tar文件到目标机器上scp halo_2.16.tar user@youIP:/home/user/
,再在服务器上使用docker load -i /home/user/halo_2.16.tar
导入镜像 - 在其他开放镜像仓库寻找替品,如国内的atomhub等等
- 使用阿里云镜像加速器,查询到自己的镜像加速器并按照提示配置,完成后再次使用
docker run
命令看看是否能够拉取成功
3. 配置域名
在上面流程结束后,你就可以使用8090端口访问到你的halo博客了,但是会暴露你的ip的端口号,这不是很好的访问方式,下面通过几个步骤来修饰我们的网站:
3.1 DNS云解析
使用域名的前题使你的域名必须被正确的解析到你网站的IP地址。阿里云提供了相应的服务DNS云解析根据你的公网ip和域名类型进行填写,确保他能正确解析到
3.2 域名备案
如果你使用的是国内域名,那么只有备案后才能使用,你可能需要在工信部备案,阿里云提供了相应的备案流程ICP备案,根据流程走完备案,一般7天左右就能完成,具体时间快慢看你所在地。PS:你的服务器必须是包月大于3个月才能使用相应的服务器备案,试用服务器不能备案
3.3 反向代理
在宝塔面板,点击左侧网站,在上面会有一栏反向代理,如果没有你可能需要在面板应用里下载nginx,添加完你的ip和域名,就能启动nignx反向代理你的网站了
4. 获取ssl证书
宝塔提供了免费ssl证书的获取方式,当你添加完反向代理后,点击进去,选择左侧ssl证书,选择测试证书,正确填写,就能免费申请到CA证书,但是只有九十天,到期时需要进来续。有了ssl证书后我们就可以使用https安全的访问我们的网站了。
如果你财大气粗,你可以购买ssl证书,各大服务提供商也都有卖的
5. 安装主题,配置自己的Blog吧
在高版本halo内置了应用商店,我们可以上去搭配自己的网站样式,我在此列举一些我认为比较有用的插件和主题:
大家可以搭配使用,有能力的也可以根据Halo文档自己制作插件和主题。halo的生态将插件和主题分开。这样可以在生态上做到“前后端分离”。及做插件可以不用写过多的前端代码。制作主题则不用考虑后端。这样的搭配,可以照顾到技术栈不是特别全面的小伙伴来贡献社区。#Halo社区 #Halo文档
评论区