基于Hexo + Git + Nginx的博客发布
进过上一篇《树莓派搭建私人服务器》,我们已经有一个私人服务器了,现在需要做点什么实际事情了,先搭一个博客分享自己的经验吧。
相关文章:
1.《树莓派搭建私人服务器》
(http://www.uthinks.xyz/2017/01/23/RaspberryPi-init/)
准备工作
- 环境已经初始化的树莓派
- Git服务器,我用的是自己搭建的Git服务器,当然也可以使用GitHud
- Nginx
- Hexo,我朋友已经写过关于Hexo详细的文档,这里就不在赘述。
(http://luckykun.com/work/2016-04-23/heoll-hexo.html)
Git服务器搭建
首先在树莓派上安装Git,同时确保ssh已经正确安装并且默认开启
sudo apt-get install wget git-core
添加git用户和组,其实就是Linux普通用户就行
adduser git
passwd git
切换到git用户,增加一个新的Git仓库
cd /home/git
mkdir blog
cd blog
git init --bare
本地把blog项目迁移下来, 刚刚初始化的仓库是没有任何分支的,后面提交代码的时候会自动生成一个master分支。后面hexo直接在该目录下搭建
git clone git@[域名 | IP]:/home/git/blog
至此,一个自己的git服务器已经搭建完成
附录
- 初始化空Git仓库git init 和 git init –bare有什么区别
(http://blog.csdn.net/feizxiang3/article/details/8065506)
Nginx安装配置
首先安装nginx
sudo apt-get install nginx
修改nginx配置文件 /etc/nginx/nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid; events {
worker_connections 768;
# multi_accept on;
} http {
server {
listen 8081;
# 这个目录是hexo生成的页面路径,后面提交到git的页面同步到这个目录下
location / {
root /home/bill/blog/public;
index index.html;
} # 这个配置是静态文件:图片、文件下载路径,有另外一个git仓库管理,一样同步到对应目录下
location ~ ^/resource/picture/(.*)? {
alias /home/bill/resource/picture/$1 ;
add_header Cache-control max-age=7200,s-maxage=3600;
}
} ##
# Basic Settings
## sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off; # server_names_hash_bucket_size 64;
# server_name_in_redirect off; include /etc/nginx/mime.types;
default_type application/octet-stream; ##
# SSL Settings
## ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # Dropping SSLv3, ref: POODLE
ssl_prefer_server_ciphers on; ##
# Logging Settings
## access_log /var/log/nginx/access.log;
error_log /var/log/nginx/error.log; ##
# Gzip Settings
## gzip on;
gzip_disable "msie6"; # gzip_vary on;
# gzip_proxied any;
# gzip_comp_level 6;
# gzip_buffers 16 8k;
# gzip_http_version 1.1;
# gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript; ##
# Virtual Host Configs
## include /etc/nginx/conf.d/*.conf;
include /etc/nginx/sites-enabled/*;
}
启动nginx
sudo /etc/init.d/nginx start | restart | stop
博客的发布
环境已经搭建完成了,如何实现把文件提交到Git自动同步到nginx目录下完成发布呢?
1.如果你使用的GitHud的话这个问题很简单,这里就不在赘述。参考我朋友的hexo教程
(http://luckykun.com/work/2016-04-23/heoll-hexo.html)
2.现在说说我的方法,其实也很简单
编写一个简单的git pull脚本
import os
if name == ‘main‘:
#blog分支同步
os.chdir('/home/bill/blog/')
os.system('git pull origin master') #静态文件同步
os.chdir('/home/bill/resource/')
os.system('git pull origin master')
定时任务配置 crontab -e
*/1 * * * * /usr/bin/python /home/bill/deploy/deploy.py
如果我的文章对你有帮助,或者有什么疑问。欢迎在下方留言,一起交流讨论
基于Hexo + Git + Nginx的博客发布的更多相关文章
- 基于 Hexo 从零开始搭建个人博客(二)
阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一). 原文链接:基于 Hexo 从零开始搭建个人博客(二) 前言 博客搭建过程遇到任何问题,优先在本页面搜索, ...
- Mac上基于hexo+GitHub搭建个人博客(一)
原文地址: http://fanjiajia.cn/2018/11/23/Mac%E4%B8%8A%E5%9F%BA%E4%BA%8Ehexo+GitHub%E6%90%AD%E5%BB%BA%E4% ...
- 基于 Hexo 从零开始搭建个人博客(五)
阅读本篇前,请先阅读前几篇文章: 基于 Hexo 从零开始搭建个人博客(一) 基于 Hexo 从零开始搭建个人博客(二) 基于 Hexo 从零开始搭建个人博客(三) 基于 Hexo 从零开始搭建个人博 ...
- 基于Hexo和Github搭建博客
搭建自己的个人博客. 准备工作 确保电脑需要已下载安装node和npm.查看安装是否成功,windows只需在命令行输入以下两条命令即可. 1 2 $ node -v $ npm -v 安装hexo ...
- 【教程向】——基于hexo+github搭建私人博客
前言 1.github pages服务生成的全是静态文件,访问速度快: 2.免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 3.可以随意绑定自己的域名,不仔细看的话根本看 ...
- 2019基于Hexo快速搭建个人博客,打造一个炫酷博客(1)-奥怪的小栈
本文转载于:奥怪的小栈 这篇文章告诉你如何在2019快速上手搭建一个像我一样的博客:基于HEXO+Github搭建.并完成SEO优化,打造一个炫酷博客. 本站基于HEXO+Github搭建.所以你需要 ...
- Hexo博客系列(三)-将Hexo v3.x个人博客发布到GitLab Pages
[原文链接]:https://www.tecchen.xyz/blog-hexo-env-03.html 我的个人博客:https://www.tecchen.xyz,博文同步发布到博客园. 由于精力 ...
- 基于Hexo搭建自己的博客主页
搭建自己博客分为两类,一种是托管到github上的,以hexo为代表,另一种是需要自己购买服务器,主要使用wordpress框架.有不花钱的效果也很不错,就没必要自己再购买服务器了,下边主要介绍下使用 ...
- 基于.NET Core开发的个人博客发布至CentOS小计
早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...
随机推荐
- xlsx 读取文件日期问题
xlsx 的版本:0.13.5,可以取到日期 xlsx 的版本:0.14.3,取到的日期转为数字了,没有找到方法转为日期, 可以开启 cellDates: true,但是这个时区不对, dateN ...
- devops issue
1.Nginx(refercence:https://zhuanlan.zhihu.com/p/24382606) summary: DJANGO_PROJECT = /home/django/dja ...
- SQL Prompt 格式化SQL会自动插入分号的问题
一.问题 安装新版SQL Prompt,格式化SQL都会自动在SQL末端插入分号 格式化前 格式化后 二.解决方法 选择SQL Prompt下的Options... 选择左侧的Format下Style ...
- spring中注解的实现原理
@Autowired和@Resource的区别: 在Java中使用@Autowired和@Resource注解进行装配,这两个注解分别是:1.@Autowired按照默认类型(类名称)装配依赖对象,默 ...
- luogu P1238 走迷宫--DFS模板好(水)题
题目描述 有一个m*n格的迷宫(表示有m行.n列),其中有可走的也有不可走的,如果用1表示可以走,0表示不可以走,文件读入这m*n个数据和起始点.结束点(起始点和结束点都是用两个数据来描述的,分别表示 ...
- HDU-3746-Cyclic Nacklace(KMP,循环节)
Cyclic Nacklace Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Tota ...
- Memcached的安装和应用
Memcached的安装 1.安装libeventlibevent是一个事件触发的网络库,适用于windows.linux.bsd等多种平台,内部使用 select.epoll.kqueue等系统调用 ...
- laravel 集成 swagger插件
原文链接:https://medium.com/@mahbubkabir/discovering-swagger-in-laravel-rest-apis-cb0271c8f2 1.composer ...
- OAuth2.0授权流程
微信授权 第3步的微信授权中的scope字段: snsapi_base 静默授权,不弹出用户同意框,可直接获取成员的基础信息: snsapi_userinfo:静默授权,弹出用户同意框,待用户同 ...
- Django框架基础知识06-模型基础
1.数据库的连接配置 django 连接mysql的配置流程: 安装 pymysql pip install pymysql 创建数据库用户 有创建数据库权限的用户 创建数据库 crm 修改配置 se ...