Thu Mar 24 2022
1198 words · 7 minutes

服务器搭建Hexo博客


Table of Contents

我服务器是腾讯云轻量hk,搭建之后访问速度还是很快的。比上cdnTypecho 快多了 R3BccT.png


一、在本地Windows上搭建Hexo Link to 一、在本地Windows上搭建

1.1 配置本地node环境 Link to 1.1 配置本地 node 环境

  • node下载 官网下载,可以的话推荐使用 nvm 安装

  • 打开cmd查看node安装情况

    SHELL
    1
    2
    node -v
    npm -v
    
  • 配置全局环境

    • 进入安装目录,创建文件夹node_globalnode_cache 并执行

      SHELL
      1
      2
      npm config set prefix "D:\programming\nodejs\node_global"
      npm config set cache "D:\programming\nodejs\node_cache"
      
    • 环境配置:新增环境变量NODE_PATH和添加Path,两个值都为 \node_global的目录位置

  • 安装hexo-cli

    SHELL
    1
    2
    npm i hexo-cli -g
    hexo
    

    R3BzSS.png

  • 随便找个地方初始化文件,执行如下命令:

    SHELL
    1
    2
    mkdir hexo-blog
    cd hexo-blog && npm init -y
    

1.2初始化hexo项目 Link to 1.2初始化 hexo 项目

  • 在 中的hexo-blog文件下初始化

    SHELL
    1
    2
    hexo init myblog && cd myblog
    npm i
    
  • 下载主题

    • 这里我用的是next主题,其他同理
    SHELL
    1
    git clone https://github.com/iissnan/hexo-theme-next themes/next
    
  • 本地配置文件_confing.yml中设置theme属性

    R3Bu5P.png

  • 本地执行hexo项目,添加start脚本

    SHELL
    1
    "start" : "hexo clean && hexo g && hexo s"
    

    R3C5dn.png

    然后执行命令

    SHELL
    1
    npm run start
    

    打开 http://localhost:4000验证效果吧

1.3git环境搭建 Link to 1.3 git 环境搭建

  • git安装:官网下载

  • 生成ssh认证,执行如下命令

    SHELL
    1
    2
    3
    4
    git config --global user.name "yourname"
    git config --global user.email youremail@example.com
    ssh-keygen -t rsa -C "youremail@example.com"
    git config --global core.autocrlf false  // 禁用自动转换,
    
  • 最后获取到的ssh认证在C:\Users\yourname\.ssh

二、服务器配置 Link to 二、服务器配置

这个之前写过来着

教程是Centos服务器,Ubuntu Debian 命令自行更换即可。

1.1 搭建远程Git私库 Link to 1.1 搭建远程 Git 私库

  • 在服务器安装 git

    SHELL
    1
    2
    3
    git --version // 如无,则安装
    yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel perl-devel
    yum install -y git
    
  • 创建用户并配置其仓库

    SHELL
    1
    2
    3
    4
    5
    6
    7
    8
    9
    useradd git
    passwd git // 设置密码
    su git // 这步很重要,不切换用户后面会很麻烦
    cd /home/git/
    mkdir -p projects/blog // 项目存在的真实目录
    mkdir repos && cd repos
    git init --bare blog.git // 创建一个裸露的仓库
    cd blog.git/hooks
    vi post-receive // 创建 hook 钩子函数,输入了内容如下
    
    SHELL
    1
    2
    #!/bin/sh
    git --work-tree=/home/git/projects/blog --git-dir=/home/git/repos/blog.git checkout -f
    
  • 添加完毕后修改权限

    SHELL
    1
    2
    3
    chmod +x post-receive
    exit // 退出到 root 登录
    chown -R git:git /home/git/repos/blog.git // 添加权限
    
  • 测试git仓库是否可用,另找空白文件夹

    SHELL
    1
    git clone git@server_ip:/home/git/repos/blog.git
    

    如果能把空仓库拉下来,就说明 git 仓库搭建成功了

    R3CqYT.png

  • 建立ssh信任关系,在本地电脑

    SHELL
    1
    2
    ssh-copy-id -i C:/Users/yourname/.ssh/id_rsa.pub git@server_ip
    ssh git@server_ip // 测试能否登录
    

    :此时的 ssh 登录 git 用户不需要密码!否则就有错,请仔细重复步骤 3-5

  • 为了安全起见禁用 git 用户的 shell 登录权限,从而只能用 git clone,git push 等登录

    PLAINTEXT
    1
    2
    3
    4
    cat /etc/shells // 查看 git-shell 是否在登录方式里面
    which git-shell // 查看是否安装
    vi /etc/shells
    添加上2步显示出来的路劲,通常在 /usr/bin/git-shell
    

    修改/etc/passwd中的权限

    SHELL
    1
    2
    3
    4
    5
    // 将原来的
    git:x:1000:1000::/home/git:/bin/bash
    
    // 修改为
    git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell
    

1.2搭建nginx服务器 Link to 1.2搭建 nginx 服务器

  • 下载并安装nginx

    SHELL
    1
    2
    3
    4
    5
    6
    7
    8
    cd /usr/local/src
    wget http://nginx.org/download/nginx-1.15.2.tar.gz
    tar xzvf nginx-1.15.2.tar.gz
    cd nginx-1.15.2
    ./configure // 如果后面还想要配置 SSL 协议,就执行后面一句!
    ./configure --prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module --with-file-aio --with-http_realip_module
    make && make install
    alias nginx='/usr/local/nginx/sbin/nginx' // 为 nginx 取别名,后面可直接用
    
  • 配置nginx文件

    • 先启动是否安装成功

      SHELL
      1
      nginx // 直接来!浏览器查看 server_ip,默认是 80 端口
      
    • 修改配置文件

      SHELL
      1
      2
      3
      nginx -s stop // 先停止nginx
      cd /usr/local/nginx/conf
      vi nginx.conf
      

      修改root解析路径,如下图

      1

      同时将 user改为root如下图,不然nginx无法访问/home/git/projects/blog

      2

      SHELL
      1
      nginx -s reload
      

三、发布 Link to 三、发布

至此我们就把本地和服务器的环境全部搭建完成,现在利用 hexo 配置文件进行链接

配置_config.yml文件 Link to 配置 _config.yml 文件

  • 编辑_config.ymldeploy属性

    SHELL
    1
    2
    3
    4
    deploy:
      type: git
      repo: git@ip:/home/git/repos/blog.git
      branch: master
    
  • package.json 中添加npm脚本

    SHELL
    1
    "dd": "hexo clean && hexo g -d"
    

    R3CisQ.png

  • 若在本地调试则使用

    SHELL
    1
    hexo clean && hexo g && hexos
    

    或者要是跟我一样配置了scripts

    SHELL
    1
    npm run start
    
  • 若发布

    SHELL
    1
    hexo clean && hexo g -d
    

    或者要是跟我一样配置了scripts

    SHELL
    1
    npm run dd
    
Thanks for reading!

服务器搭建Hexo博客

Thu Mar 24 2022
1198 words · 7 minutes