程序员

Hexo部署在腾讯云

2018-06-11  本文已影响131人  solfKwolf

title: Hexo部署在腾讯云
date: 2018-06-10 23:05:54
tags: Hexo


之前一直想把hexo部署在自己的服务器上,但是一直出问题,最后终于成功了,借此记录下来,也方便别人参考。

Hexo

这里简单介绍下什么是Hexo,简单来说,Hexo是基于nodejs开发的一个静态站点生成器,同时支持Markdown语法写作。

没接触过的朋友建议可以向参考官网。尝试着自己在本地搭建。后面很多技巧也离不开API文档。

环境搭建

  1. CentOS 7.3 64位(我安装的是这个系统)

  2. 搭建Git仓库
    这一步的思路:在服务器创建私有仓库,这样本地生成的Hexo博客静态文件可以发布到创建好的仓库中!一下是实现步骤:
    2.1 安装git

    yum install git
    git -v
    

    2.2 创建用户git

    groupadd git 
    adduser git -g git
    

    2.3创建authorized_key文件
    作用:当你通过ssh访问服务器时,无需输入密码

    cd /home/git
    mkdir .ssh
    chmod 700 .ssh
    touch .ssh/authorized_keys
    chmod 600 .ssh/authorized_keys
    cd /home
    chown -R git:git git
    

    注意:给权限很重要。

    2.4创建秘钥并上传到服务器
    在本地电脑输入

    ssh-keygen -t rsa -C "your_email"
    

    your_email填写你的邮箱,会在本地生成2个文件:id_rsa对应私钥,id_rsa.pub对应公钥.(路径命令行会给出的)

    将id_rsa.pub中的内容写到服务器的authorized_keys文件中。
    如果有多个客户端,那么在authorized_keys文件中,一行保存一个客户端的公钥。
    最快当然是直接WinSCP改...vim我嫌麻烦。
    2.5创建git仓库
    我们一般都把所有的git仓库放在同一个目录下,这样方便我们管理,这里我放在/home/gitrepo,

    cd /home
    mkdir gitrepo
    chown git:git gitrepo
    

    创建git仓库:blog.git

    cd gitrepo
    git init --bare blog.git
    

    最后一步,把仓库所属用户改为git

    chown -R git:git blog.git
    

    注意: 以后每创建一个新的仓库,记得最后一步操作: 修改仓库所属用户为git。
    以下是一些基本操作,你可以直接忽略跳过:
    在本地clone

    git clone git@your_gitServer_ip:/home/gitrepo/blog.git
    

    push已有的仓库

    // 以master分支示范
    git checkout master
    git remote rm origin
    git remote add origin git@your_gitServer_ip:/home/gitrepo/blog.git
    git push -u origin master
    

3.安装nginx
作用:web托管服务,当输入ip地址时访问的就是nginx服务器,可以把在blog.git仓库中的静态文件放在托管文件夹目录下,就能浏览到博客页面
3.1 安装工具包
yum install epel-release
3.2 安装nginx
yum install nginx
3.3 启动
systemctl start nginx
3.4 开机启动
systemctl enable nginx
3.5 创建托管文件夹
mkdir -p /var/www/hexo
3.6修改权限
chown -R $USER:$USER /var/www/hexo chmod -R 755 /var/www/hexo
3.7 修改nginx的配置文件
可能路径不一样,自己找吧
vi /usr/local/nginx/conf/nginx.conf

```
server {
listen 80 default_server;
listen [::]:80 default_server ipv6only=on;

root /var/www/hexo; # 需要修改的部分
index index.html index.htm;
```
重启服务器
```
service nginx restart
```
老规矩:能用WinSCP的话还是很简单的。
接下来一步就是将blog.git仓库中的静态文件放到/var/www/hexo这个路径下咯!
4 创建Git钩子
接下来一步就是将blog.git仓库中的静态文件放到/var/www/hexo这个路径下咯!

```
vim /home/gitrepo/blog.git/hooks/post-receive
```
在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。
```
#!/bin/bash

git --work-tree=/var/www/hexo --git-dir=/home/gitrepo/blog.git checkout -f
```

保存并退出,给权限
```
chmod +x /home/gitrepo/blog.git/hooks/post-receive
```

到此为止,服务端的配置已经结束了。
  1. 修改本地配置文件_config.yml中deploy
deploy:
    type: git
    repo: git@云服务器的IP地址:/home/gitrepo/blog.git
    branch: master

注意:要安装 npm install hexo-deployer-git --save

  1. 部署:
hexo g
hexo d

搞定收工!

我的博客:http://www.liuzongjie.com

上一篇下一篇

猜你喜欢

热点阅读