It's Me

正值服务器年付便宜就买了一年来玩玩,所以就有了搭建博客的想法。用的是目前比较流行的Hexo开源博客程序,采用Node.js渲染,并且支持 MarkDown 以及一键部署。折腾了不少时间,虽然还不怎么完善,先用着。
后面慢慢完善!
于是准备把这记录下来,少走弯路…

准备环境

Step 1. 资源准备

  • VPS 主机一台(本文使用 CentOS7).
  • 本地电脑(本文使用 Windows10).
  • XShell终端连接工具用于连接 VPS 主机.
  • SSR代理(仅限学习使用),因为部分文件不挂代理的话速度会很慢.

配置

Step 2.配置

Step 2.1 本地端配置

  • 本地安装 Git ,Node.js,从官网下载安装即可。

  • 在本地创建目录如E:\MyBlog\hexo\进入目录右键选择Git Bash Here,然后安装 Hexo。
    输入以下命令安装 Hexo
    npm install -g hexo

  • 安装完成后在该文件夹下进行初始化
    hexo init 初始化 Hexo
    npm install 安装依赖

  • 安装完成后,我们在终端执行
    hexo s 启动 Hexo
    根据提示在浏览器中输入地址
    http://localhost:4000
    就可以看到预览界面了!

  • 配置本地端无密码 ssh 登录服务端
    用过 Hadoop 和 git 的是不是觉得似曾相识,这里为什么要用到呢?因为这里的 Hexo 发布博客是用 git 来部署的,而 git 又是基于 ssh 连接的,所以实现一键发布博客就得配置这玩意了。其实很简单,有的教程复杂化了,注意这里有些步骤在本地端操作,为了条理,也为了符合我们学习思路,放在这里

  1. 本地端设置 git 用户名邮箱
    这里的用户名邮箱是在本地提交 git 时,服务器端做记录用的
    1
    2
    git config --global user.email "你的邮箱"
    git config --global user.name "你的用户名"
  2. 本地端生成 ssh Key
    1
    2
    ssh-keygen -t rsa -C "你的邮箱"
    cat .ssh/id_rsa.pub //用于将该公钥内容复制到服务端

Step 2.2 VPS 配置

  • 习惯性的,先进行一次更新
    yum update -y

  • 配置服务端端 ssh 登录(已安装则不需要进行操作)

    • 服务器端安装 ssh
      yum install ssh
    • 启动服务
      service sshd start
  • hexo 用户配置

    • 新建 hexo 用户
      useradd hexo
    • 更改密码
      passwd hexo
  • 服务器端在用户主目录下新建.ssh 文件夹并拷贝本地端公钥内容到.ssh 目录下的 authorized_keys

    1
    2
    3
    4
    5
    su - hexo
    mkdir .ssh
    cd .ssh
    echo "本地端公钥(全部内容)" > authorized_keys
    chmod 600 authorized_keys
  • 本地端 ssh 验证
    ssh hexo@你的域名 //@前是你创建的站点管理用户
    OK,无密码 ssh 登陆完成,配置过程注意是在本地端还是服务器端操作。

  • 网站地址文件夹配置

    • 新建网站文件夹
      mkdir /home/hexo/www
  • 赋予 hexo 用户对网站目录的所有权
    chown hexo:hexo -R /home/hexo

  • Nginx 安装与配置

    • 添加 Nginx 源,安装 Nginx
      在/etc/yum.repos.d 目录下创建一个 yum 源文件 nginx.repo,用 vi 编辑写入如下内容。

      1
      2
      3
      4
      5
      [nginx]
      name=nginx repo
      baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
      gpgcheck=0
      enabled=1
    • 安装 Nginx

      1
      2
      sudo  yum install nginx -y
      # nginx -v //查看版本号验证
  • Nginx 启动
    nginx -c /etc/nginx/nginx.conf

  • Nginx 停止
    pkill -9 nginx

  • 删除原配置文件
    rm /etc/nginx/conf.d/*
    重新配置,添加以下内容到/etc/nginx/conf.d/hexo.conf

    1
    2
    3
    4
    5
    6
    7
    server {
    root /home/hexo/www; #网站根目录,用来存储网站文件,后面 会创建
    server_name www.hellolvs.com; #你的域名
    location / {
    index index.html index.htm;
    }
    }

    看到没,这一步将你的域名和服务器下的网站根目录挂钩,主页是根目录下 index.html
    很关键!!!

  • nginx 重启
    service nginx restart

  • Git 配置

    • 安装 Git
      yum install git
    • 初始化 git 仓库
      1
      2
      3
      cd /home/hexo
      mkdir hexo.git && cd hexo.git
      git init --bare
    • 配置 git 仓库 Hooks
      hooks,钩子,就是将不同目录的数据实现同步。具体如下,在 git 仓库 hooks 目录下创建文件 post-receive 并修改权限
      1
      2
      3
      cd hooks
      touch post-receive
      chmod 755 post-receive
      将以下内容添加到 post-receive 中
      1
      2
      3
      4
      5
      6
      7
      8
      #!/bin/bash
      GIT_REPO=/home/hexo/hexo.git
      TMP_GIT_CLONE=/tmp/hexo
      PUBLIC_WWW=/home/hexo/www
      rm -rf ${TMP_GIT_CLONE}
      git clone $GIT_REPO $TMP_GIT_CLONE
      rm -rf ${PUBLIC_WWW}/*
      cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}

部署

Step 3.部署

  • 安装 hexo git 部署模块
    首先我们得给 hexo 添加 git 部署支持…
    本地进入 hexo 目录下,执行

    1
    npm install hexo-deployer-git --save
  • 修改站点配置文件_config.yml
    这个配置文件很重要,可以配置网站名,作者,网站 URL 等等,可以参考官方文档看看各项含义,这里我们配置其中的 URL 项和部署项就好,按下面修改。

    • URL 项配置:

      1
      2
      3
      4
      # URL
      ## If your site is put in a subdirectory, set url as 'http://yoursite.com/child' and root as '/child/'
      url: http://www.hellolvs.com #你的博客网址
      root: /
    • 部署项配置:

      1
      2
      3
      4
      deploy:
      type: git #部署方式
      repo: hexo@www.hellolvs.com:/home/hexo/hexo.git #@符 号之前是服务器的站点管理用户,之后是服务器的git仓库路径
      branch: master #分支,我们只用主分支即可

      这种部署默认是使用 ssh:22 端口,如果服务器是其他端口则需要进行修改
      在本地.ssh 目录下新建 config 文件(没有扩展名并不是 config.txt)
      在文件中添加 IP 端口信息
      Host blog.luckyh.cn #域名或 IP
      Port 1234 #端口号

    • 部署验证

      1
      2
      3
      4
      5
      hexo clean	//清除缓存(实际是删除db.json和public文件夹)
      hexo g //生成静态页面(public文件夹)
      hexo d //部署到服务器

      hexo g -d //后两步简写

OK,完结撒花,浏览器输入你的域名看看吧!

本次总结有点乱(下次重新整理一遍)

作者

Heng.Wang

发布于

2018-05-01

更新于

2023-09-20

许可协议

CC BY-NC-SA 4.0

Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×