普通视图

发现新文章,点击刷新页面。
昨天以前首页
  • ✇爱吃猫的鱼BLOG
  • 使用 Hexo 多种部署方法搭建个人网站M.Talen
    1 前言Hexo 是一个快速、简洁且高效的静态博客生成器。它借助 Node.js 进行开发,能够将我们用 Markdown 所撰写的文章内容,在短短几秒内转化为静态 HTML 页面。这意味着我们只需专注于文章本身的创作,利用简单易懂的标记语言书写内容,而无需深入掌握复杂的网页开发知识,Hexo 就能帮我们快速生成可以展示的网页,为搭建个人网站提供了极大的便利。前几日有一好友向我求助,想搭建一个博客网站但不想有太多的资金投入,我将之前写过的一篇使用云服务器 + 宝塔面板部署 Hexo 的教程文章发给了他,但他说也不太想购买服务器,这下就有点难到我了,后来突然回想起我开始接触个人博客时,网上很多 免费、零成本 等字眼的博客搭建教程,当时我对此类文章是将信将疑的,没想到现在让我不得不翻出此类文章,而经过阅读学习后发现免费不仅是真的,有的还特别有意思,于是我协助好友使用 Hexo + GitHub + CloudFlare 成功搭建出了零成本博客,通过对此过程的总结学习,我将一些 Hexo 的部署方法归纳整理并且实操验证写下了这篇文章。本文将使用 GitHub Pages、Cloudflare
     

使用 Hexo 多种部署方法搭建个人网站

作者 M.Talen
2024年12月22日 21:50

1 前言

Hexo 是一个快速、简洁且高效的静态博客生成器。它借助 Node.js 进行开发,能够将我们用 Markdown 所撰写的文章内容,在短短几秒内转化为静态 HTML 页面。这意味着我们只需专注于文章本身的创作,利用简单易懂的标记语言书写内容,而无需深入掌握复杂的网页开发知识,Hexo 就能帮我们快速生成可以展示的网页,为搭建个人网站提供了极大的便利。

前几日有一好友向我求助,想搭建一个博客网站但不想有太多的资金投入,我将之前写过的一篇使用云服务器 + 宝塔面板部署 Hexo 的教程文章发给了他,但他说也不太想购买服务器,这下就有点难到我了,后来突然回想起我开始接触个人博客时,网上很多 免费零成本 等字眼的博客搭建教程,当时我对此类文章是将信将疑的,没想到现在让我不得不翻出此类文章,而经过阅读学习后发现免费不仅是真的,有的还特别有意思,于是我协助好友使用 Hexo + GitHub + CloudFlare 成功搭建出了零成本博客,通过对此过程的总结学习,我将一些 Hexo 的部署方法归纳整理并且实操验证写下了这篇文章。

本文将使用 GitHub Pages、Cloudflare、Vercel 和 Netlify 四种方式部署 Hexo 项目,下面是对四种方式的简单比较:

  • GitHub Pages:部署流程相对简单,依赖本地构建部署,需要一个公开仓库。
  • Cloudflare:网络性能强大,每月 500 次构建使网站不得频繁更新。
  • Vercel:有快速的构建和部署速度,默认域名在国内无法直接访问需额外自定义域名。
  • Netlify:部署流程简单直观,免费账户功能限制较多。

2 准备工作

如果你的设备上已经安装过 Node.js 和 Git,并且拥有 GitHub 账户,那么你可以跳过本节。

2.1 安装 Node.js

Node.js 是 Hexo 运行的基础依赖,我们首先要进行安装。可以前往 官网 根据自己的操作系统选择合适的版本进行下载安装。这里推荐选择支持更稳定的 LTS 版本。

在选择自定义安装程序时,建议选择 Add to PATH,这样就免去了手动配置环境变量的麻烦。

image-20231213204028814

分别执行 node -vnpm -v 来检查是否被正确安装或是否可用。

image-20231213204347624

2.2 安装 Git

Git 在 Hexo 部署过程中起着重要作用,前往 官网 下载最新版本 Git 并按照指引进行安装。

使用 git -v 命令检查 Git 是否安装成功。

image-20231213203205991

2.3 注册 GitHub(部分方式需使用)

GitHub 是部分部署方式的过程所必需的,进入 官网,点击 “sign up” 来到注册页面,按照提示填写有效信息。请慎重设置用户名,因为它可能成为你的域名内容。

3 安装 Hexo

如果你已经拥有了一个 Hexo 项目,那么可以跳过本节。

在确保已经安装好 Node.js 和 npm 的前提下,在本地打开 CMD 命令提示符,输入并执行 hexo-cli 的全局安装命令。

1
npm install -g hexo-cli

初始化 Hexo 项目,在想要创建项目的目录下打开 CMD 命令提示符,使用 hexo init 命令使当前目录作为根目录创建项目,若想新建一个文件夹作为项目根目录,只需在 hexo init 命令后添加项目名称。

1
2
hexo init  # 当前目录为根目录
hexo init myblog # 新建文件夹为根目录

初始化完成后,会在该目录下生成一系列的文件夹和文件。

  • _config.yml:Hexo 项目的核心配置文件。配置网站信息、部署设置等各种参数都需要这个文件。
  • package.json:记录项目所依赖的各种模块以及项目的一些基本信息。当需要分享项目或者在其他环境重新安装依赖时使用。
  • scaffolds\:文章和页面初始结构模板。当创建文章或者页面时,会根据该文件夹下的对应模板来新建文件。
  • source\:用于存放文章文件、页面文件和图片等资源,其中文章就存放在该文件夹下的 _posts 子文件夹中。

当一切准备就绪后,在 Hexo 项目根目录下使用 hexo ghexo s 命令构建并预览该博客。

1
hexo g && hexo s

若出现疑似端口问题的报错,可以尝试重启 winnat 服务,具体方法请自行搜索。

通过预览你可能会感觉默认的主题并不好看,那么你可以通过官网主题库或者其他途径找寻感兴趣的主题,这里推荐本站同款。

1
git clone -b main https://github.com/talen8/hexo-theme-flecui.git themes/flecui

以上完成后你可以通过 Hexo 文档和相应主题文档来进行网站配置,你可以随时通过 hexo cl && hexo g && hexo s 命令预览博客。

4 部署到 GitHub Pages

目前版本的 GitHub Pages 仅支持公开仓库使用,页面文件将会被直接暴露在网络上。

4.1 创建仓库

在浏览器打开 GitHub 并登录你的账户,点击新建仓库。仓库名称为 用户名.github.io,这里用户名必须是你的 GitHub 用户名,另外需要注意,这个仓库需是公开的,不然无法使用 GitHub Pages。

image-20241219230542403

4.2 配置本地与 Github 关联

在本地博客根目录打开命令行工具安装 hexo-deployer-git 部署插件。

1
npm install hexo-deployer-git --save

在本地博客根目录使用文本编辑器打开 _config.yml 核心配置文件,找到 deploy 部分进行配置。

1
2
3
4
deploy:
type: git
repo: https://github.com/你的GitHub用户名/你的GitHub用户名.github.io.git
branch: main

这里的 repo 就是你创建的 Github 仓库的地址,可以根据上方示例填写,也可以进入仓库查看。

image-20241220211154447

确保 hexo-deployer-git 插件和 deploy 配置正确后,就可以通过一系列 Hexo 命令将生成的文章部署到 Github 上了。

1
2
3
hexo clean
hexo generate
hexo deploy

4.3 GitHub Pages 配置

部署完成后打开 GitHub 仓库可以发现 main 分支下不再为空,GitHub Pages 也默认开启,如果需要更改,点击 Settings 设置选项卡,在页面左侧找到 Pages 页面选项,在这里可以配置来源、分支、自定义域名等内容,然后点击 Save 保存按钮。

image-20241220215330536

最后就可以通过 你的GitHub用户名.github.io(仓库名)访问你的博客了。

5 部署到 CloudFlare

静态页面部署需要使用 Cloudflare Pages,他是一个用于构建和部署网站的平台。

5.1 注册 Cloudflare

前往官网注册一个 Cloudflare 账号,需要使用一个邮箱,官网为 https://cloudflare.com,注册地址为 https://dash.cloudflare.com/sign-up

image-20241220224507915

我们需要使用 Cloudflare Pages 功能,它的免费版本的功能有一些限制,但对于一个初步的个人博客网站来说绰绰有余。

  • 并发构建数为 1(同一时刻只能进行一个 pages 的构建)
  • 每月构建次数上限为 500 次
  • 一个 pages 项目最多可绑定 100 个自定义域名
  • 单个 pages 站点最多包含 20000 个文件,单个文件最大为 25MB
  • 每日限制函数请求数为 100000 次,超出后请求会失败
  • 不限制静态文件请求次数

5.2 创建 GitHub 仓库

在浏览器打开 GitHub 并登录你的账户,点击新建仓库。仓库名称自定义,可见性建议设置为私有,避免 Hexo 项目中某些可能的密钥直接暴露在网络。

image-20241221181056018

在本地博客根目录打开命令行工具将项目提交到仓库中。(注意:在提交之前请删除根目录下的 yarn.lock 文件,否则后续会出现构建失败问题)

1
2
3
4
5
6
git init
git add .
git commit -m "myblog"
git branch -M main
git remote add origin https://github.com/你的GitHub用户名/你的GitHub仓库名称.git # git remote add origin [仓库URL]
git push -u origin main

后续本地 Hexo 项目有修改只需要使用 Git 工作流程提交命令

1
2
3
git add .
git commit -m "提交信息"
git push

以上完成后你的本地 Hexo 项目就成功提交到 GitHub 仓库里了,建议使用 VSCode Git 工具或者 GitHub Desktop 简化流程。

5.3 Cloudflare Pages 配置

在控制台点击侧边栏的 Workers 和 Pages,然后点击页面上的 Pages,最后点击连接到 Git

image-20241221175423340

连接绑定你的 GitHub 账户来获取你的仓库,账号授权后你可以在应用程序集成中设置仓库访问权限。

image-20241221200427582

设置完成后自动跳转回 Cloudflare 控制台部署站点引导的选择存储库步骤,选择你将要部署站点的仓库,确认账户和数据库无误后点击开始设置。

image-20241221200726941

在设置构建和部署步骤中完成相关设置:

  • 项目名称:自定义,将作为域名内容
  • 生产分支:结合实际情况,若完全按照本教程进行就是 main
  • 框架预设:这里没有 Hexo,所以设置为无
  • 构建命令:npm run build
  • 构建输出目录:public

image-20241221201840578

在部署站点步骤中耐心等待一会,出现域名表示部署完成,访问链接能够打开页面表明部署成功,如果页面无法访问请再耐心等待一会,可能是网络问题导致。

image-20241221202624018

操作进行到这里就基本完成了,此后你的 Hexo 项目每次提交至 GitHub 都会自动再次构建部署。

6 部署到 Vercel

Vercel 提供了一个云平台,并且能够识别仓库为 Hexo 项目,简化了操作流程,降低了出错风险。

6.1 注册 Vercel

前往 Vercel 官网注册一个账户,可以直接连接你的 GitHub 账户。

image-20241221205138455

6.2 创建 GitHub 仓库

同本文 5.2 章节。

6.3 导入仓库

首先连接你的 GitHub 账户,你可以在应用程序集成中设置仓库访问权限,在构建引导页面中导入 Git 仓库,首先找到正确的 GitHub 账户和仓库,点击 Import 按钮。

image-20241221210315110

在新建项目中完成相关设置,Project Name 可自定义,Framework Preset 选择 Hexo,其它项保持默认即可,点击 Deploy 按钮部署。

image-20241221211310245

耐心等待一会出现预览页面即完成导入和部署。

image-20241221211859656

6.4 配置域名

部署完成后打开仪表盘,网站自动绑定三条默认域名,但由于在国内域名被污染,所以需要绑定其它域名。

image-20241221212750834

点击右上角 Domains 按钮进入项目域名配置页,添加一个域名,并按照要求在域名提供商处添加 CNAME 记录。

image-20241221213242642

最后通过绑定的自定义域名成功访问到个人博客。

7 部署到 Netlify

Netlify 是一个提供静态网站托管的服务,使用 Hexo+GitHub+Netlify 可以以最快的速度部署一个网站。

7.1 注册 Netlify

Netlify 官网注册一个账号,可以使用你的 GitHub 账户授权注册,然后根据提示进行账户配置。

image-20241221214801510

7.2 创建 GitHub 仓库

同本文 5.2 章节。

7.3 开始部署

在引导中选择 GitHub 来导入你的 GitHub 仓库,你可以在应用程序集成中设置仓库访问权限。

image-20241221215625407

选择正确的 GitHub 账户和仓库开始部署。

image-20241221220034766

然后耐心等待一会,平台会自动识别仓库为 Hexo 项目并按照预设开始部署,部署完成后就可以通过平台分配的默认域名访问网站了。

image-20241221220422886

8 写在最后

通过以上多种部署方法的介绍,我们可以看到利用 Hexo 搭建个人博客方法众多,不仅操作过程十分简单,还基本实现了零成本搭建,降低了技术门槛和资金门槛,选择一个适合自己的部署方式,搭建一个有趣的个人博客吧。

  • ✇辰安博客
  • 免费海外网站CDN加速,让全球访问更畅快辰安
    全球网站加速新选择,免费CDN让访问更畅快 在如今这个信息化快速发展的时代,网站的访问速度直接影响到用户体验与业务转化率。尤其对于海外市场的企业和个人站长来说,如何提升跨国访问的速度,成为了一项亟待解决的挑战。传统的网络架构常常面临着跨国访问时延长、带宽瓶颈、服务器负载过重等问题,这些都会导致网站加载缓慢,用户体验大打折扣。 因此,越来越多的企业开始采用CDN(内容分发网络)加速技术,借助CDN加速节点在全球范围内的分布,将内容就近分发给终端用户,从而提高网站访问速度、降低延迟。特别是对于需要面向海外市场的站点,CDN加速技术显得尤为重要。 不过,企业在选择CDN服务时,往往会面临高昂的费用和复杂的技术配置问题,这使得不少中小型企业望而却步。现在,随着市场上逐渐出现了免费的CDN加速服务,越来越多的站长和企业开始尝试这种高效、低成本的方式来解决海外网站加速的难题。 推荐CDN 推荐 智
     

免费海外网站CDN加速,让全球访问更畅快

作者 辰安
2024年12月8日 18:05

全球网站加速新选择,免费CDN让访问更畅快

在如今这个信息化快速发展的时代,网站的访问速度直接影响到用户体验与业务转化率。尤其对于海外市场的企业和个人站长来说,如何提升跨国访问的速度,成为了一项亟待解决的挑战。传统的网络架构常常面临着跨国访问时延长、带宽瓶颈、服务器负载过重等问题,这些都会导致网站加载缓慢,用户体验大打折扣。

因此,越来越多的企业开始采用CDN(内容分发网络)加速技术,借助CDN加速节点在全球范围内的分布,将内容就近分发给终端用户,从而提高网站访问速度、降低延迟。特别是对于需要面向海外市场的站点,CDN加速技术显得尤为重要。

不过,企业在选择CDN服务时,往往会面临高昂的费用和复杂的技术配置问题,这使得不少中小型企业望而却步。现在,随着市场上逐渐出现了免费的CDN加速服务,越来越多的站长和企业开始尝试这种高效、低成本的方式来解决海外网站加速的难题。

推荐CDN

免费CDN加速服务,让海外网站访问更迅速

“免费海外网站CDN加速”,这个关键词听起来可能让一些人感到惊讶。的确,一些提供免费CDN服务的平台已经逐渐成熟,能够为用户提供可靠的加速效果。通过全球分布的加速节点,用户的访问请求能够被快速路由到距离最近的服务器节点,从而大大提升网页加载速度。

免费CDN服务的优势不仅体现在费用上,更在于其便捷的部署方式。许多免费CDN平台提供简单易用的界面,站长或管理员可以在几分钟内完成CDN加速的配置,无需复杂的技术背景或繁琐的设置。对于非技术背景的用户来说,这无疑是一个巨大的便利。

免费CDN服务一般都具有全球节点分布,可以针对不同的地区(如欧美、亚洲等)进行智能路由和加速,使得海外用户访问国内网站时,也能享受到和本地用户几乎相同的加载速度。特别是对于那些拥有海外市场需求的电商、博客、企业官网等网站来说,免费CDN加速无疑是拓展市场、提高用户体验的利器。

如何选择适合的免费CDN服务?

面对众多的免费CDN服务,如何选择一个合适的平台呢?以下几个方面可以作为参考:

全球节点分布:选择一个节点覆盖范围广的免费CDN服务,尤其是覆盖欧美、亚太等重要市场的节点,可以确保海外用户的访问体验大大提升。

易用性:简单易用的管理面板和清晰的配置步骤是选择CDN服务时的重要考虑因素。许多免费CDN平台提供简单的DNS配置或插件安装,降低了使用门槛。

服务稳定性:虽然是免费的CDN服务,但其稳定性和性能也必须得到保证。可以通过查看其他用户的评价,了解平台的可靠性。

流量限制:有些免费CDN服务对于流量和带宽会有一定的限制,选择时要注意是否满足自己网站的流量需求。

通过对这些方面的考量,你可以选择一个适合自己网站的免费CDN加速服务,最大化提高网站的访问速度和用户体验。

免费CDN加速带来的优化效果

使用免费CDN加速服务之后,海外网站的访问速度会有显著提升。对于用户来说,最直接的感受就是网页加载速度的提升,特别是在全球范围内访问时,页面几乎瞬间加载,流畅度极高。这里,我们可以详细分析一下CDN加速带来的几大优势:

降低网站加载延迟

网站加载延迟一直是影响用户体验的关键因素之一。特别是对于面向海外市场的网站,网络延迟问题会更加突出。通过将网站内容缓存到全球各地的CDN节点,用户的请求被自动路由到距离其最近的节点,从而大幅度减少了延迟,保证了快速加载。

提升全球访问速度

对于跨国网站,尤其是那些需要面向欧美、亚洲等多个地区的用户的企业而言,全球访问速度的提升尤为关键。通过选择免费的CDN加速服务,可以在全球范围内提高用户的访问体验,增强客户的黏性,进一步促进产品销售和品牌推广。

减轻服务器负担

传统网站在流量高峰时,容易出现服务器负载过重、响应速度慢等问题。而通过CDN加速,用户的请求被分散到多个CDN节点上,减轻了源服务器的负担,有效避免了高峰期的流量冲击。CDN服务商通常会提供DDoS防护等安全防护功能,增加网站的安全性,避免受到恶意攻击。

提高SEO排名

网站的加载速度对SEO排名有着直接的影响。搜索引擎(尤其是Google)会根据网站的加载速度来评估其质量,并在排名中给予一定的加分。通过使用CDN加速,网站加载速度得到显著提升,有助于提升网站的搜索引擎排名,增加曝光度和流量。

避免地域性封锁与限制

某些国家和地区对特定网站存在地域封锁或访问限制的问题。借助CDN服务,站点的内容可以绕过一些地域性限制,实现跨地域访问无障碍。这一点对一些内容敏感的行业尤其重要。

如何开始使用免费CDN加速服务?

开始使用免费的海外网站CDN加速服务其实非常简单,下面是大致的步骤:

选择合适的免费CDN平台

根据自己的需求,选择一个适合的免费CDN加速服务平台。常见的免费CDN平台有Cloudflare、Fastly、Sucuri等,它们在全球范围内拥有丰富的加速节点,并提供简单的配置方式。

注册并配置域名

在平台上注册账号,并按照平台的指引进行域名配置。通常情况下,你需要将域名的DNS指向CDN平台提供的DNS服务器。

调整缓存设置与规则

配置完DNS后,你可以根据自己的需要,设置缓存策略、SSL证书、访问控制等选项。这些设置将帮助你进一步优化网站性能和安全性。

监控与优化

配置完CDN加速后,务必定期检查网站的加载速度、访问日志等信息,了解加速效果。根据具体情况进行必要的调整,进一步优化网站性能。

总结

无论是小型企业还是个人站长,免费的海外网站CDN加速服务都为他们提供了一个轻松提升网站全球访问速度的机会。通过全球分布的加速节点、智能流量调度与缓存策略,不仅能有效提升用户体验,还能降低服务器负载、提高网站安全性。使用CDN加速服务是每一个网站提升访问速度和用户满意度的重要步骤。选择合适的免费CDN服务,让你的网站无论在国内还是海外都能更迅速、更稳定地运行。

  • ✇爱吃猫的鱼BLOG
  • Hexo博客的部署和使用M.Talen
    1 前言Hexo是一款快速、简洁且高效的博客框架,其基于Node.js让页面快速完成渲染,强大的API带来无限可能,丰富的插件和主题让建站更容易,生成的静态网页托管在GitHub等平台上还可以省去大量服务器费用。注意本文将把Hexo博客部署在服务器而非GitHub等平台,另外由于Hexo框架的特殊性,部分操作要在本地完成,包括后期网站的维护和文章的编写也都在本地完成。2 安装宝塔本文使用宝塔面板,宝塔面板安装可参考下方文章,然后在宝塔面板选择安装 LNMP 套件 站内链接 安装宝塔面板 服务器最佳搭档,宝塔和1Panel的部署与选择 3 本地环境安装3.1 安装Git在Git官网下载最新版Git并完成安装在Windows的CMD中执行git -v检查是否安装成功3.2 安装Node.js在Node.js官网下载LTS版本Node.js并完成安装在选择自定义安装程序时,建议选择Add to PATH,这样就免去了手
     

Hexo博客的部署和使用

作者 M.Talen
2024年2月1日 11:46

1 前言

Hexo是一款快速、简洁且高效的博客框架,其基于Node.js让页面快速完成渲染,强大的API带来无限可能,丰富的插件和主题让建站更容易,生成的静态网页托管在GitHub等平台上还可以省去大量服务器费用。

注意

本文将把Hexo博客部署在服务器而非GitHub等平台,另外由于Hexo框架的特殊性,部分操作要在本地完成,包括后期网站的维护和文章的编写也都在本地完成。

2 安装宝塔

本文使用宝塔面板,宝塔面板安装可参考下方文章,然后在宝塔面板选择安装 LNMP 套件

站内链接
安装宝塔面板
服务器最佳搭档,宝塔和1Panel的部署与选择

3 本地环境安装

3.1 安装Git

Git官网下载最新版Git并完成安装

在Windows的CMD中执行git -v检查是否安装成功

image-20231213203205991

3.2 安装Node.js

Node.js官网下载LTS版本Node.js并完成安装

在选择自定义安装程序时,建议选择Add to PATH,这样就免去了手动配置环境变量的麻烦

image-20231213204028814

分别执行node -vnpm -v来检查是否被正确安装或是否可用

image-20231213204347624

3 配置SSH密钥

在本地终端执行生成公钥密钥命令,按照提示回车或者输入y确认

1
ssh-keygen

输出类似下图信息则表明完成

image-20231213204958089

生成的文件位置在 C:\Users\(你的用户名)\.ssh 中,在这个目录下有一个 id_rsa.pub 这就是我们后面要用的SSH公钥

image-20231213205357374

4 服务器相关操作

在进行其它操作前先在服务器端安装Git

1
yum install git

4.1 创建git账户

  • 创建 git 账户
1
adduser git
  • 赋予git账户权限
1
2
3
4
5
# 给sudoers文件740权限
chmod 740 /etc/sudoers

# 编辑 /etc/sudoers 文件
vim /etc/sudoers

i键进入编辑模式,找到root ALL=(ALL) ALL,在其下方加入:

1
git ALL=(ALL) ALL

若文件仅有几行且无root ALL=(ALL) ALL,则直接文末加入:

1
2
root ALL=(ALL) ALL
git ALL=(ALL) ALL

image-20231213174655059

退出Vim,在编辑模式下点击ESC退出编辑,输入:wq保存并退出Vim

改回sudoers文件权限

1
chmod 400 /etc/sudoers
  • 设置 git 账户密码
1
sudo passwd git

密码输入是看不到的

image-20231213174722664

  • SSH连接

切换至 git 用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件

1
2
3
4
5
6
# 切换git用户
su git
# 创建.ssh文件夹
mkdir ~/.ssh
# 创建并编辑authorized_keys文件
vim ~/.ssh/authorized_keys

i进入编辑模式,把之前本地中生成的id_rsa.pub文件中的公钥复制进去,保存退出

如果复制不方便,可以将本地id_rsa.pub文件上传到.ssh文件夹并重命名为authorized_keys

更改权限

1
2
sudo chmod 600 /home/git/.ssh/authorized_keys
sudo chmod 700 /home/git/.ssh
  • 测试连接

在本地桌面右键”Git Bash Here”或者CMD命令行,输入以下命令,执行输入yes后无报错说明配置成功了

1
ssh -v git@服务器ip地址或域名

如果连接出现Permission denied (publickey,gssapi-keyex,gssapi-with-mic)错误,在服务器端执行sudo vim /etc/ssh/sshd_config命令打开sshd_config配置文件,将第70行左右的 PasswordAuthentication 设置为yes,保存退出,重启sshd服务sudo systemctl restart sshd

4.2 创建git仓库

切换到root账户

1
sudo su root

创建仓库目录

1
2
3
mkdir /var/repo
chown -R git:git /var/repo
chmod -R 777 /var/repo

创建网站根目录

1
2
3
mkdir /www/wwwroot/hexo
chown -R git:git /www/wwwroot/hexo
chmod -R 755 /www/wwwroot/hexo

创建一个空白的 git 仓库

1
2
cd /var/repo
git init --bare hexo.git

编辑一个 Git 钩子

1
vim /var/repo/hexo.git/hooks/post-receive

i进入编辑模式,添加下面的代码,然后保存退出

1
2
#!/bin/bash
git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/hexo.git checkout -f

更改权限

1
2
chown -R git:git /var/repo/hexo.git/hooks/post-receive
chmod +x /var/repo/hexo.git/hooks/post-receive

5 宝塔网站配置

在宝塔面板中点击左侧栏网站,在PHP项目中添加站点

添加的域名确保被解析,根目录要对应前面创建的网站根目录

image-20231213214756903

进入网站根目录删除所有文件,尤其是.user.ini

等最后网站搭建完成后,网站的SSL证书可以去部署一下,宝塔和腾讯云都有免费的提供

6 安装Hexo

在本地创建一个空文件夹,这个文件夹要长期保留避免移动

在该文件夹内打开CMD命令行,使用 npm 安装 Hexo

1
npm install -g hexo-cli

image-20231213220428389

初始化博客程序

1
hexo init

本地运行项目

1
hexo g && hexo s

访问http://localhost:4000/能够打开页面即为成功,CTRL+S结束进程

7 Hexo部署

在Hexo博客根目录,编辑站点配置文件 _config.yml,找到deploy,修改参考如下

1
2
3
4
deploy:
type: git
repo: git@服务器IP:/var/repo/hexo.git
branch: master

安装所需组件(插件)

1
2
npm install hexo-deployer-git --save
npm install hexo-server

传到服务器

1
hexo clean && hexo g && hexo d 

最后,访问域名就可以访问Hexo博客了

8 写在最后

如果觉着Hexo部署复杂,可以尝试Halo框架,但是,Hexo真的很好用!

完成本文后部署后,博客页面还是最初的样式,可以找个喜欢的主题来美化博客。

  • ✇爱吃猫的鱼BLOG
  • Halo博客的部署和使用M.Talen
    1 前言Halo 是一款开源的博客框架工具,其强大的功能和易用性受到了许多用户的喜爱。Halo 博客的特点包括代码开源、易于部署、插件机制、模版机制、附件管理和搜索引擎支持等,这些特点使得 Halo 成为了一个灵活且可扩展的框架平台,无论是个人还是企业都可以使用它来搭建自己的博客网站。2 准备本文使用宝塔面板部署,安装宝塔面板参考下方文章,进入宝塔面板后需要安装 MySQL、Nginx、Docker。 站内链接 安装宝塔面板 服务器最佳搭档,宝塔和1Panel的部署与选择 3 Halo 博客部署3.1 建数据库数据库使用 MySQL,数据库名、用户名和密码可自定义。3.2 创建容器组在 Docker 页添加编排模板,将创建的 MySQL 数据库名、用户名和密码在内容中对应修改,其它项谨慎修改。1234567891011121314151617181920version: "3"services: halo:
     

Halo博客的部署和使用

作者 M.Talen
2024年1月2日 23:51

1 前言

Halo 是一款开源的博客框架工具,其强大的功能和易用性受到了许多用户的喜爱。Halo 博客的特点包括代码开源、易于部署、插件机制、模版机制、附件管理和搜索引擎支持等,这些特点使得 Halo 成为了一个灵活且可扩展的框架平台,无论是个人还是企业都可以使用它来搭建自己的博客网站。

image-20240605230803067

2 准备

本文使用宝塔面板部署,安装宝塔面板参考下方文章,进入宝塔面板后需要安装 MySQLNginxDocker

站内链接
安装宝塔面板
服务器最佳搭档,宝塔和1Panel的部署与选择

3 Halo 博客部署

3.1 建数据库

数据库使用 MySQL,数据库名、用户名和密码可自定义。

image-20230927010433190

image-20230927010919741

3.2 创建容器组

在 Docker 页添加编排模板,将创建的 MySQL 数据库名、用户名和密码在内容中对应修改,其它项谨慎修改。

image-20240605232413741

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: "3"

services:
halo:
image: halohub/halo:2.9
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./:/root/.halo2
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/数据库名
- --spring.r2dbc.username=用户名
- --spring.r2dbc.password=密码
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 端口号 默认8090
- --server.port=8090

然后创建容器,选择使用容器编排,选择刚刚创建的编排模板,名称自定义。

image-20240605233401901

如果在宝塔面板中安装失败可选择在命令行中操作
站内链接
安装Docker
零基础Docker入门指南

Halo 2.9 可用的 Docker 镜像:halohub/haloghcr.io/halo-dev/halo

Halo 文档:目前 Halo 2 并未更新 Docker 的 latest 标签镜像,主要因为 Halo 2 不兼容 1.x 版本,防止使用者误操作。我们推荐使用固定版本的标签,比如 halohub/halo:2.9 或者 halohub/halo:2.9.0

创建文件夹(Halo 数据根目录)

1
mkdir ~/halo && cd ~/halo

创建 docker-compose.yaml

1
vim docker-compose.yaml

编辑 docker-compose.yaml,将创建的 MySQL 数据库名、用户名和密码在内容中对应修改,其它项谨慎修改。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
version: "3"

services:
halo:
image: halohub/halo:2.9
container_name: halo
restart: on-failure:3
network_mode: "host"
volumes:
- ./:/root/.halo2
command:
# 修改为自己已有的 MySQL 配置
- --spring.r2dbc.url=r2dbc:pool:mysql://localhost:3306/数据库名
- --spring.r2dbc.username=用户名
- --spring.r2dbc.password=密码
- --spring.sql.init.platform=mysql
# 外部访问地址,请根据实际需要修改
- --halo.external-url=http://localhost:8090/
# 端口号 默认8090
- --server.port=8090

启动 docker-compose 创建容器

1
docker-compose up -d

检查 Halo 镜像运行状态

1
2
docker ps
# 出现halo即为成功

3.3 反向代理

配置nginx.conf文件

image-20230927164834024

nginx.conf文件中添加如下内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
server {
# 监听80端口
listen 80;
listen [::]:80;
# 接口的域名,用来访问
server_name 域名;
# 限制请求体的大小
client_max_body_size 1024m;
location / {
# 设置服务器地址
proxy_pass http://127.0.0.1:8090;
# 设定被代理服务器接收到的header信息,重定义发往后端服务器的请求头
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;
}
}

重载配置并重启 Nginx 服务

image-20230927170315444

3.4 启动

1
docker-compose up -d

在浏览器访问域名/console 或者IP:端口/console ,进入初始化页面,初始化后进入 Halo 管理页面。

image-20230927174453409

4 Halo 博客设置

效果预览(使用Dream for Halo 2.x主题,预览图仅供参考):

image-20230927183624379

4.1 基础设置

侧边栏“设置”中包含:

  • 基本设置:站点标题、副标题、logo 等
  • 文章设置:各页文章显示条数
  • SEO 设置:站点关键词、秒数等,用于提升网站在搜索引擎中的排名
  • 用户设置:是否允许注册及新注册用户的所在权限组
  • 评论设置:是否可以发布评论及评论发送的条件
  • 主题路由设置:各页的路由设置及文章详情页访问规则
  • 代码注入:自定义全局 head 标签、内容页 head 标签、页脚

4.2 插件

前往Halo 应用市场安装内置应用市场插件。

侧边栏“应用市场”安装及启用:

  • Dream for Halo 2.x(主题)
  • 搜索组件:提供统一的搜索组件
  • 评论组件:提供完整的评论系统
  • Sitemap:生成站点地图
  • RSS:生成 RSS 订阅链接
  • ByteMD:让文章支持 Markdown 编辑
  • 图库管理:图库管理模块
  • 链接管理:链接管理模块
  • 瞬间:瞬间管理模块
  • 【可选】对象存储:对象存储策略,兼容阿里云、腾讯云、七牛云等
  • 【可选】OAuth2 认证:提供多种登录方式
  • 【可选】StackEdit:另一款 Markdown 编辑器

4.3 菜单

创建菜单(侧边栏“菜单”,选择在主菜单中新建):

名称链接地址备注
首页/
归档/archives同主题路由设置中归档页路由前缀相同
分类/categories同主题路由设置中分类页路由前缀相同
标签/tags同主题路由设置中标签页路由前缀相同
动态/moments使用插件“瞬间”
相册/photos使用插件“图库管理”
友链/links使用插件“链接管理”
关于/about在侧边栏“页面”中新建页面,别名为 about

4.4 主题

侧边栏“主题(Dream for Halo 2.x)”中包含:

  • 详情:查看当前主题的基本信息
  • 基础信息:作者用户名(填写用户名而非用户昵称)、离屏文案、备案信息、站点声明信息等
  • 基础样式:加载进度条、文章侧边目录、博客背景图、横幅大图、主题色、字体、布局、首页大图轮播、侧边栏悬浮
  • 文章设置:文章缩略图、版权声明、文章分享、捐赠二维码等
  • 侧边栏配置:侧边栏展示(详情见下方表)、各模块类型的具体设置
  • 页面设置:设置友链页面、标签页面等
  • 增强功能:鼠标设置、特效显示、访客统计、自动推送等
  • 定制主题:主题样式自定义设置
侧边栏模板类型模块位置备注
信息模块左侧(1)1. 信息显示不正常检查基础信息中作者用户名是否正确;2. 彩字停顿检查当前用户详情中描述是否填写
音乐模块左侧(2)简单配置填写网易云歌单 ID 即可,获取方法:网易云音乐歌单链接中一串数字
最近文章模块左侧(3)
公告模块右侧(1)
目录模块右侧(2)目录仅在文章详情页显示
广告模块右侧(3)
文章分类模块右侧(4)
文章标签模块右侧(5)

4.5 模板

提供一份页面“关于”的通用模板:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 个人信息

- 昵称:
- Gitee:
- GitHub:
- Bilibili:

# 联系方式

- Email:
- WeChat:
- QQ:

# 网站信息

- 建站时间:
- 运行环境:
- 博客系统:
- 维护日志:

4.6 一些细节

  • 侧边栏“文章”页内可管理文章分类和标签
  • 添加文章页可切换编辑器,文章设置中可针对调整此篇文章的某些设置
  • 使用“对象存储”插件,可在侧边栏“附件”内改变存储策略,推荐免费的七牛云
  • 侧边栏“图库”为菜单“相册”,侧边栏“链接”为菜单“友链”,侧边栏“瞬间”为菜单“动态”
  • 侧边栏“用户”内角色管理可新建角色权限组,使用“OAuth2 认证”插件可在身份认证中设置多登录方式
  • 侧边栏“概览”中外部访问地址必须为外网 IP 或者域名,当为 localhost 或者 127.0.0.1 是将导致分享链接出现问题

5 写在最后

Halo 博客是一个功能强大、易于上手的博客建站工具,无论是新手还是有经验的用户都可以快速上手并搭建出满意的博客网站。Halo 部署难度不大,难度大的是坚持更新博客,让我们共同努力,致敬每一位还在写博客的你!

❌
❌