日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hexo部署云服务器的全过程

發布時間:2024/9/30 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hexo部署云服务器的全过程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

目錄

  • 前言
  • 環境
    • 本地環境
    • 服務器環境
    • 本地機器配置
      • 配置密鑰
      • 使用git bash生成ssh公鑰
  • 服務器配置
    • 安裝Git,nodejs,Nginx等
    • 創建git新用戶及配置
      • 創建git新用戶
        • 將公鑰配置到服務器上
        • 測試git連接
  • 創建網站的根目錄
  • 安裝以及配置Nginx
  • 實現自動化部署
    • 建立git裸庫
    • 使用 git-hooks 同步網站根目錄
  • 本地機器中部署至服務器
    • 配置hexo
  • 新用戶
    • 將公鑰配置到服務器上
    • 測試gitd連接
    • 創建網站的根目錄
    • 實現自動化部署
      • 建立git裸庫
      • 使用 git-hooks 同步網站根目錄

前言

由于不想部署在github上,因為Github的訪問速度在國內比較慢,所以有了此文。

部署之前先了解一下hexo利于git更新的流程,部署在Github上和部署在云服務器上沒有特別大的本質區別。

整個流程就是本地將 *.md 渲染成靜態文件,然后Git推送到服務器的repository,服務器再通過 git-hooks 同步網站根目錄。再利于nginx托管這些靜態資源,就可以實現快速的訪問。

環境

本地環境

  • Windows10(64bit)
  • 已經裝好了git,nodejs,hexo
  • 已經在本地調試好了hexo靜態網站

服務器環境

  • 華為云ECS(1M1核2G,centos7)
  • 已經裝好了git,nodejs,以及編譯好了Nginx

本地機器配置

配置密鑰

在本地機器(Windows環境)中進入

使用git bash生成ssh公鑰

# 本地 windows gitBash ssh-keygen -t rsa

一路回車,直至如下圖,即可。

在本地服務器中配置好了公鑰,接下來我們需要把這個公鑰交給服務器,相當于本地機器有了一把能訪問服務器的“鑰匙”,所以接下來需要配置服務器。

服務器配置

安裝Git,nodejs,Nginx等

linux下安裝這些非常簡單,直接百度即可。

創建git新用戶及配置

創建git新用戶

adduser git #加入git用戶 passwd git #配置你的密碼 chmod 740 /etc/sudoers #修改權限 r=4 w=2 x=1 rwx=7 r__=4 ___=0,也就是說git的sudo使用權為只讀 vim /etc/sudoers

打開suduers,找到以下內容

## Allow root to run any commands anywhere root ALL=(ALL) ALL

在他的下面加入以下內容

git ALL=(ALL) ALL

wq保存后,需要將權限修改回來

chmod 400 /etc/sudoers

將公鑰配置到服務器上

首先你得在你的本地機器上找到你的公鑰,一般在用戶的家目錄下,windows是Administrator目錄,linux是~/.ssh下

我的本地機器是windows,所以在Administrator目錄下。


將該文件的內容復制。

在服務器端,切換至剛剛創建好的git用戶下,創建.ssh文件和authorized_keys文件

su git mkdir ~/.ssh vim ~/.ssh/authorized_keys

修改權限

cd ~ chmod 600 .ssh/authorized_keys # 將文件設置為可讀可寫 chmod 700 .ssh #將該文件夾設置為可讀可寫可執行,注意文件夾的可執行是指能訪問

測試git連接

切換到本地機器上,在本地機器上測試是否能連接到你的遠程git用戶

ssh -v git@SERVER_IP

測試成功

如果你的測試不成功,請查看具體的輸出信息,通常是公鑰沒配置好,可以把原來生成的公鑰刪了,重新配置一遍。

創建網站的根目錄

創建網站的根目錄的目的是為了讓nginx托管這些靜態文件。

創建一個目錄用于作為網站的根目錄。切換成root用戶

su root mkdir /home/hexo # 此目錄為網站的根目錄

變更該目錄的所有者

chown git:git -R /home/hexo

安裝以及配置Nginx

安裝過程略,具體可百度。編譯好nginx后,進入其配置文件
注意使用 nginx -t 命令檢查配置文件的語法是否出錯。然后使用 systemctl restart nginx.service 或者

在編譯好的nginx目錄下使用sbin/nginx -s reload命令重啟服務即可。

實現自動化部署

建立git裸庫

該裸庫什么版本信息和數據都不保存,單純是為了共享而存在。

在root 用戶下

su root cd /home/git # 在 git 用戶目錄下創建 git init --bare hexo.git

這時,git用戶的~ 目錄下就存在一個 hexo.git文件夾,可使用ls 命令查看。再修改hexo.git的所有者。

chown git:git -R hexo.git

使用 git-hooks 同步網站根目錄

在這使用的是post-receive這個鉤子,當 git 有收發的時候就會調用這個鉤子。 在 blog.git裸庫的 hooks 文件夾中,新建post-receive 文件。

vim hexo.git/hooks/post-receive

填入以下內容,其中 /home/hexo 為網站目錄,根據自己的填入,保存退出。

#!/bin/sh git --work-tree=/home/hexo --git-dir=/home/git/hexo.git checkout -f

注意此處若是gitd(測試)賬戶下面這樣寫

#!/bin/sh git --work-tree=/home/hexod --git-dir=/home/gitd/hexod.git checkout -f

該鉤子的意思是當本地有提交到服務器時,會將文件放在/home/hexo下

-f這個參數如果在多人協作的博客中可能會引發不好的結果,因為他是強制更新的意思,會將本地版本覆蓋掉遠程服務器的版本,但是是個人的博客系統就無所謂了

保存后,要賦予這個文件可執行權限。

chmod +x /home/git/hexo.git/hooks/post-receive

也可進行可視化操作, 我用的是FileZilla

這樣就完成了git自動部署的配置

本地機器中部署至服務器

在本地中,和部署到 github 服務一樣,需要先 hexo g 命令生成靜態文件,通過 hexo s 命令能夠正常進行本地訪問,并且確保***已經安裝***了 hexo-deployer-git。

配置hexo

hexo 根目錄下的 _config.yml 文件,找到 deploy。

deploy:type: gitrepo: git@SERVER:/home/git/hexo.git # 填寫你的服務器地址 將SERVER替換掉branch: master # 分支

之后按照正常的流程部署

hexo c && hexo g && hexo d

部署成功,訪問測試。

至此你的項目部署完成就不用往下看了, 來個三連吧, 下面是創建新賬戶進行的相同操作。

新用戶

我們不用git這個賬戶, 新創個賬戶進行部署

創建gitd賬戶同步進行

adduser gitd #加入gitd用戶 passwd gitd #配置你的密碼 chmod 740 /etc/sudoers #修改權限 r=4 w=2 x=1 rwx=7 r__=4 ___=0,也就是說git的sudo使用權為只讀 vim /etc/sudoers

打開suduers,找到以下內容

## Allow root to run any commands anywhere root ALL=(ALL) ALL

在他的下面加入以下內容

gitd ALL=(ALL) ALL

wq保存后,需要將權限修改回來

chmod 400 /etc/sudoers

將公鑰配置到服務器上

在服務器端,切換至剛剛創建好的git用戶下,創建.ssh文件和authorized_keys文件

su gitd mkdir ~/.ssh vim ~/.ssh/authorized_keys

修改權限

cd ~ chmod 600 .ssh/authorized_keys # 將文件設置為可讀可寫 chmod 700 .ssh #將該文件夾設置為可讀可寫可執行,注意文件夾的可執行是指能訪問

測試gitd連接

切換到本地機器上,在本地機器上測試是否能連接到你的遠程gitd用戶

ssh -v gitd@SERVER_IP

創建網站的根目錄

創建網站的根目錄的目的是為了讓nginx托管這些靜態文件。

創建一個目錄用于作為網站的根目錄。切換成root用戶

su root mkdir /home/hexod # 此目錄為網站的根目錄 hexod

變更該目錄的所有者

chown gitd:gitd -R /home/hexod

實現自動化部署

建立git裸庫

該裸庫什么版本信息和數據都不保存,單純是為了共享而存在。

在root 用戶下

su root cd /home/gitd # 在 gitd 用戶目錄下創建 git init --bare hexod.git

這時,gitd 用戶的 ~目錄下就存在一個 hexod.git文件夾,可使用ls 命令查看。再修改hexod.git的所有者。

chown gitd:gitd -R hexod.git

使用 git-hooks 同步網站根目錄

vim hexod.git/hooks/post-receive

填入以下內容,其中 /home/hexod為網站目錄,根據自己的填入,保存退出。

#!/bin/sh git --work-tree=/home/hexod --git-dir=/home/gitd/hexod.git checkout -f

保存后,要賦予這個文件可執行權限。

chmod +x /home/gitd/hexod.git/hooks/post-receive

總結

以上是生活随笔為你收集整理的hexo部署云服务器的全过程的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。