将Hexo搭载到自己的服务器上

花了一上午时间终于捣鼓完自己的博客了,写篇文章记录下。

我的服务器:

  • 系统:CentOS 7.6.1810

  • 配置:1核/2G/1Mbps

  • 腾讯云

服务器所需环境:

宝塔面板,nginx,git

宝塔面板官方有详细安装教程,nginx可以直接通过宝塔面板安装,git安装网上也有许多教程,这里默认大家已经装好了所需环境。

  1. 创建git仓库,存放博客资源

    • home目录下,创建出一个git目录,再在home/git目录下创建一个hexoBlog.git 目录

    • git目录读写权限改为777(这步很重要)

    • 执行如下命令:

      1
      2
      cd /home/git/
      git init --bare hexoBlog.git

      这样就可以创建出一个裸的git仓库

  2. 创建一个git钩子用于自动部署。

    • /home/git/hexoBlog.git/hooks 下新建一个文件 post-receive

    • 在文件中添加如下代码

      1
      2
      #!/bin/bash
      git --work-tree=/www/wwwroot/hexo --git-dir=/home/git/hexoBlog.git checkout -f

      注意,这里写的/www/wwwroot/hexo就是我们博客的部署目录,在宝塔中添加新的站点时根目录选择这个目录就可以

    • 设置这个文件的可执行权限:chmod +x post-receive

  3. 在本机上配置hexo根目录下的——config.yml

    • # Deployment
      ## Docs: https://hexo.io/docs/one-command-deployment
      deploy:
        type: git
        repository: 
            tencent: root@你的服务器ip地址:/home/git/hexoBlog.git

      root是服务器默认的的用户名,如果你创建了新的用户就用新的用户名

    • 本机运行hexo clean,hexo g -d

    • 我运行时出现了一个问题:

      remote: error: cannot run hooks/post-receive: No such file or directory

      搜索后发现好像是因为在Windows下调用CentOS上文件导致的错误

      在服务器上首先安装工具dos2unix:yum install -y dos2unix

      然后用命令dos2unix post-receive将Windows文件转换为Linux文件即可。

作者

Fizzmy

发布于

2020-09-02

更新于

2021-08-06

许可协议

评论