部署hexo到腾讯云

复习的时间太无聊,就把博客迁移到腾讯云上面了。

腾讯云的宣传力度实在太大了,到处都是学生优惠10元一个月的广告。于是我就买了一年的期限外加一个域名。准备把博客从github pages上迁移到云上。我选的server是ubuntu 16.04,网上部署hexo的教程大部分是centos,配置还是有些细微的不同。写这篇文章主要为了记录

本文主要参考了云社区的一篇部署教程 here

前期准备

  • hexo 本地仓库
  • 腾讯云服务器

服务器端配置

  1. ssh到远程服务器

  2. 安装依赖库和编译工具

    1
    2
    $ sudo apt-get install curl-devel expat-devel gettext-devel openssl-devel zlib-devel 
    $ sudo apt-get install gcc perl-ExtUtils-MakeMaker package
  3. 安装git

    1
    $ sudo apt-get install git

    此时执行git -version,如果能看到git的version,说明安装成功

  4. 创建git仓库,用于存放网站资源

    1
    2
    3
    4
    5
    $ mkdir /home/username/git/
    $ chown -R $USER:$USER /home/username/git/
    $ chmod -R 755 /home/username/git/
    $ cd /home/username/git/
    $ git init --bare hexoBlog.git
  5. 创建一个新的 git 钩子,用于自动部署。钩子概念

    • 新建一个新的钩子文件 post-receive

      1
      vim /home/username/git/hexoBlog.git/hooks/post-receive
    • 输入以下内容

      1
      #!/bin/bash git --work-tree=/home/username/hexoBlog --git-dir=/home/username/git/hexoBlog.git checkout -f
    • 修改文件权限,使其可以执行

      1
      chmod +x /home/git/hexoBlog.git/hooks/post-receive

服务器nginx配置

  1. 安装nginx

    1
    $ sudo apt-get install nginx
  2. 启动nginx

    1
    $ service nginx start
  3. 测试nginx

    打开浏览器,输入服务器公网ip。若看到nginx欢迎页面,说明安装成功

  4. 创建nginx托管目录

    1
    2
    3
    $ mkdir /home/username/hexoBlog/ 
    $ chown -R $USER:$USER /home/username/hexoBlog/
    $ chmod -R 755 /home/username/hexoBlog/
  5. 下面最重要的环节来了!我们需要去修改nginx默认配置

    默认server配置的路径在 /etc/nginx/sites-enabled/default

    需要把root改为/home/username/hexoBlog,也就是我们刚刚创建的托管文件夹

    如果有域名的话也可以把server_name 改成自己的域名

  6. 最后重启nginx就可以啦!

    1
    $ service nginx restart

本地hexo站点git配置

  1. 打开根目录下_config.yml

  2. 修改以下内容

    1
    2
    3
    4
    deploy:
    type: git
    repo: root@云服务器的IP地址:/home/username/git/hexoBlog
    branch: master
  3. 最后一步!

    1
    2
    3
    $ hexo clean
    $ hexo generate
    $ hexo deploy