美文网首页日更挑战集锦Hexo
Hexo | 你也可以动手搭建自己的博客系统

Hexo | 你也可以动手搭建自己的博客系统

作者: 峰眼看世界 | 来源:发表于2020-03-12 00:43 被阅读0次

    在简书坚持日更有20天了,蠢蠢欲动有想搭建自己的博客系统的想法了,正好自己之前购买了一台阿里云服务器,于是花了点时间来搭建下自己的博客系统。以后还是会坚持在简书上坚持日更,同时也会在自己的博客里写点文章。

    选择哪一个博客系统

    网上有很多这类文章,常见的有WordPress、Hexo、gost等等,又可以分为 动态系统静态系统

    动态博客系统:后台有数据库,自由度更高,但维护会更复杂,比如gost。
    静态博客系统:后台就是部署了静态的网页资源,加上一个静态web服务器,维护相对简单,比如Hexo。

    究竟应该选择哪一个系统,应该看个人需要,系统折腾且有更多自由时间的可以选动态系统,否则就折腾静态的就ok了。没有太多的去做调研,只是看到网上说WordPress太臃肿了,而且很多人都已经弃用了;gost是动态系统,本人不想花大把时间在上面折腾,且本人的服务器资源也有限;就选择了Hexo这款静态的博客系统。

    开始搞起

    整个搭建分为两端,一端为 服务端,即需要在服务器上进行的安装和配置。我购买的阿里云服务器安装的centos7,因此本文以下的配置是基于centos7的;另一端为 本地端,即需要在自己的电脑上做的配置,以便将来在本地写作,然后更新到服务器上发布,就完成了一篇文章的整个创作过程。


    服务端配置

    1. 配置nginx

    由于之前已经在服务器上折腾好nginx了,如何在centos上安装nginx这一块就不写了,网上随便一搜就能找到,也很简单。

    修改nginx根路由,让其指向存放博客文件的目录,即修改nginx.conf文件,location / 中 root路径修改为/usr/share/nginx/html/blog;

    2. 安装git服务器

    安装git

    # 安装git
    yum install -y git
    # 创建git用户并为其设置密码
    adduser git #创建用户
    passwd git  #设置密码
    
    #切换至git用户,添加SSH Key
    su git  #切换用户
    mkdir ~/.ssh    #创建目录
    vim ~/.ssh/authorized_keys  #将客户端git公钥写进去 
    
    # 为刚刚的文件和目录设置权限
    chmod 600 ~/.ssh/authorized_keys
    chmod 700 ~/.ssh
    

    把git用户添加到sudo用户组中

    sudo vim /etc/sudoers,打开sudoers文件,输入/root进行搜索,搜索到代码行root ALL=(ALL) ALL,然后在这一行下添加以下代码git ALL=(ALL) ALL。输入完毕之后,按wq!强制保存退出vim。

    在网站根目录新建一个blog文件夹,用于客户端上传文件,并且把该文件授权给git用户。代码如下:

    # 使用sudo指令,需要输入git用户的密码
    sudo mkdir -p /usr/share/nginx/html/blog
    sudo chown -R git:git /usr/share/nginx/html/blog
    

    初始化Git仓库

    su git
    cd ~
    git init --bare blog.git    #使用--bare参数,Git就会创建一个裸库。
    

    配置git hooks,以便本地写好文章,通过git push到git服务器后能自动同步到nginx的静态目录下

    vim ~/blog.git/hooks/post-receive
    # 在post-receive中写入以下内容:
    #!/bin/bash
    git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f
    # 赋予其执行权限
    chmod +x ~/blog.git/hooks/post-receive
    

    需要注意的是:配置hooks的时候,要注意post-receive中路径一定要和创建blog的目录路径一致,我就是在网上拷贝的路径不一致,导致后面在本地写好的文章push上来,在/usr/share/nginx/html/blog一直看不到文章,导致我还重新装源码安装了一遍git,在这里折腾了很久。将git --work-tree=/usr/share/nginx/html/blog --git-dir=/home/git/blog.git checkout -f直接拷贝到命令行里运行报的错是:git fatal: this operation must be run in a work tree,所以,在配置好hooks后,可以先在命令行里运行下试试。


    本地端配置

    这里本地端使用的是windows10操作系统。

    1. 安装nodejs

    windows安装就很简单了,自行百度啦。

    2. 配置git

    首先要在windows上安装git客户端,然后生成公钥。客户端生成公钥方法如下:

    cd ~/.ssh/
    git config --global user.name “用户名”,
    git config --global user.email “邮箱”,#分别配置用户名和邮箱,其中“用户名”可任意起,“邮箱”需为可用邮箱
    # 再次输入命令:
    ssh-keygen -t rsa -C  # “刚刚输入的邮箱”,然后停顿处直接回车(总共3次)
    

    生成的公钥文件为id_rsa.pub,将内容拷贝到服务器(切换到git用户)的~/.ssh/authorized_keys文件中。

    3. 安装Hexo

    通过npm进行全局安装hexo框架:

    npm install -g hexo-cli
    

    选择一个目录存放你的博客文件,然后把Git Bash切换到那个目录。
    接着,输入hexo init blog进行初始化hexo
    初始化完毕之后,打开博客根目录的package.json文件,在dependencies的配置中,追加一项:"hexo-deployer-git": "^0.3.1"
    返回Git Bash,先输入cd blog,在输入npm install进行包的安装
    安装完包之后,接着在Git Bash输入:hexo s,然后在浏览器输入localhost:4000,就可以看到hexo已经搭建成功了。

    将本地博客更新到服务器上
    设置博客根目录下的_config.yml文件:

    deploy:
        type: git
        repo: git@SERVER:/home/git/blog.git       #此处的SERVER需改为你自己服务器的ip
        branch: master                            #这里填写分支
        message:                                  #提交的信息
    

    保存后,在博客根目录打开Git Bash,输入以下命令:

    hexo clean
    hexo g
    hexo d
    

    部署完毕之后,即可在浏览器输入你的服务器ip进行访问你的博客了。


    Hexo

    接下来的工作

    到此博客系统就搭建完毕了。就像买了一个清水房一样,接下来要装修啊,要告诉别人你家的地址啊等等。因此接下来还需要开展以下几项工作:

    • 注册域名,备案。将你的域名告诉别人去访问,而不是然人家去记住一个IP地址。
    • 更换主题。找一个漂亮的主题,不要千篇一律地使用官方这个默认的主题了。
    • 研究下Hexo写作。不要搭建了系统,还不知怎么写文章就尴尬了。

    相关文章

      网友评论

        本文标题:Hexo | 你也可以动手搭建自己的博客系统

        本文链接:https://www.haomeiwen.com/subject/qodqjhtx.html