0

    使用 Vultr 搭建个人的 Hexo 博客

    2023.06.08 | admin | 128次围观

    点击上方“码农沉思录”,选择“设为星标”

    优质文章,及时送达

    搭建一个博客需要以下几个步骤

    申请域名

    申请VPS,安装好Hexo需要的一些软件

    本地搭建配置Hexo

    服务器环境搭建

    1.申请域名

    可以在各大域名商上去申请域名,我是在godaddy上申请,这里需要注意的事,域名后期续费是越来越贵的,

    所以最好一次性买个几年, 这样一来省钱,二来也避免续费的烦恼,购买域名后,需要注意,

    由于我的 VPS 选择了 Vultr,此域名的域名解析服务器需要改成 Vultr 的,怎么修改呢

    1.点击我的产品中的 DNS ,如下图

    2.填上 Vultr 的域名服务器

    到这里我们的域名申请工作就结束了

    2.申请VPS

    接下来就要申请 vps 了,这里我选择了口碑比较好的vultr, 注册后点击这里即可配置 server ,前面两步我选择了东京的「CentOS 7 x64」,第三步 Server Size 我选择了第三个普通版

    这里提前预警下,由于之后我们要安装lnmp所以配置最好至少选第三个开始的配置,然我一开始选了第二个,lnmp装的过程中一直有问题,换成第三个就好了,如果你的 Mysql 至少要安装 5.7 以上,要出点血选择第四个配置了(因为 5.7 比较吃内存),第四,五步可以不选,第六步最好附上你的SSH Keys这样使用 SSH 登录你的 VPS 的时候就能免登录了,怎么生成SSH Keys呢,可以点这里查看

    最后一步为你的 Server 起个名字就行啦(建议用域名,如下)

    Server 的配置我们选好了之后,我们还需要绑定我们的域名与 ip, 这样才能让域名解析器解析正确

    点击这里即可拿到 Server 的 ip

    拿到域名之后点击 DNS 中的 「Add Domain」即可绑定域名和 ip

    在这里我们的 Server 申请工作就结束了,但申请了之后我们还要再给这个 Server 安装支撑 Hexo 运行的软件,需要安装哪些软件呢,

    我们首先需要知道 Hexo 的运行原理怎么知道php服务器搭建好了没有,如下图:

    整体原理如下

    本地计算机将 Sources 下的 Markdown 文件转为 Html 之后,执行「Hexo Deploy」命令后,会把本地生成的静态文件 push 到 Server 上的 git 仓库

    「git-hook」会将自动将以上步骤生成的静态文件 copy 到网站的根目录,然后经过 Nginx 代理服务即可把网站展现给用户,我们的个人博客也就建成了

    知道了原理就不难得知

    我们要在本地和服务器分别搭建我们的环境

    3.本地环境搭建

    1.安装 Hexo:使用 cmd 命令行,输入下列命令

    $ npm install -g hexo-cli

    2.指定一个文件夹存放你的Blog文件(也就是根目录)

    $ hexo init # 替换成你的文件夹地址,在这个地址里生成Hexo初始化文件
    $ cd # 进入这个文件夹
    $ npm install # 在文件夹内自动安装Hexo所依赖的各种模块

    4.服务器环境搭建

    由以上分析可知我们至少要装 git, nginx, 主要步骤如下

    1.安装git

    输入以下命令即可安装

    yum install git

    2.至于 nginx 的安装我推荐大家用lnmp, Linux、Nginx、MySql、Php 可以说是建站的标配了,lnmp只要执行一行命令就能把这些软件都安装好,能省下我们不少精力,不过这四个软件的安装可能需要半小时之久怎么知道php服务器搭建好了没有,大家要做好心理准备^_^, 安装成功后我们访问域名,即会出现以下提示,说明我们安装成功了

    使用 Vultr 搭建个人的 Hexo 博客

    3.安装好之后我们首先需要建立一个 git 仓库来存放我们本地 blog 生成的静态目录,为了安全我们通常不以 root 身份来操作,所以这里我们选择新建一个用户,专门运行 git 服务

    adduser git

    以下步骤赋予 git 用户 sudo 权限

    chmod 740 /etc/sudoers
    vim /etc/sudoers

    找到以下内容:

        
    ## Allow root to run any commands anywhere
    root ALL=(ALL) ALL

    在下面添加一行:

    git ALL=(ALL) ALL

    保存退出后改回权限:

    chmod 400 /etc/sudoers

    画外音:可以想一下为啥要给用户 git 权限,如果不给的话可能会出现什么问题

    4.切换用户,配置SSH

    由于本机 Hexo 部署好文件后需要 push 到远程,为了避免每次 push 时都要输入密码,我们需要进行免密操作,步骤如下

    使用su git切换到 git 用户,再执行下列操作

        
    # 切换到git用户目录
    cd /home/git
    # 创建.ssh文件夹
    mkdir ~/.ssh
    # 创建authorized_keys文件并编辑
    vim ~/.ssh/authorized_keys
    # 如果你还没有生成公钥,那么首先在本地电脑中执行 cat ~/.ssh/id_rsa.pub | pbcopy生成公钥
    # 再将公钥复制粘贴到authorized_keys
    # 保存关闭authorized_keys后,修改相应权限
    chmod 600 ~/.ssh/authorzied_keys
    chmod 700 ~/.ssh

    然后在本机执行以下命令查看配置是否成功

    ssh git@服务器ip地址

    5.接下来我们新建一个 git 仓库来存放本地 Hexo 生成的静态文件

        
    # 回到git目录
    cd /home/git
    # 使用git用户创建git裸仓库,以blog.git为例
    git init --bare blog.git

    画外音:为啥不用 git init 而用 git init bare, 请这里查看两者的区别

    建好仓库之后我们设置一下 「git hook」

    vim ~/blog.git/hooks/post-receive

    输入以下内容

        
    #!/bin/bash
    GIT_REPO=/home/git/blog.git
    TMP_GIT_CLONE=/tmp/blog
    #这里我用 /var/www/blog 目录作为网站的根目录
    PUBLIC_WWW=/var/www/blog
    rm -rf ${TMP_GIT_CLONE}
    git clone $GIT_REPO $TMP_GIT_CLONE
    rm -rf ${PUBLIC_WWW}/*
    cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

    保存退出后,执行:chmod +x post-receive赋予这个文件可执行权限。

    检查一下 blog.git、.ssh、blog目录的用户权限组是否都为git:git

        
    # /var/www/是怎么回事?注意我在 git hook 里提到用 /var/www/blog 作为网站的根目录
    ll -a /var/www/
    ll -a /home/git/
    ll -a ~/.ssh

    如果哪个不是,执行以下命令再看一下

    sudo chown git:git -R /var/www/blog
    sudo chown git:git -R /home/git/blog.git

    6.配置 Nginx

    由于我们的 blog 用到了 nginx 静态文件处理服务,需要修改 nginx 的配置文件(nginx.conf),进入 nginx 的配置目录

    /usr/local/nginx/conf/

    先备份一下 nginx.conf

    cp nginx.conf nginx.conf.bak

    然后打开 nginx.conf 文件,修改 root 为我们在上一步新建的 blog 的目录

    server
    {
    listen 80 default_server;
    #listen [::]:80 default_server ipv6only=on;
    server_name _;
    index index.html index.htm index.php;
    #修改这里为我们的 blog 目录
    root /var/www/blog;

    ...
    }

    保存修改后使用nginx -t查看配置是否有错误,若无误,则执行lnmp restart即可让配置生效

    7.将本机 Hexo 工程的 git 地址指向 服务器 git 地址

        
    # 在本地环境搭建时我的博客放在~/hexos文件夹里
    cd ~/hexos
    vim _config.yml

    找到 deploy 选项,修改 repo 为你的远程服务器地址

    deploy:
    type: git
    repo: git@服务器ip:/home/git/blog.git
    branch: master

    完成了以上本地和服务器配置之后,使用 Hexo 创建写好了文章,执行 「hexo deploy」命令,稍等片刻,访问我们申请的域名即可显示我们的博客文章,大功告成!

    点个在看吧,证明你还爱我

    版权声明

    本文仅代表作者观点。
    本文系作者授权发表,未经许可,不得转载。

    发表评论