当前位置:

首页 > 软件教程 > 手把手建博客图文教程详解

手把手建博客图文教程详解

搭建个人博客经常阅读此公众号文章的读者可能知道,这篇教程在一个月前发布过一次,因为题图的文字字体版权问题,不得不删除。今天重新发出来,给您说声抱歉。此教程博客是在自己的云服务器上搭建的,如果没有云服务器,同样可以利用GitHub免费搭建自己的博客,公众号回复:「GitHub」就可以获取视频教程。正文首先我们谈一谈搭建个人博客必要性,个人认为在学习过程中,被动接受知识对你的提高是轻微的。比如你看网课学习,在听老师讲解的时候感觉简单易懂,代码逻辑明了清晰,当自己敲代码的时候,却无从下手,这也属于眼高手低的范畴

本文目录
    搭建个人博客

    经常阅读此公众号文章的读者可能知道,这篇教程在一个月前发布过一次,因为题图的文字字体版权问题,不得不删除。今天重新发出来,给您说声抱歉。此教程博客是在自己的云服务器上搭建的,如果没有云服务器,同样可以利用GitHub免费搭建自己的博客,公众号回复:「GitHub」就可以获取视频教程。

    正文

    首先我们谈一谈搭建个人博客必要性,个人认为在学习过程中,被动接受知识对你的提高是轻微的。比如你看网课学习,在听老师讲解的时候感觉简单易懂,代码逻辑明了清晰,当自己敲代码的时候,却无从下手,这也属于眼高手低的范畴。

    当自己主动学习,主动思考其效率和对个人的提升无疑是高于被动接受的。然而使你提高最大的是主动说出自己认知,把自己的知识和理解传达给他人,这种方式是对你提升无疑是最显著的。

    可见搭建个人博客是非常有必要的,很多读者很早就要求我发一篇搭建个人博客的文章,由于个人时间愿意本来想直接转载,但是在自己实际操作中遇到很多坑,浪费不少时间,都是把主要步骤给出且时间久远,没有详细的图文配合。

    应读者的要求,小编邀请了自己的朋友完成了这一篇教程,本教程作者为「illgo」,可以点击阅读原文关注他的博客,中间遇到很多坑,如果您搭建成功别忘了回来打赏原作者,如果步骤有不明白的可以在文末向教程作者提问。

    最终成果:

    PC端:

    手把手搭建个人博客「图文教程」

    移动端:

    手把手搭建个人博客「图文教程」
    一. 前言

    本篇文章将会使用最初始的虚拟机安装崭新的系统(Windows 7)和DigitalOcean购买的服务器(CentOS7.5)作为示例,注意并不是让大家在虚拟机上搭建,为了模拟崭新的环境,作者采取虚拟机的方式,你们直接在个人电脑操作即可。

    当然可以选择阿里云或者PHP中文网,而我为什么选择DigitalOcean购买服务器?主要原因是便宜,只需要5美元就能购买一年期限的美国服务器,需要学生GitHub认证后会赠送代金券,不过购买服务器需要Paypal,购买地址为:https://m.do.co/c/1d4464e8355e.

    本文的特点是细节多,想到什么补充什么,因此,大家碰到问题时,可以通过细节上的不同找到问题所在.

    本篇文章的受众:

    极客,想拥有一个漂亮的博客,想快速了解,但不想把时间花在由于细节导致的各种问题上.只是想快速拥有一个在自己服务器上的博客的朋友.二. 博客框架的选择

    如果你是我所说的本篇文章的受众,当你要搭建一个博客时,你绝不会想自己从头到脚写一个框架出来.我在这里向大家介绍几款流行的Blog框架:

    Jekyll (https://jekyllrb.com/)hugo (http://www.gohugo.org/)django (https://www.djangoproject.com/)hexo (https://hexo.io/)

    这里我考虑了一下,并没有将需要我们自己管理数据库的重型CMS(如:WordPress等)纳入.选择的标准有什么呢?

    美观程度系统需求搭建难度可扩展性插件提供文档是否全面

    假如你是python学习者,请选择django,这几乎是每个学习python的小伙伴的必经之路.本篇文章我选择的是Hexo,主要是它拥有我最喜欢的主题NeXT,满足了我最大的需求:美观.

    如果你也和我一样美观是第一位,请点开每个框架的官网,找到他们的Theme下的示例,找出你最喜欢的即可.那么,我们将会从Hexo开始,其他框架的请参照具体官网文档,和他们的GitHub issues.

    注: 和Hexo官网的Getting Started并不冲突,本文从零开始,全程截图,与官方文档互为补充.

    三. Hexo介绍Hexo 特点支持Markdown: 支持Markdown意味着你可以把经历从排版中解放出来.轻量: 无需拥有后台及数据库,专心写好你的文章一键部署: 可以通过Git或者ftp来将生成的静态页面部署到服务器或者主机空间中插件丰富: 丰富的插件可以满足你的各种需求.Hexo的工作机制

    Hexo基于Node.js,将/source文件夹下的资源(文章,图片,模板),按照预定的配置文件,转换成静态页面放置到/public目录下.如果需要预览或者部署,hexo会把public作为web目录处理.具体的细节可以通过实践接下来的步骤,来逐渐明晓.

    Node.js和npm

    如果您之前接触过Node.js,可以略过此部分.Node.js是一个基于Chrome V8引擎的JavaScript运行环境,为我们的Hexo提供js脚本的运行环境.而npm则是一个JavaScript的包管理工具.主流的很多语言都会有自己的包管理器(们):

    PHPComposerRubygemPythonpipeasy_installJavascriptbowernpmyarn

    包管理器可以帮助你管理依赖,比如我们要装的Hexo以及Hexo插件,Hexo和Hexo插件是其他开发者开发的代码(Package),包管理器可以帮你下载并管理这些代码.

    Hexo官网教程中使用的是npm,但是由于网络问题以及便捷性,我选择用yarn来代替,当然,轻度使用的话只是在操作上大同小异.

    四. 安装所需环境

    注: 以下安装为本机客户端环境安装

    安装Node.js

    Node.js官网下载最新LTS版本(截至发稿v8.11.1)的Node.js并安装(如果你想同时管理多版本的Node.js请使用nvm)

    Yarn官网下载最新版(截至发稿v1.5.1)并安装.

    安装过程根据平台不同因人而异,在此略去不表.

    在命令行中通过查看版本,确保我们的环境安装成功,并且可执行文件路径添加到了环境变量之中.

    安装gitGit-Downloads(git-scm.com/downloads)下载 64-bit Git for Windows Portable ,双击选择依照你个人喜好指定的目录(注意介于权限问题,避免在c:/program files下),我安装在c:/some/git下右键开始(windows 10)-搜索,输入环境变量,编辑系统环境变量.
    手把手搭建个人博客「图文教程」

    3. 选择环境变量

    手把手搭建个人博客「图文教程」

    4. 在系统变量中选择Path点击编辑

    手把手搭建个人博客「图文教程」

    5. 在末尾加上分号,然后将你安装目录下,git.exe所在路径填入(Windows 10更加简便,不再赘述)

    手把手搭建个人博客「图文教程」

    6. 新开一个终端,然后查看git命令是否生效

    手把手搭建个人博客「图文教程」

    7. 设置git设置本地用户的信息,引号内随意填

    代码语言:javascript代码运行次数:0运行复制
    git config --global user.name "illgo"git config --global user.email "i@illgo.cn"

    安装Hexo

    在这一步,我们通过Yarn来全局安装Hexo.在这里解释Yarn(npm相同)全局安装和本地安装的区别:

    全局安装会把package存放在用户目录指定的目录下,本地安装则是存放在当前项目的node_module目录中.

    全局安装使我们的二进制执行文件在操作系统内全局可用,比方说,命令行下输入命令即可运行.本地安装则是作为依赖供项目调用.我们安装hexo需要作为一个工具在命令行下可以直接运行,所以采用全局安装;而像hexo依赖的插件则可以在hexo项目目录下本地安装:

    代码语言:javascript代码运行次数:0运行复制
    yarn global add hexo
    手把手搭建个人博客「图文教程」

    如图即为安装成功!

    五. 使用Hexo

    你需要熟悉并修改两个配置文件

    Hexo配置文件:myblog/_config.yml主题配置: myblog/themes/next/_config.yml创建站点目录

    选择一个目录作为hexo站点目录,我选择在桌面新建一个myblog目录,作为hexo目录.

    代码语言:javascript代码运行次数:0运行复制
    hexo init
    手把手搭建个人博客「图文教程」
    安装主题NexT

    在你的hexo站点目录下

    代码语言:javascript代码运行次数:0运行复制
    git clone https://github.com/iissnan/hexo-theme-next themes/next
    手把手搭建个人博客「图文教程」
    启用主题

    用任意编辑器打开Hexo配置文件长成这样:

    手把手搭建个人博客「图文教程」

    Ctrl + F 搜索 theme

    代码语言:javascript代码运行次数:0运行复制
    theme: next
    测试代码语言:javascript代码运行次数:0运行复制
    hexo s --debug
    手把手搭建个人博客「图文教程」
    手把手搭建个人博客「图文教程」

    按照提示,在浏览器中输入url,即可查看效果.

    手把手搭建个人博客「图文教程」
    Hexo基本配置

    我们可以通过Configuration | Hexo来了解_config.yml的基本配置方法.后面我们将会对其进行部分补充.

    NexT主题配置

    NexT主题的配置可以直接查看其配置文件中的注释,已经很详细了.

    六.部署

    部署是本文的重点,git部署有两种方式:

    部署到自己的服务器上网上流行的GitHub Pages

    本文讲的是前者,服务器部署.

    部署到服务器

    我们的大体思路就是:hexo生成静态页面->git提交到git服务器->git服务器通过Hook运行脚本,在www目录下clone Git仓库->呈现页面

    以临时创建的Centos 7.5服务器为示例

    为SSH连接创建密钥对

    由于使用git作为部署,所以无法避免的我们要使用密钥对的方式来连接,而不是口令.

    1. 创建SSH密钥对:

    打开刚才安装git目录下的git-bash.exe.git-bash已经提供了BASH环境,为了简单和快捷,我们使用这个git-bash作为ssh工具

    代码语言:javascript代码运行次数:0运行复制
    ssh-keygen -t rsa -C "i@illgo.cn"
    手把手搭建个人博客「图文教程」

    按照提示他会在当前用户目录下的.ssh目录下生成两个文件:

    id_rsa 私钥id_rsa.pub 公钥
    手把手搭建个人博客「图文教程」
    2. 在服务器中添加公钥

    后将公钥添加到你在Centos的要登录的用户名下的,我们部署采用git用户,按道理应添加到服务器的/home/git/.ssh/authorized_keys文件中.但是本次采用DigitalOcean提供的添加公钥功能,在Web中操作,他会将公钥直接添加到/root/.ssh/authorized_keys中.如果你用其他的云服务器提供商,也会有类似的功能.此过程略去.

    以下操作使用ssh连接服务器来操作.

    在服务器上安装Web服务器

    Hexo会根据你的_config.yml配置的source_dir下的资源文件,在public_dir下生成静态网页,部署这些静态文件.本次在服务器上安装Apache作为web服务器,通过Git和Git hook来部署.

    安装Apache代码语言:javascript代码运行次数:0运行复制
    yum -y install httpdsystemctl start httpd
    然后访问该服务器的80端口即可看到Apache的测试页面:
    手把手搭建个人博客「图文教程」
    在服务器上创建Git服务器1. 服务器端安装Git

    使用root账户

    代码语言:javascript代码运行次数:0运行复制
    yum install -y git
    2. 创建Git用户代码语言:javascript代码运行次数:0运行复制
    useradd gitpasswd git
    手把手搭建个人博客「图文教程」
    3. 创建空仓库

    创建一个空仓库并把所有权给git用户

    代码语言:javascript代码运行次数:0运行复制
    mkdir -p /home/git/repos/myblog.gitgit init --bare /home/git/repos/myblog.git
    手把手搭建个人博客「图文教程」
    代码语言:javascript代码运行次数:0运行复制
    chown -R git:git /home/git/repos/myblog.git/
    手把手搭建个人博客「图文教程」
    5. 在web目录下Clone

    注意: 提交的用户要对/var/www/html有写权限

    代码语言:javascript代码运行次数:0运行复制
    git clone /home/git/repos/myblog.git /var/www/htmlchown -R  git:git /var/www/html/
    4. 设置Git Hook

    我们使用Git Hook的目的就是,在Hexo部署时,会把Hexo生成的静态web资源,自动部署到web目录下.我们需要一个post-receivew如下:

    代码语言:javascript代码运行次数:0运行复制
    #!/bin/bash#判断是不是远端仓库IS_BARE=$(git rev-parse --is-bare-repository)if [ -z "$IS_BARE" ]; thenecho >&2 "fatal: post-receive: IS_NOT_BARE"exit 1fiunset GIT_DIRDeployPath="/var/www/html/"echo "==============================================="cd $DeployPathecho "deploying the myblog web"#git stash#git pull origin mastergit fetch --allgit reset --hard origin/mastertime=`date`echo "web server pull at webserver at time: $time."echo "================================================"

    在DeployPath中填入你的www目录,这里我采用Apache Web服务器默认的位置.

    在本地计算机中,我们可以利用刚git-bash.exe使用scp工具将这个文件上传到git服务器的hook目录下

    手把手搭建个人博客「图文教程」
    配置git部署

    添加 hexo-deployer-git 包依赖

    代码语言:javascript代码运行次数:0运行复制
    yarn add  hexo-deployer-git
    手把手搭建个人博客「图文教程」

    设置_config.yml中的deploy:

    代码语言:javascript代码运行次数:0运行复制
    - type: git   repo: git@159.89.144.28:/home/repo/blog.git
    测试

    在Hexo站点目录下

    代码语言:javascript代码运行次数:0运行复制
    hexo g --deploy
    手把手搭建个人博客「图文教程」

    访问之前的url就会看到效果了!

    手把手搭建个人博客「图文教程」
    七. SEO

    关于SEO优化和其它内容我们单独一篇文章讲解,为了方便搜索引擎的检索,我们要尽量使自己文章的路径深度小,Google会收录你的网站,但是百度需要一定的浏览访问。你可以投稿原创文章到此平台,我们会注明你的博客链接,久而久之自己的博客会被收录。

    问题记录

    deploy的时候出现

    代码语言:javascript代码运行次数:0运行复制
    mote: error: cannot run hooks/post-receive: No such file or directory

    然而我的post-receive是存在且正确的,而且有执行权限.当直接运行post-receive的时候发现错误是这样的:

    代码语言:javascript代码运行次数:0运行复制
    -bash: /home/git/repos/myblog.git/hooks/post-receive: /bin/bash^M: bad interpreter: No such file or directory

    这是因为换行字符的原因,Unix下应该是LF,所以提示的”未找到文件”指的是/bin/bash末尾多了个字符未找到.使用编辑器切换一下换行方式并保存.

    Git - remote: error: cannot run hooks/post-receive: No such file or directory报错查看下方链接:

    https://stackoverflow.com/questions/11630433/git-remote-error-cannot-run-hooks-post-receive-no-such-file-or-directory/40355988

    八、设置域名

    首先去阿里云或者PHP中文网购买域名,然后实名认证就可以了。

    1. 打开域名管理,点击解析

    手把手搭建个人博客「图文教程」

    2. 添加记录,选择 www

    手把手搭建个人博客「图文教程」

    3. 记录值为自己服务器的ip地址

    手把手搭建个人博客「图文教程」

    4. 输入 www.wang91.cn

    手把手搭建个人博客「图文教程」
    本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系bd@zhengruan.com
    作者最新文章
    软件教程 GitHub
    相关文章 更多
    GitHub六个AI开源项目能做什么?软件理解、语音与求职场景
    GitHub六个AI开源项目能做什么?软件理解、语音与求职场景

    解析六个GitHub AI开源项目的具体用途,包括软件静态分析、智能体回答检查、多语言配音、求职材料生成、本地代码检索及动态歌词展示,帮助开发者根据实际需求筛选工具并正确验证结果。

    github 官网 中文怎么切换?中文界面设置教程
    github 官网 中文怎么切换?中文界面设置教程

    许多用户寻找GitHub官网的中文切换入口,但官方网页版并未提供该选项。本文解析原因,并演示如何通过浏览器内置翻译功能实现中文浏览,同时介绍GitHub移动端和文档的中文支持情况。

    百度:发布并开源端到端OCR模型,仅5天GitHub Star突破1万
    百度:发布并开源端到端OCR模型,仅5天GitHub Star突破1万

    百度开源端到端OCR模型UnlimitedOCR,专为长文档解析设计,总参数三十亿,推理激活参数约五亿七千万。发布次日登顶GitHub每日趋势榜和Python榜,五天Star数超一万,HuggingFace两个榜单同样第一。在OmniDocBenchv1.6基准测试中取得百分之九十三点九二综合成绩,刷新纪录。

    在小说搜搜找不到想看的小说怎么办?小说搜搜换源功能使用详解【必学】
    在小说搜搜找不到想看的小说怎么办?小说搜搜换源功能使用详解【必学】

    小说搜搜搜索不到结果?五种实用解决方法帮你搞定 在小说搜搜里搜不到想看的书?这事儿其实挺常见。问题多半出在书源上——要么是默认的书源还没来得及收录,要么是原先的源数据失效了,更新没跟上。别急,下面这五条解决路径,基本能覆盖绝大多数情况,操作起来也不复杂。 一、通过阅读页调出换源入口手动切换 这个方法

    怎么看B站UP主直播的真实人数?在线观看人数换算教程
    怎么看B站UP主直播的真实人数?在线观看人数换算教程

    “实时人气”不等于真实在线人数,需通过区分标识、验证列表与弹幕、第三方工具比对及互动加权扣除四步估算 当你点开B站的某个直播间,屏幕上那个“实时人气:12.8万”的数字可能让你心头一震,觉得场面火热。然而细看之下,弹幕寥寥无几,互动屈指可数——这场景是不是有点眼熟?问题来了:那个醒目的“人气值”,真

    前OpenAI高管加盟航天公司,AI人才涌向太空赛道;GitHub被曝私有仓库数据存在泄露漏洞;OpenAI发布GPT-Live全双工语音模型丨硅谷大事件
    前OpenAI高管加盟航天公司,AI人才涌向太空赛道;GitHub被曝私有仓库数据存在泄露漏洞;OpenAI发布GPT-Live全双工语音模型丨硅谷大事件

    OpenAI发布全双工语音模型GPT-Live,实现同步对话;前高管KevinWeil加入航天公司StokeSpace董事会,AI人才流向太空赛道;GitHubAIAgent被曝存在私有仓库数据泄露漏洞,引发安全质疑。

    GitHub上的文件怎么下载
    GitHub上的文件怎么下载

    说到从 GitHub 上获取文件,其实有不少途径。对于不同场景和需求,选对方法能省下不少力气。下面就把常见的几种下载方式逐一拆开聊聊。 一、通过网页直接下载 这是最直观的办法:进入仓库页面,找到目标文件,点击文件名,然后在弹出的页面中点那个绿色的“Download”按钮,文件就直接到手了。操作简单、

    Git本地分支和GitHub远程分支的关联问题
    Git本地分支和GitHub远程分支的关联问题

    一、本地→远程 GitHub上默认只有一个master分支,这个大家都清楚。不过,当我们在本地创建一个新的分支,比如叫kenny-feng,然后想把本地这个分支的内容推送到远程时,事情就没那么简单了。 直接执行git push,会收到一个报错: The current branch kenny-fe

    过程式编程、面向对象编程、函数式编程、泛型编程、元编程
    过程式编程、面向对象编程、函数式编程、泛型编程、元编程

    命令式编程关注执行步骤,声明式描述目标,函数式强调无副作用。回调函数作为参数传递,可导致回调地狱,后由Promise解决。仿函数重载`operator()`,lambda更轻量。元编程生成代码,如模板、装饰器、宏,提升抽象能力。

    为什么safari浏览器在访问GitHub等技术网站时响应速度慢?
    为什么safari浏览器在访问GitHub等技术网站时响应速度慢?

    Safari18.6在macOSSequoia下访问GitHub时,因WebKit引擎处理CSS变更和动态DOM更新触发低效重排,导致响应缓慢。可通过清空开发缓存、暂停不活跃标签页JS执行、删除高内存网站数据、关闭隐藏IP地址与阻止跨网站跟踪来改善。

    查看更多
    精品专题 更多
    装机必备
    装机必备

    正软商城装机必备专区,精选办公、浏览器、安全防护、影音播放、压缩解压、设计创作和系统工具等电脑常用正版软件,帮助用户快速完成新电脑软件配置。

    Windows
    Windows

    正软商城Windows软件专区,汇集适用于Windows电脑的办公、设计、安全防护、影音播放、开发工具和系统优化软件,提供软件介绍、系统要求、正版授权及购买下载服务。

    PDF教程
    PDF教程

    正软商城PDF教程频道提供PDF编辑、转换、合并、拆分、压缩及格式处理方法,同时介绍常用PDF软件和工具的使用技巧。

    Mac软件 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    Aperty macOS版
    Aperty macOS版
    macOS

    Aperty 是 Skylum 推出的 AI 人像修图软件,支持自然肤质修饰、瑕疵处理、面部与身体调整、预设及批量同步。

    WINDOWS 更多
    讯飞智作 网页版
    讯飞智作 网页版
    Windows/ macOS/ Linux

    讯飞智作是一款基于语音合成技术、虚拟人驱动技术与数字人形象声音构建能力的 AI 数字人音视频创作平台。

    火山引擎 网页版
    火山引擎 网页版
    Windows/ macOS/ Linux

    火山引擎是字节跳动旗下企业级云与AI服务平台。聚焦大模型核心能力,依托字节自研豆包多模态大模型,凭借火山方舟一站式平台,提供模型精调、推理部署、智能应用搭建等全链路服务,结合高性能AI算力,助力各行业快速落地大模型数字化与智能化应用。

    PixTV 网页版
    PixTV 网页版
    Windows

    PixTV 是一款在浏览器中使用的 AI 视觉内容创作平台,提供图片、视频、音频、文字生成、AI 分镜、局部重绘、提示词反推和无限画布等工具,适合短剧、漫剧、广告及社交媒体内容制作。