专栏首页饶文津的专栏【腾讯云的1001种玩法】Hello Hexo之静态博客搭建+自动部署
原创

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

在腾讯云的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权限运行下面命令

yum install git
adduser git

二、nginx安装和配置

yum install nginx
systemctl start nginx
systemctl enable nginx.service # 设置为开机启动

修改nginx的配置文件

vim /etc/nginx/nginx.conf

server那块改为

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;
        }
}

然后执行

cd /usr
mkdir www
chmod -R 777 /usr/www #设置权限

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

三、本地搭建Hexo环境

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

sudo npm install -g hexo-cli

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

cd ~
hexo init blog

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

cd blog
npm install hexo-deployer-git --save
npm install hero-server

执行:

hexo g #或者hexo generate
hexo s #或者hexo server

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

四、自动化部署

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

ssh登录

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

ssh-keygen -t rsa -C "xx@xx.com"

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

pbcopy < ~/.ssh/id_rsa.pub

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

su git
cd ~
mkdir .ssh
vim .ssh/authorized_keys
#粘贴然后保存
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh

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

新建仓库,配置hooks

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

git init --bare blog.git

然后

vim ~/blog.git/hooks/post-receive
#写入以下内容保存
#!/bin/sh
git --work-tree=/path/to/www --git-dir=~/blog.git checkout -f

再赋予它权限

chmod +x ~/blog.git/hooks/post-receive

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

deploy:
    type: git
    repo: git@你的域名:/home/git/blog.git
    branch: master

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

hexo clean && hexo g --deploy

现在,打开域名看看吧。

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

相关推荐

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

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

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Qt Creator 搭配Git 版本控制

    再次介绍一下Git的使用,这次是在Coding.net上部署项目的。这个是写给大作业合作的小伙伴们(我和我的A奶朋友们和某A的男朋友)看的。

    饶文津
  • git命令行界面

      在网页github上建立了team-sz仓库,安装好客户端后,打开git shell,然后输入下面的命令。

    饶文津
  • 【CodeForces 697B】Barnicle

    一种是刚好是整数,只输出a(注意1.0e1的情况是输出1);另一种是还要输出剩下的小数部分。

    饶文津
  • Centos 7 安装 Git

    可以使用命令将文件直接上传到服务器,也可以使用 WinSCP,这里我就使用 WinSCP 了,因为他是傻瓜式的,输入服务器的公网 IP、用户名以及密码后直接登录...

    Demo_Null
  • git 入门教程之版本控制 原

    我们知道 git 是分布式版本控制系统,所以称被控制对象是版本本身没错,但是从git 命令中发现,并没有版本这个名词,有的只是commit,所以前几节我一直称其...

    雪之梦技术驿站
  • Git - 使用命令和P4Merge进行diff

    P4Merge P4Merge是Git的一个第三发Diff和Merge工具(可视化冲突解决工具). 下载地址: https://www.perforce.com...

    solenovex
  • 提交PR的git 流程

    上次花了点时间让CarbonData集成到StreamingPro中,方便大家更快速的体验到CarbonData的好处,集成完毕后就写了篇文章:让CarbonD...

    用户2936994
  • VirtualBox中CentOS配置git服务器

    在管理自己的代码的时候,我一直使用github。有的时候,私有项目不想公开,如果还要放到GitHub上,那就必须要花钱。解决这个问题的方法其实也很简单:在自己电...

    GitOPEN
  • Git系列之查看状态

    本节来说下 Git 的状态,在日常开发中我们每天都在提交自己的文件到仓库中,有时会存在我们写了很多的功能,都是提交到了缓存区,而没有想仓库内提交,或者我们新增了...

    申霖
  • 解决:git: command not found、apt-get: command not found、git 安装

    原来 apt-get 命令不适用于 CentOS ,在 CentOS 下的安装命令是:yum 。

    微风-- 轻许--

扫码关注云+社区

领取腾讯云代金券