vps實現私人代碼托管並用nginx部署hexo


個人博客
原本我的博客是通過github pages搭建的,但由於一些眾所周知的原因,即使套上了CDN依舊是訪問狀態令人堪憂,經常會造成各種各樣的問題,並且由於不存在服務器也不好進行進一步的管理,更不好完成公安備案。因此現在嘗試在不影響博客更新部署體驗的前提下,利用git搭建一個私人的代碼托管平台,並自動化更新新提交的博客更新內容。

整體思路:

1 在雲服務器上建立私人git服務器並配置本地倉庫

2 在配置文件中設置push到雲服務器上的私人倉庫。

3 倉庫中設置git鈎子將已上傳的靜態資源拷貝到自定義目錄下

4 通過nginx部署web服務,配置靜態資源訪問目錄到自定義目錄。

5 打包上傳hexo靜態文件並上傳到服務器上的私人倉庫

演示vps:CentOS 7

步驟一:建立私人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: git
  repo: root@server_ip:/home/blog.git
  branch: 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的密碼,輸入即可上傳成功。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM