小白也可以,10分钟搭建大气的Halo博客(保姆级教程)
一、博客的好处
很多程序员、职业投资人、KOL喜欢建立自己的博客系统,为的是让自己有一个知识归纳的工具,也为自己收纳的各种资料有一个线上存储的记事本。到了币圈后,虽然有很多人用Mirro、Medium等文字工具,但这些工具对于中国用户来说是有排版局限性的。
博客对KOL的好处
如果你是KOL,你一定不希望自己写的内容,展现出来的效果是“密密麻麻”都是字,这在美观度上会差一大截。对于媒体人来说,在现在垂类领域专业性的同时,如果你有一个很好的内容展现工具,给读者的首因效应是不是更好,这样用户留存度是不是要好很多。有可能你是一位“半路出家”的KOL,在内容方面与头部差一大截,内容承载方式与其他人拉不开距离,这时如果就应该寻找新的突破口,因为内容基本雷同,这时就可以在展现方式上与他人有所区别。让粉丝今后看到别人“密密麻麻”的内容不止所错时,会想到“有一位排版清晰的KOL”,是不是应该去他那里看看有没有相关知识。那么今天就来讲清楚,即使你是小白,完全不懂编程,该怎么做出去中心化的博客。
二、博客搭建前
在搭建博客前,你需要准备:1、服务器(云服务器、VPS、ECS都可以); 2、SSH工具(Xshell、FinalShell、terminus都可以); 3、域名; 4、一个面板工具(比如宝塔面板);
几个小问题
1、需要编程基础吗?
不需要,对照着教程一步步走,0基础也可以搭建漂亮的博客网站。
2、关于服务器
如果你想保护自己隐私,可以使用海外版;国内服务器需要实名制,使用国内服务器搭建的博客或者网站,需要在工信部备案。
3、关于域名
域名在以上任意平台购买即可,选择性价比最高的。
4、关于面板工具
一般情况下,在服务器中搭建好博客/网站后,需要用面板工具做nginx反向代理(理解成域名绑定)工作。当然也可以在服务器中用命令符执行,但对于新手来说容易出错,所以本教程使用最简单的宝塔面板;宝塔面板有海外版(aapanel),若不习惯可使用国行版,但国行版注册后需要实名制,很多人使用某宝和某鱼解决国行版账号实名问题。
三、搭建博客必经步骤
当你购买好服务器、域名,下载好SSH工具后,就可以开始搭建自己的博客了,本教程按照一下6步进行:
第1步:绑定服务器
这里以Xshell为例,介绍服务器绑定操作。https://www.netsarang.com/en/xshell/ 步骤1 、在Xshell中点击左上角新建(新下载的客户端会自己弹出来);
步骤2、填名称,主机处填购买的服务器的公网IP;步骤3、点击链接,在弹出的兑换框中点“接受并保存”;步骤4、在名称处输入:root
步骤5、输入购买的服务器密码。
面板中出现:WARNING!表示服务器链接成功
第2步:修改服务器端口
一般情况下是不需要修改端口的,但很多人在安装Halo博客时,在验证那一步过不了,为了避免这种重复出错的情况,充哥一般建议事先将端口修改成“8090”;修改端口的方式有好几种,比如win的远程桌面修改法、服务器提供商后台修改法、还有一个比较方便的是命令行修改法,本文介绍的是命令行修改法,主要是比较方便,能在Xshell解决的问题,就不再开多个页面了。我使用的服务器linux系统为centos7,我们来看看服务器的命令行演示端口是如何开放的:
步骤1、查看服务器的防火墙时候打开
在Xshell中输入:
systemctl status firewalld
如果显示active,说明防火墙正常运行;否则需要打开防火墙。
如果没有显示active,请先重连服务器再试一遍,如果还是没有显示active,请跳过下文“步骤2”,用“步骤2”的方法运行防火墙,然后再执行“步骤2”的操作。
步骤2、对外开放端口
1、查询端口是否对外开放:
firewall-cmd --query-port=8090/tcp
如果开放则显示yes,否则显示no
2、如果没开放,需要执行:
firewall-cmd --add-port=8090/tcp --permanent
3、然后,重新加载防火墙的端口,执行:
firewall-cmd --reload
执行后,再次查看端口对外开放状态,确认端口已对外开放
如果需要取消对外开放的端口,使用: firewall-cmd --permanent --remove-port=8090/tcp 命令
步骤3、运行防火墙
如果你执行上文“步骤1”时显示的是“active”,请忽略这一步;如果没有显示“active”,在确认服务器正常链接后,请执行以下操作;使用指令:
systemctl start firewalld
如果开启失败,先执行:
systemctl unmask firewalld.service
然后,再执行:
systemctl start firewalld.service
第3步:解析域名
购买域名后,需要将域名解析,解析域名一般用:cloudflare.com ;这里以在 namesilo.com 购买的域名为例,做域名解析介绍:
步骤1、在namesilo购买域名后,进入域名管理界面,点击“地图”图标;
步骤2、点旁边的“X”,依次删除历史解析;
步骤3、点击界面上方“Return to my domains”,返回域名管理界面;
步骤4、给域名添加IP;
点击地球图标
在弹出的界面中找到DNS栏,点“A”,进入ip添加界面;
输入服务器ip,保存;
步骤5、进入cloudflare.com添加站点;
新注册的用户一般会进入“添加站点”界面,在“添加站点”处输入购买的域名;
选择免费使用
等待解析,一般十几分钟左右
步骤6、在等待的过程中,点击该界面域名,查找cloudflare名称服务器;
依次复制
步骤7、进入namesilo域名管理界面,点击最右侧的按钮,准备修改名称服务器;
步骤8、点击“Click here to select our Premium nameservers”,
将cloudflare的2条名称服务器依次粘贴过来;
返回管理界面后,会看到正在处理的英文字符;
刷新一下,看到active,表示名称服务器修改成功。到这里,在namesilo的操作就基本完成了,返回cloudflare等待解析成功即可。
步骤9、配置DNS
以上步骤走完之后,主页点击你添加的域名,点击DNS,进入DNS配置页面;点击“添加”,类型选择“A”,名称输入“@”,IP地址输入你购买的服务器IP,关掉代理状态,保存。
到这里,整个域名解析就全部完成,我们可以进行博客搭建了。
第4步:开始博客部署代码
(一)检查
官方介绍两种 Linux 发行版的安装方式,均为 OpenJRE,本文使用其中的CentOS系统来搭建博客;接下来的操作要仔细看了,一个字符都不要漏掉。打开Xshell输入
sudo yum install java-11-openjdk -y
检查版本
java -version
如果Xshell输出以下类似内容即代表成功
openjdk version "11.0.16" 2022-08-12 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.16+1-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.16+1-LTS, mixed mode, sharing)
(二)安装
步骤1、创建存放 运行包 的目录,这里以 ~/app 为例
mkdir ~/app && cd ~/app
步骤2、下载运行包
wget https://dl.halo.run/release/halo-1.5.4.jar -O halo.jar
步骤3、创建工作目录 (PS:一定要创建这个目录)
mkdir ~/.halo && cd ~/.halo
步骤4、下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
步骤5、编辑配置文件,配置数据库或者端口等,如需配置请参考 配置参考
官网用vim,有的博主用nano,可能你用的时候就会出现“command not found”这样没有找到的提示:
你只需要将“vim”改成“vi”就可以了;
vi application.yaml
步骤6、在弹出的界面中,修改用户名和密码;
键盘上下左右建可以移动光标;按下键盘“Insert”,切换到编辑模式;按“Backspace”删除字符,输入字母可重命名。
修改完成后,按“esc”,输入“:wq”,退出并保存。
步骤7、测试运行 Halo
在Xshell输入:
cd ~/app && java -jar halo.jar
如看到类似以下日志输出,则代表启动成功。
步骤8、打开浏览器,输入 http://ip: 端口号 看有没有安装引导界面;
出现上图表示测试以上所有步骤没有问题,我们就可以返回Xshell,按“Ctrl+C”关闭测试。
如果浏览器显示链接失败,说明防火墙没有打开,请返回上文“修改服务器端口”对照着将端口改成8090。
(三)作为服务运行
步骤1、下载 Halo 官方的 halo.service 模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
步骤2、修改 halo.service
vi /etc/systemd/system/halo.service
在弹出的界面中,请做如下操作
1、删除user行2、修改YOUR_JAR_PATH的配置,改成绝对地址;地址查找如下:
点击Xshell上方“新建文件传输”按钮(第一次会提示下载Xftp 7)
在弹出的对话框中,点击“root文件”,点击“app文件”,复制文件行;
返回Xshell,修改地址
建议将 /usr/bin/java -server -Xms256m -Xmx256m -jar /root/app/halo.jar 复制下来;
修改完成后,按“ESC”,输入“:wq”,回车,返回Xshell主界面;
输入刚刚复制的命令,看能不能运行:
/usr/bin/java -server -Xms256m -Xmx256m -jar /root/app/halo.jar
Halo has started successfully!表示设置成功
步骤3、重新加载 systemd
systemctl daemon-reload
步骤4、运行服务
systemctl start halo
步骤5、在系统启动时启动服务
systemctl enable halo
可以查看服务日志检查启动状态
journalctl -n 20 -u halo
到这里,我们在远程服务器上搭建的Halo博客系统已经全部完成,接下来就是注册博客。
第5步:注册博客&下载安装主题
步骤1、在浏览器中输入 http://ip: 端口号,进入博客注册页面,注册博客,安装;
步骤2、进入博客后台管理界面后,点击“外观”,点击“主题”,点击“安装”,准备安装Halo2.0主题;
步骤3、进入 https://halo.run 官网,点击主题仓库,找到Halo2.0主题,下载;
步骤4、返回Halo博客后台管理器,点击“安装”,点击中间文档提示,将下载好的主题上传到博客后台;
点击“启用”,这是Halo2.0就部署到博客后台了;
查看是否部署成功,点击后台页面左上方的链接,可跳转至博客正式页面;
步骤5、配置API
进入主页后,你会看到API配置错误;
请参照如下操作:返回用户管理界面后台,点击“设置”、“主题设置”、“基本设置”,复制“AccessKey”栏的字符;
点击“系统”、“博客设置”、切换到高级选项,点击“API设置”,打开“API服务”,粘贴刚复制的“AccessKey”,保存
到这里,整个博客后端部分已经全部部署完成,可以通过IP浏览博客; 如果想给博客配置域名,请看下文“绑定域名”。
第6步:设置反向代理(绑定域名)
进入宝塔官网,注册宝塔;
https://www.bt.cn/new/download.html
切换到前台后,点击“下载安装”;
步骤1、将Centos安装脚本粘贴至Xshell;
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec
若Xshell已断开链接,请点击“文件”,重新链接。
出现询问“y/n”时,输入“y”;
步骤2、待Linux面板安装完成后,复制“外网面板地址”到浏览器中打开;
输入Xshell中提示的账号和密码,进入面板管理工具;
ps:面板地址、用户名、密码请务必记好。 这里建立截图把这些保存下来,如果忘记了可以在SSH中输入bt default重新查看。
步骤3、进入宝塔面板后,关掉系统推荐插件,点击“网站”,在弹出的对话框中点下载;
步骤4、下载完成后,点击“添加站点”,输入准备好的域名,其他不变,提交
步骤5、设置SSL证书;
点击“网站”,点击“未部署”,点击“Let’s Encrypt”,“申请”;
步骤6、点击“当前证书”,打开“强制HTTPS”,保存
步骤7、点击“设置”,“配置文件”,准备做反向代理;
步骤8、在第一行添加
upstream halo {server 127.0.0.1:8090;
}
步骤9、在“文件配置”中,找到68行,回车,输入官方提供的节点:
location / {proxy_pass http://halo;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;
}
步骤10、修改location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 节点
修改成官方节点:
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{proxy_pass http://halo;expires 30d;error_log /dev/null;access_log off;
}
步骤11、修改 server 节点中的 location ~ .*\.(js|css)?$ 节点:
如下图所示:
将其改成官方节点:
location ~ .*\.(js|css)?$
{proxy_pass http://halo;expires 12h;error_log /dev/null;access_log off;
}
完整配置文件示例(仅包含关键部分):
upstream halo {server 127.0.0.1:8090;
}
server
{...location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)${proxy_pass http://halo;expires 30d;error_log /dev/null;access_log off;}location ~ .*\.(js|css)?${proxy_pass http://halo;expires 12h;error_log /dev/null;access_log off; }location / {proxy_pass http://halo;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;}...
}
具体参照官方:https://docs.halo.run/getting-started/install/other/bt-panel/
步骤12、保存
到这里就已经完成博客的所有初步搭建了,后期可以通过域名访问我们的博客。返回博客后台管理器,将域名添加只博客后台即可。
小白也可以,10分钟搭建大气的Halo博客(保姆级教程)相关推荐
- 使用Hexo搭建个人博客-保姆级教程
使用Hexo搭建个人博客-保姆级教材 首先我们看一下最终效果,按照以下步骤最后就可以完成和我一样的博客 https://chen-mingxuan.gitee.io/blog-test/ PS:CSD ...
- 10分钟搭建一个免费个人博客网站
一个程序员怎么能不拥有自己的博客,本文让10分钟快速搭建部署好自己的博客 准备工作 有Gitee账号 有安装git 会 markdown 编写文档 Node.js 版本 >= 8.6 博客采用V ...
- hexo —— 搭建个人博客保姆级教程
之前我去找过很多大佬使用 hexo 搭建博客的文章,大多是 18 19 年的文章,因为这期间 github 发生了下更新,有些东西不配置的话会报错.在这篇文章中,我将会带领大家搭建一个属于个人的博客, ...
- 快速搭建个人博客——保姆级教程
文章目录 序言 本地网站 开发工具 WebStorm Vscode 框架 Hexo(强烈推荐) WordPress 本地环境 git node.js Hexo 安装 初始化 主题 样式 Butterf ...
- Hadoop全分布式集群搭建(全网最详细,保姆级教程)
在上一篇Hadoop环境搭建(全网最详细,保姆级教程)中已经搭建好了一个单机Hadoop环境,接下来搭建全分布式Hadoop集群 首先对Hadoop全分布示集群进行简单介绍和规划 一个集群由一个主机, ...
- Hadoop搭建高可用集群(保姆级教程)
准备工作: 1.搭建完成zookeeper,如果没有搭建,请跳转到zookeeper集群搭建保姆级教程 2.集群的jdk都安装完成,如果没有,请跳转到linux编写个脚本快速搭建jdk保姆级教程 3. ...
- 三分钟搭建自己的专属博客(基于Docker solo搭建个人博客)
我的博客演示:http://49.233.150.105/ 域名备案有些麻烦,所以暂时用ip访问 准备工作 服务器一台(必选),域名一个(可选) 1. Docker部署 不懂参考我这里的教程: lin ...
- 手把手教你搭建自己的个人博客(图文教程)
「 建立自己的狗窝 」 上篇文章刚写了一篇平时写博客的重要性,下面我回复说:[过两天我在发一篇 如何建立自己的个人博客教程,有兴趣的点赞吧]得到了不少赞,看了还是很多小盆友想建立一个属于自己的博客网站 ...
- 用Typecho 平台,轻松搭建币圈导航网站(保姆级教程,0基础也能上手)
如果你是币圈人士,或者互联网从业者,想必你的收藏夹内会有很多链接,久而久之你的收藏夹会混乱不堪,导致你每次找资料的时候都要花时间去翻收藏夹,如果你有自己可定制化的导航网站,工作效率会不会提高一个阶梯? ...
最新文章
- Google发布三大新品,Pixel手机价格直逼苹果
- 分治法解决最大子数组问题
- 软件如何控制硬件、编译器和操作系统是否需要编译
- WinForm 限制同一个进程只能打开一次
- ABAP string函数一览
- 利用JQuery插件CleverTabs实现多页签打开效果
- 性能测试——接口、协议篇
- ZetCode 绘图教程
- linux如何查看端口被哪个进程占用?
- 第四章节 窗体应用(windows应用程序)
- Makefile中的ifeq 多条件使用 ***
- linux-SSH远程服务的管理操作,查看虚拟机信息
- 反恐精英代码_知名网游源代码泄漏 ,外挂潮将来?
- css3中vw/vh/vmin/vmax的含义与使用方法
- 工业农业消防自动检测及报警云方案
- iOS和安卓共用同一个二维码实现跳转下载链接
- 有穷自动机的最小化c语言代码,无符号数有穷自动机实现.doc
- vue怎么把api 挂载到全局_深入理解Vue官方文档梳理之全局API
- 51nod - 1204 Parity
- java 获取微信头像和昵称 生成图片