折腾搬瓦工–05–在VPS上结合Git使用hugo搭建静态博客

文章目录

由于最近企鹅搞了学生优惠,于是昨晚上传资料认证,今天一早拿到了优惠卷,又买了一个VPS和域名,今天就完全在玩耍新玩具了,最后得出一个结论

国内的VPS除了ssh连接速度稍快外没有其他任何的优势,国内的域名服务也是一样坑爹

扯远了,刚刚弄好了静态博客,地址是moe.wbuntu.com,以后会把技术外的东西写在这里

通过这次折腾,我们可以学习到,跑通流程,她喵的是很重要的,标题这么长不是闹着玩的

1.安装与使用hugo

使用brew安装或者在官方页面下载编译后的二进制文件,或者直接从源码编译,官方教材十分完善

官方链接:Introduction to Hugo

创建站点

1hugo new site siteProjectName

cd进入创建的文件夹,接下来的hugo命令都需要在这个站点文件夹中运行,否则会报错,hugo命令根据当前文件夹中的config.toml配置

1hugo new about.md

默认在content文件夹下创建新文件,生成站点的about页面

1hugo new post/first.md

默认在content文件夹的子目录post下创建新文件,生成对应文章

1hugo server --buildDrafts
2hugo --buildDrafts

如同字面意思,从md生成html,不过前者为本地调试使用,后者根据config.toml中定义的baseUrl生成页面,也可以手动指定其他选项,或者直接在config.toml中配置,具体参见官方教程

2.配置Git

我希望我可以在本地写完博客,然后推送到服务器显示

首先需要一个静态网页服务器,可以选择使用Nginx,安装后,默认网页服务器文件夹是**/ush/share/nginx/html**

然后配置Git服务器端,建立一个新工程

1apt-get install git-core -y
2cd ~
3mkdir blog.git
4cd blog.git
5git init --bare
6cd hooks
7touch post-receive
8vi post-receive

在post-receive中输入以下内容,当push到仓库了,会自动触发该脚本

1#!/bin/sh 
2GIT_REPO=/root/blog.git
3TMP_GIT_CLONE=/tmp/blog
4NGINX_HTML=/usr/share/nginx/html
5rm -rf ${TMP_GIT_CLONE}
6git clone $GIT_REPO $TMP_GIT_CLONE
7rm -rf ${NGINX_HTML}/*
8cp -rf ${TMP_GIT_CLONE}/* ${NGINX_HTML}

记得添加可执行权限

然后每次推送时,会先清空html目录,然后将最新内容拷贝进去

3.本地推送设置

本地推送的文件夹为站点工程文件夹下的public文件夹,初始化后添加远程仓库

1cd public
2git init
3git add .
4git commit -m "Initial commit"
5git remote add origin root@IPAddress:/root/blog.git
6git push origin master

如果VPS的ssh不是默认的22,可以直接设置

1git remote set-url origin ssh://root@IPAddress:Port/root/blog.git

如果需要忽略文件,可以按以下格式添加

1echo ".DS_Store" >> .gitignore

如果更新了文章,要进行再次推送时,先

1git add -A
2git commit -m "messages"
3git push origin master

也可以设置默认推送的分支

1git push --set-upstream origin master

之后使用git push即可