美文网首页Hexo计算机技术交流(IT)
部署Hexo到服务器并完成自动发布

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

作者: 意梦春秋 | 来源:发表于2018-08-15 17:36 被阅读32次

    服务器环境

    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到服务器并完成自动发布

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