部署Hexo到服务器并完成自动发布

服务器环境

ubuntu16.04 64位

搭建流程简介

  • 服务器端环境搭建
  • Hexo端环境搭建(可搭建在服务器上)
  • 调试与测试

服务器端


  • WebServer安装

可以自行选择nginx或者apache或者别的都行,我使用的是apache2
sudo apt-get install apache2

apache2的默认目录为 /var/www/html 可以自行更改目录以下以此目录为准

  • npm安装

    $sudo apt install npm
    如果机器已经包含有npm,最好更新到最新版本,否则可能会遇到意想不到的错误(是我了)
    $sudo npm install npm@latest -g

  • nodeJS安装

    $sudo apt install node
    同上 更新(这个有一个问题我没遇到 不过提醒一下 优先升级node 防止npm升级后node版本过低死循环无法使用了)
    $npm install -g n
    $n stable

  • git安装与配置

    $apt-get install git
    安装好git后我们建立一个新账户git用来完成git方面的操作
    $sudo adduser git
    为了安全起见,我们需要关闭git账号登录shell的权限!!(一开始疏忽了 一个晚上服务器被异常登陆五次!!)
    $vim /etc/passwd
    找到git账号(一般在最后面)
    /bin/bash改为/usr/bin/git-shell

    创建空仓库
    我将仓库放在/var/repo/0DayYouK目录下 可以自行选择目录
    在目录下$sudo git init --bare 0DayYouK.git

    --bare参数可以建立一个裸仓库没有工作区,我们只需要用git做一个中转之用即可

    配置ssh公钥
    将Hexo端产生的ssh公钥复制到/home/git/.ssh/authorized_keys文件中(如果没有该文件,新建即可)
    配置git-hook
    在0DayYouK.git/hooks下新建post-receive文件 写入如下内容

    #!/bin/sh
    git --work-tree=/var/www/html --git-dir=/var/repo/0DayYouK/0DayYouK.git checkout -f
    

    前面的路径为部署路径 ,后面的路径为仓库的路径
    post-receive会在收到push请求完成后执行 更多Hooks
    给文件添加可执行权限
    $chmod +x post-receive
    将.git目录和部署目录owner都改为git账户(最后hexo deploy时出现git无权限基本是这个问题)
    $ sudo chown -R git:git 0DayYouK.git
    $ sudo chwon -R git:git /var/www/html
    到此 服务器端基本就部署完毕啦!

Hexo端


hexo也可以安装在服务器上,都不影响接下来的操作

  • node安装
  • hexo安装

    进入你博客的目录
    $npm install hexo-cli -g
    初始化
    $hexo init <你博客的名字>
    安装一些基本的插件

    $cd  <你博客的名字>
    $npm install
    $npm install hexo-deployer-git --save
    $npm install hero-server --save
    
  • ssh密钥生成
    $cd ~/.ssh
    $ssh-keygen
    $cat ~/.ssh/id_rsa.pub
    

    生成密钥对时一路回车就好了
    输出的内容就是我们需要交给服务器的公钥了

  • hexo配置

    修改 <你博客名字> 目录下的 _config.yml 找到 deploy, 修改为:

    deploy:
       type: git
       repo:  git@yoursite:/var/repo/0DayYouK/0DayYouK.git
       branch:  master
    

    到此Hexo端的配置也结束了!

调试


进入<你的博客名字>目录
hexo new "Hello world"
hexo clean
hexo g
hexo d
查看效果即可!

  • 错误一
    hexo g 等命令无法执行 更新npm和node版本后重新安装插件
  • 错误二
    hexo d 时 无权限创建目录 检查是否将目录权限设置正确
  • 错误三
    hexo d 时 显示 Branch are set up to XXXXXXXXX 删除目录下.deploy_git文件夹后重试
  • 更多问题
    欢迎邮件至 我的邮箱

参考


如何在服务器上搭建hexo博客

你可能感兴趣的:(部署Hexo到服务器并完成自动发布)