【腾讯云的1001种玩法】Hello Hexo之静态博客搭建+自动部署

2017-06-19 19:09:27 浏览数 (1)

在腾讯云的CentOS7云主机上部署一个Hexo博客,马上让你写博客的姿势变得更加极客。

搭建流程

先明确一下它的运作流程:本地有个 hexo 程序,里面包含了 public 文件夹,sources 文件夹,hexo 将 sources 里的*.md文件渲染为静态的 html 文件放到 public 下,然后我们用git推送到服务器的repository,服务器用git hooks把仓库里的文件同步到网站根目录,而 nginx 的作用就是反向代理。

  • 服务器环境:安装git、nginx、创建git用户
  • 本地搭建Hexo环境:安装NodeJs、hexo-cli,生成本地静态网站
  • 使用git自动化部署发布博客

一、安装git、创建git用户

在服务器上用root权限运行下面命令

代码语言:javascript复制
yum install git
adduser git

二、nginx安装和配置

代码语言:javascript复制
yum install nginx
systemctl start nginx
systemctl enable nginx.service # 设置为开机启动

修改nginx的配置文件

代码语言:javascript复制
vim /etc/nginx/nginx.conf

server那块改为

代码语言:javascript复制
server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  ffflipped.cn; #你的域名
        index index.html;
        root         /usr/www;#网站根目录

        location / {
                try_files $uri $uri/ =404;
        }

        location ~* ^. .(ogg|ogv|svg|svgz|eot|otf|woff|mp4|ttf|rss|atom|jpg|jpeg|gif|png|ico|zip|tgz|gz|rar|bz2|doc|xls|exe|ppt|tar|mid|midi|wav|bmp|rtf)$ {
                access_log off; log_not_found off; expires max;
        }
}

然后执行

代码语言:javascript复制
cd /usr
mkdir www
chmod -R 777 /usr/www #设置权限

作为服务器上的网站根目录。

三、本地搭建Hexo环境

安装hexo-cli(windows用git bash运行命令):

代码语言:javascript复制
sudo npm install -g hexo-cli

初始化hexo,比如我要在~/blog下搭建博客

代码语言:javascript复制
cd ~
hexo init blog

之后继续安装hexo-deployer-githexo-server,一个用于git自动部署,一个用于本地简单的服务器。

代码语言:javascript复制
cd blog
npm install hexo-deployer-git --save
npm install hero-server

执行:

代码语言:javascript复制
hexo g #或者hexo generate
hexo s #或者hexo server

就可以访问http://localhost:4000看到博客了。

四、自动化部署

自动化部署就是可以不用在服务器上执行操作,只要本地 git 推送上去,服务器就会通过git hooks 自动把内容同步到网站根目录。

ssh登录

为了以后每次发布时不用输入密码,我们需要创建证书登录,如果自己电脑里没有公钥(我们的公钥在这里:~/.ssh/id_rsa.pub),则创建公钥:

代码语言:javascript复制
ssh-keygen -t rsa -C "xx@xx.com"

有则跳过上面这步,然后复制公钥到服务器,下面这个命令就是把公钥内容读入剪贴板。

代码语言:javascript复制
pbcopy < ~/.ssh/id_rsa.pub

切换为git用户,添加公钥后记得要赋予文件相应权限:

代码语言:javascript复制
su git
cd ~
mkdir .ssh
vim .ssh/authorized_keys
#粘贴然后保存
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

在自己电脑终端输入ssh git@你的域名验证是否配置好ssh登录。

新建仓库,配置hooks

接着上一步(git用户~目录),在服务器上创建一个裸仓库

代码语言:javascript复制
git init --bare blog.git

然后

代码语言:javascript复制
vim ~/blog.git/hooks/post-receive
#写入以下内容保存
#!/bin/sh
git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f

再赋予它权限

代码语言:javascript复制
chmod  x ~/blog.git/hooks/post-receive

本地打开_config.yml,最后面的deploy修改为:

代码语言:javascript复制
deploy:
    type: git
    repo: git@你的域名:/home/git/blog.git
    branch: master

我们试试能不能自动部署:

代码语言:javascript复制
hexo clean && hexo g --deploy

现在,打开域名看看吧。

接下来安装主题和配置hexo的其他功能就是后话了。

相关推荐

使用 Github 和 Hexo 快速搭建个人博客

【腾讯云的1001种玩法】利用腾讯云搭建个人博客

0 人点赞