在阿里服务器上利用宝塔面板+GIT搭建hexo博客

看网上大多数教程都要敲许多命令, 但是找到了一篇文章, 利用宝塔面板搭建hexo博客, 配合一点自己的理解, 最终终于搭建成功了.文中的一些解释性的话是按照自己的理解来写的, 可能有些错误, 但是步骤是对的.

参考文章: 腾讯云宝塔面板搭建hexo博客

一. 环境介绍

1. 服务器
    介绍: 阿里学生云轻量型应用服务器
    配置: 1核2G, 40GSSD, 5M带宽
    系统: CentOS Linux 7.6.1810 (Core)

2. 服务器软件
(1) nginx-1.15(通过宝塔面板安装)
(2) git-1.8.3.1

3. 宝塔插件
 - 宝塔SSH终端 1.0(可以用xshell等工具替代)
 
4. 域名

5. 本地需要安装git, 具体一些初始化配置可以看其他教程

6. 服务器防火墙设置

二. 服务器git配置

现在需要在服务器内创建一个git仓库, 本地git推送时需要推送到这里

  • 第一步: 创建文件夹

    1. 通过宝塔面板文件模块在home文件夹下新建git,hexo这两个文件夹
    2. 当然, 可以通过命令行方式创建亦可
  • 第二步: 创建git仓库

    1
    2
    3
    4
    5
    6
    [服务器命令]

    cd .. //这里是因为默认执行目录是root,需要返回根目录
    cd home
    cd git
    git init --bare hexoBlog.git
  • 第三步: 指定本地git推送到服务器的路径
    进入/home/git/hexoBlog.git/hooks,然后新建一个文件:post-receive,不要后缀名。然后编辑它,加入如下两条代码

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

    这里的目的是对于hexoBlog.git仓库, 指定本地git推送到该仓库时, 文件保存在/home/hexo目录下

  • 第三步: 更改post-receive文件权限

    1
    2
    3
    [服务器命令]

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

三. 配置Nginx!

主要修改nginx.conf文件, 指定网站路径, 以及服务器对应端口等

利用宝塔面板安装的nginx默认的nginx配置文件在根目录->www->serve->nginx->conf下,找到nginx.conf,编辑它,如图:

  1. listen
    监听端口, 如果网站需要http访问则需要设置为80, 如果需要https访问, 则需要设置为443(端口号具体看上面环境配置部分的截图)

  2. server_name
    域名

  3. SSL证书配置(如果用Http访问就不用设置此项)
    注意其中有些内容需要修改

    1
    2
    3
    4
    5
    6
    7
    ssl on;
    ssl_certificate path_pem; //path_pem -> SSL证书.pem文件在服务器中的地址
    ssl_certificate_key path_key; //path_key -> SSL证书.key文件在服务器中的地址
    ssl_session_timeout 5m;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 按照这个协议配置
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 按照这个套件配置
    ssl_prefer_server_ciphers on;
  4. root
    本地git推送的文件存放路径, 之前配置git时指定的路径为/home/hexo

    四. 将本地git的SSH公钥添加到服务器git

  5. 获取本地SSH公钥
    方式1: 右键点击git gui here, 打开git gui here, 点击help, 再点击show SSH Key, 复制
    方式2: win10下路径为‪C:/Users/[你的用户名]/.ssh/id_rsa.pub, pub就是public, 表示公钥

  6. 将本地公钥放到服务器中
    我这里路径为/root/.ssh/authorized_keys, 编辑authorized_key文件, 添加上面复制的公钥.

这里是使用宝塔面板终端, 使用vim修改该文件的. (宝塔的文件中好像显示不了隐藏文件夹, 只能通过命令行来敲啦)

PS: 如果少了这一步, 可能本地git推送到服务器会被服务器拒绝

五. 修改本地hexo站点的_config.yml文件

1
2
3
4
deploy:
type: git
repo: root@你的云服务器ip:/home/git/hexoBlog #如果你更改了ssh端口的话,需要改成 ssh://root@ip:端口号/home/git/hexoBlog
branch: master

六. 推送并重启nginx

  1. 本地hexo命令

    1
    2
    3
    hexo clean  //或hexo c
    hexo generate //或hexo g
    hexo deploy //或hexo d, 博主电脑这里必须输入hexo deploy才行, hexo d说没这个命令, 如果有知道原因的小伙伴不妨在评论区告知我一下(嘿嘿)
  2. 重启nginx

    1
    2
    3
    [服务器命令]

    service nginx restart