【腾讯云的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 条评论
登录 后参与评论

相关文章

来自专栏数据和云

使用 Oracle 的 Security External Password Store 功能实现数据库加密登陆

编辑手记:让安全成为一种习惯,使用 Oracle 的 Security External Password Store 功能实现加密登录, 不将明文密码暴露在生...

4036
来自专栏windows 技术

Windows Server 2008 R2远程桌面服务配置和授权激活

日常工作中,经常需要远程连接到服务器上,然而服务器系统默认允许同时连接的最大连接数只有2个。这样一来,问题就来了,常常遇到“终端服务器超出最大连接数”,导致无法...

1887
来自专栏云计算教程系列

如何在Debian 9上使用Postgres,Nginx和Gunicorn设置Django

Django是一个功能强大的Web框架,可以帮助您实现Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码,但是对于任何与生...

711
来自专栏崔庆才的专栏

分布式爬虫原理之Scrapy分布式实现

2676
来自专栏Urahara Blog

域渗透-信息收集基础

3115
来自专栏云计算教程系列

如何在CentOS 7上使用Postgres,Nginx和Gunicorn设置Django

Django是一个功能强大的Web框架,可以帮助您启动Python应用程序或网站。Django包含一个简化的开发服务器,用于在本地测试您的代码,但是对于任何与生...

1003
来自专栏cmazxiaoma的架构师之路

FastDFS蛋疼的集群和负载均衡(七)之Nginx高可用集群应用到FastDFS集群

1442
来自专栏北京马哥教育

网传运维面试题,你答对了多少?

最近网上流传了一份没有答案的Linux运维面试题。51CTO博主豪鹫趁工作之余,利用自己三年的运维经验交出了一份答卷。欢迎大家一起来点评~

692
来自专栏Hadoop实操

如何在Hue中配置HiveServer2的负载均衡

在前面的文章Fayson介绍了《如何使用HAProxy实现HiveServer2负载均衡》和《如何使用Zookeeper实现HiveServer2的HA》。本篇...

4294
来自专栏算法channel

HDFS|Shell操作命令

01 — HDFS中常用的命令 HDFS文件操作常有两种方式; 命令行方式,即Hadoop提供了一套与Linux文件命令类似的命令行工具; JavaAPI,即...

3427

扫码关注云+社区