进过上一篇《树莓派搭建私人服务器》,我们已经有一个私人服务器了,现在需要做点什么实际事情了,先搭一个博客分享自己的经验吧。

相关文章:
1.《树莓派搭建私人服务器》
(http://www.uthinks.xyz/2017/01/23/RaspberryPi-init/)

准备工作

  1. 环境已经初始化的树莓派
  2. Git服务器,我用的是自己搭建的Git服务器,当然也可以使用GitHud
  3. Nginx
  4. Hexo,我朋友已经写过关于Hexo详细的文档,这里就不在赘述。
    (http://luckykun.com/work/2016-04-23/heoll-hexo.html)

Git服务器搭建

  1. 首先在树莓派上安装Git,同时确保ssh已经正确安装并且默认开启

    sudo apt-get install wget git-core
  2. 添加git用户和组,其实就是Linux普通用户就行

    adduser git
    passwd git
  3. 切换到git用户,增加一个新的Git仓库

    cd /home/git
    mkdir blog
    cd blog
    git init --bare
  4. 本地把blog项目迁移下来, 刚刚初始化的仓库是没有任何分支的,后面提交代码的时候会自动生成一个master分支。后面hexo直接在该目录下搭建

    git clone git@[域名 | IP]:/home/git/blog
  5. 至此,一个自己的git服务器已经搭建完成

附录

  1. 初始化空Git仓库git init 和 git init –bare有什么区别
    (http://blog.csdn.net/feizxiang3/article/details/8065506)

Nginx安装配置

  1. 首先安装nginx

    sudo apt-get install nginx
  2. 修改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/*;
    }
  3. 启动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的博客发布的更多相关文章

  1. 基于 Hexo 从零开始搭建个人博客(二)

    阅读本篇前,请先配置好相应的环境,请仔细阅读教程 基于 Hexo 从零开始搭建个人博客(一). 原文链接:基于 Hexo 从零开始搭建个人博客(二) 前言 博客搭建过程遇到任何问题,优先在本页面搜索, ...

  2. 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% ...

  3. 基于 Hexo 从零开始搭建个人博客(五)

    阅读本篇前,请先阅读前几篇文章: 基于 Hexo 从零开始搭建个人博客(一) 基于 Hexo 从零开始搭建个人博客(二) 基于 Hexo 从零开始搭建个人博客(三) 基于 Hexo 从零开始搭建个人博 ...

  4. 基于Hexo和Github搭建博客

    搭建自己的个人博客. 准备工作 确保电脑需要已下载安装node和npm.查看安装是否成功,windows只需在命令行输入以下两条命令即可. 1 2 $ node -v $ npm -v 安装hexo ...

  5. 【教程向】——基于hexo+github搭建私人博客

    前言 1.github pages服务生成的全是静态文件,访问速度快: 2.免费方便,不用花一分钱就可以搭建一个自由的个人博客,不需要服务器不需要后台: 3.可以随意绑定自己的域名,不仔细看的话根本看 ...

  6. 2019基于Hexo快速搭建个人博客,打造一个炫酷博客(1)-奥怪的小栈

    本文转载于:奥怪的小栈 这篇文章告诉你如何在2019快速上手搭建一个像我一样的博客:基于HEXO+Github搭建.并完成SEO优化,打造一个炫酷博客. 本站基于HEXO+Github搭建.所以你需要 ...

  7. Hexo博客系列(三)-将Hexo v3.x个人博客发布到GitLab Pages

    [原文链接]:https://www.tecchen.xyz/blog-hexo-env-03.html 我的个人博客:https://www.tecchen.xyz,博文同步发布到博客园. 由于精力 ...

  8. 基于Hexo搭建自己的博客主页

    搭建自己博客分为两类,一种是托管到github上的,以hexo为代表,另一种是需要自己购买服务器,主要使用wordpress框架.有不花钱的效果也很不错,就没必要自己再购买服务器了,下边主要介绍下使用 ...

  9. 基于.NET Core开发的个人博客发布至CentOS小计

    早些时候,使用 .NET Framework 开发网站,只能部署在 Windows 服务器上面,近两年 .NET Core 如火如荼,乘此机会赶紧上车,最近将自己利用 .NET Core 开发的个人博 ...

随机推荐

  1. java工作流activiti的步骤

    链接:activiti 表名称的解释 工作流从流程定义到创建一个流程实例完成执行步骤(省略bpmn的画法) 工作流的所有操作都是使用流程引擎来进行操作的,流程引擎只是存储流程的过程,而不存储具体的业务 ...

  2. k8s部署测试实例

    查看运行中pod,并运行一个容器 [root@mast-1 k8s]# kubectl get pods No resources found. [root@mast-1 k8s]# kubectl ...

  3. OpenCV2:第五章 访问图像

    一.行/列访问 1.单行/单列访问 Mat Mat::row(int i) const Mat Mat::col(int j) const 2.多行/多列访问 Range(start,end); Ra ...

  4. Xcode导入第三方库

    Xcode导入第三方库,例如TapkuLibrary iOS开源框架Tapku下载地址:https://github.com/devinross/tapkulibrary.git 1.创建你的工程项目 ...

  5. Shell读取一个表达式并计算其结果

    #!/bin/bash # 读取一个算数表达式并计算出结果 # 如果输入 # 5+50*3/20 + (19*2)/7 # 则结果为 # 17.929 read x printf "%.3f ...

  6. Windows 命令收集

    定时关机命令:schtasks /create /tn "关机" /tr "shutdown /s" /sc once /st 23:55

  7. linux批量检测服务器能否ping通和硬盘容量状态并抛出报警的一个脚本-附详细解释

    有一些linux基础,最近刚开始学shell,参考了阿良老师的一个监测服务器硬盘状态的脚本,自己进行了一些扩展,今天比较晚了,后边会把注释放上来,感觉脚本还很不完善,希望大家一起探讨一下,共同学习 2 ...

  8. 表单中的ngModelController

    测试表单中的ngController.直接看红字结论部分即可 <!DOCTYPE html> <html lang="en"> <head> & ...

  9. LeetCoce 413. Arithmetic Slices

    A sequence of number is called arithmetic if it consists of at least three elements and if the diffe ...

  10. python常用函数 C

    1. Counter(hashable) 直接使用统计可哈希元素每个元素的数量. 2. most_common:可以统计数量最多的n个元素. from collections import Count ...