个人博客
原本我的博客是通过github pages搭建的,但由于一些众所周知的原因,即使套上了CDN依旧是访问状态令人堪忧,经常会造成各种各样的问题,并且由于不存在服务器也不好进行进一步的管理,更不好完成公安备案。因此现在尝试在不影响博客更新部署体验的前提下,利用git搭建一个私人的代码托管平台,并自动化更新新提交的博客更新内容。

整体思路:

1 在云服务器上建立私人git服务器并配置本地仓库

2 在配置文件中设置push到云服务器上的私人仓库。

3 仓库中设置git钩子将已上传的静态资源拷贝到自定义目录下

4 通过nginx部署web服务,配置静态资源访问目录到自定义目录。

5 打包上传hexo静态文件并上传到服务器上的私人仓库

演示vps:CentOS 7

文章目录

  • 步骤一:建立私人git服务器
  • 步骤二:设置hexo的配置文件
  • 步骤三:设置git钩子
  • 第四步:修改nginx配置文件
  • 第五步:打包上传hexo静态文件

步骤一:建立私人git服务器

连接上vps,我这里就在/home下做演示。

$ yum install git                    # 如果没有安装过git的话需要进行这一步
$ mkdir /home/blog.git
$ cd blog.git
$ git init --bare                   # 完成初始化

到此已经完成git的初始化。我们打开本机的终端,测试一下是否能连接上。

$ git clone root@server_ip:/home/blog.git

root为vps的用户名

server_ip为vps的ip

/home/blog.git为初始化的git远程仓库

如果能连接上则继续,不行的话将本机的ssh公钥粘贴到服务器的.ssh目录中的authorized_keys文件里。

步骤二:设置hexo的配置文件

打开hexo根目录下的_config.xml_,修改下列字段

deploy:type: gitrepo: root@server_ip:/home/blog.gitbranch: master

步骤三:设置git钩子

首先还是要安装Nginx,具体看我这篇博客:点我。

假设我们就把博客文件放到nginx的默认网站目录(/usr/share/nginx/html)

$ cd /home/blog.git
$ cd hooks
$ vi post-receive

键入以下代码

#!/bin/bash -l
GIT_REPO=/home/blog.git                                    # git仓库地址
TMP_GIT_CLONE=/home/tmp/blog                       # 存放网页临时文件
PUBLIC_WWW=/usr/share/nginx/html               # web服务的网页文件
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}
cp -rf ${TMP_GIT_CLONE} ${PUBLIC_WWW}

其中2~4行是需要修改的。并且临时目录/home/tmp需要自行创建。

然后需要给post-receive增加可执行权限

$ chmod +x /home/blog.git/hooks/post-receive

第四步:修改nginx配置文件

$ nginx -t           # 查看配置文件所在目录
$ vi /etc/nginx/nginx.conf

最后重启nginx服务即可完成自动化部署

$ nginx -s reload

第五步:打包上传hexo静态文件

进入hexo目录打开终端

hexo cl
hexo g
hexo d

会提示让你输入ssh的密码,输入即可上传成功。

vps实现私人代码托管并用nginx部署hexo相关推荐

  1. 免费的私人代码托管(bitbucket) 和 常用git指令

    转自 http://blog.csdn.net/nzing/article/details/24452475 今天想找个免费的私人代码托管平台,github,googlecode, SourceFor ...

  2. 2021最新 阿里云Centos7+Nginx部署Hexo静态博客

    [限时]1年86元,3年229元,用来建站和编程学习[限时领取阿里云2000元建站礼包] 前言 之前在服务器用WordPoress,Eblog程序搭建过个人博客,因为平时也不写什么,导致服务器过期也没 ...

  3. 如何让nginx执行python代码_生产环境部署Python语言代码(django+uwsgi+nginx)

    本文主要向大家介绍了生产环境部署Python语言代码(django+uwsgi+nginx),通过具体的内容向大家展示,希望对大家学习Python语言有所帮助. 基础环境不做介绍,在django开发w ...

  4. 运用京东云代码托管、云编译、云部署等产品进行蓝绿部署简单实践

    干货 | 运用京东云代码托管.云编译.云部署等产品进行蓝绿部署简单实践 前几天我们以一种较为传统的方式在京东云上简单实践了基于Jenkins+Docker+Git 的CI流程,主要利用一些开源技术来实 ...

  5. Python3 - Docker 安装部署Gitlab代码托管教程

    文章目录 前言 一.安装Gitlab 1.搜索gitlab-ce-zh 2.下载影像 3.启动Git服务 4.查看Gitlab是否已经启动 二.配置Gitlab 1.首先,先进入容器 2.修改gitl ...

  6. 测试nginx网站代码_在40行以下代码中使用NGINX进行A / B测试

    测试nginx网站代码 by Nitish Phanse 由Nitish Phanse 在40行以下代码中使用NGINX进行A / B测试 (A/B testing with NGINX in und ...

  7. 打造支撑百万用户的分布式代码托管平台

    在2017在线技术峰会--首届阿里巴巴研发效能嘉年华上,来自研发效能事业部的杨再新分享了<打造支撑百万用户的分布式代码托管平台>.他主要介绍了GIT和SVN思想差异.开源的代码托管平台的挑 ...

  8. docker compose快速按照GitLab代码托管工具以及GitLab基本用法

    Git 与 SVN 区别 GitLab 是利用 Ruby on Rails 一个开源的版本管理系统,实现一个自托管的 Git 项目仓库,可通过 Web 界面进行访问公开的或者私人项目.它拥有与 Git ...

  9. 基于git和svn的开源代码托管平台

    文章目录 1.基于Git在线托管平台 GitHub & Bitbucket & GitLab & Coding 的对比分析 基本特征 哪个是开源的服务或产品 开源与协作,谁是最 ...

最新文章

  1. 把window中换行符(^M)改为linux的换行符(\r)
  2. GitOps:Kubernetes多集群环境下的高效CICD实践
  3. curl -O 下载文件
  4. Ceph分布式存储系统-性能测试与优化
  5. keras优化算法_自然场景文本识别(OCR),keras-yolo3-densenet-ocr
  6. JavaScript数据结构和算法简述——数组
  7. mysql完成未完成_MYSQL SQL模式 (未完成)
  8. 你知道这些使用Linux虚拟桌面的益处吗?
  9. webWMS开发过程记录(三)- 需求分析(略)
  10. WIN7 7100+TOAD最新版本9.7.2.5切换到SCRIPT显示注释的时候是乱码。表数据中文显示正常!求解决方案。...
  11. 查看本机IP地址、测试本机与其他设备是否连通、查本机IP归属地
  12. HDU - 4747
  13. Windows Git 多用户多仓库配置
  14. android 9.0 c7Pro,透心凉!三星Galaxy C7 Pro上线,还内置热管
  15. Carson带你学数据结构:手把手带你了解 ”图“ 所有知识!(含DFS、BFS)
  16. 各类游戏对应的服务端架构
  17. 绿色智慧档案馆构想之智慧档案馆环境综合管控一体化平台
  18. Yii框架中setFlash和getFlash函数的用法
  19. nodejs探秘:require加载模块的原理及代码实现
  20. 遇到vmware提示客户机操作系统已禁用 CPU.请关闭或重置虚拟机

热门文章

  1. 威纶通触摸屏配方功能的使用方法示例
  2. 【手把手教你】使用Python构建股票财务指标打分系统
  3. windows找不到共享文件怎么解决
  4. nohup + 命令实现后台不挂断地运行程序
  5. 基于勤哲excel服务器系统的web开发设计
  6. 【NLP】Prompt+对比学习,更好地学习句子表征
  7. matlab ndims 图像对称,MATLAB实现将图像转换为素描(简笔画)风格
  8. 无意中发现我这个北漂的几张照片
  9. 文件服务器建立,文件服务器建立
  10. 我喜欢计算机职业200字,爱玩电脑的我作文200字