任務(wù)時間:大概需要三分鐘
在安裝過程中選擇將git添加到環(huán)境變量 (Add to PATH)
通過使用git, hexo可快速將本地的更新內(nèi)容部署到服務(wù)器上的網(wǎng)站中
Hexo是基于Node.js的,因此需要先安裝它
可以在這里下載,同樣需要將它添加到環(huán)境變量
隨后通過Node.js提供的包管理器npm安裝Hexo:
打開命令行(cmd 或 git bash),輸入命令
npm install -g hexo-cli
隨后輸入hexo version,如果Hexo已被安裝,你將能看到相關(guān)的版本號
選擇一個你喜歡的地方放置博客文件,在命令行中進入父目錄(通過cd命令)
輸入下列命令將創(chuàng)建一個Hexo博客文件夾
hexo init <起個名字> # 例如 hexo init MyBlogcd <剛才的名字> # 例如 cd MyBlognpm install
此時將能看到一個這樣的目錄
.├── _config.yml ├── package.json ├── scaffolds ├── source | ├── _drafts | └── _posts └── themes
屬于我們博客的本地Hexo環(huán)境已經(jīng)搭建完畢
任務(wù)時間:大概需要兩分鐘
命令行進入我們的博客文件夾,輸入下列命令將新建一篇文章
hexo new <文章名> # 例如 hexo new helloworld
此時你將能夠在博客的 public/_posts/ 文件夾下看到所創(chuàng)建的文章 (helloworld.md)
用記事本打開它,向其中寫入任意內(nèi)容
輸入下列命令即可根據(jù)當(dāng)前所設(shè)置的主題、已有的文章生成網(wǎng)頁文件
hexo generate # 或者輸入 hexo g
整個個人博客網(wǎng)站即位于public/ 文件夾下
如果直接使用瀏覽器打開public/index.html 不能顯示正確的樣式,如果希望在本地預(yù)覽博客,在命令行中輸入下列命令
hexo server # 或輸入 hexo s
此刻可在瀏覽器中輸入127.0.0.1:4000 來預(yù)覽博客 (默認(rèn)設(shè)置下)
任務(wù)時間:大概需要十分鐘
git幫助我們隨時部署博客更新,安裝:
sudo apt-get install git
Nginx將我們的博客網(wǎng)站供互聯(lián)網(wǎng)訪問,安裝:
sudo apt-get install nginx
創(chuàng)建一個文件夾用于存放我們的網(wǎng)站
mkdir -p blog # 在這個例子中的路徑是 /home/ubuntu/blog
修改Nginx的設(shè)置,將網(wǎng)站的根目錄設(shè)置為這個文件夾:
輸入以下命令
sudo nano /etc/nginx/sites-available/default
在其中找到下列內(nèi)容并修改
...server { ... ... root /home/ubuntu/blog; # 將此處設(shè)為你所創(chuàng)建的文件夾 index index.html index.htm; ... ... server_name blog.example.com; # 設(shè)置你的域名(托管單個網(wǎng)站時可以不用設(shè)置)...
創(chuàng)建一個裸倉庫
git init --bare <名字.git> # 例如 git init --bare blog.git # 記得blog.git/ 與blog/文件夾的功能不同
創(chuàng)建一個鉤子,使得這個倉庫在接受提交后自動將所有文件放到之前的網(wǎng)頁目錄中去:
nano .../<名字.git>/hooks/post-receive #例如 nano blog.git/hooks/post-receive
向其中寫入以下內(nèi)容:
git --work-tree=.../<網(wǎng)頁文件夾> --git-dir=.../<名字.git> checkout -f# --work-tree中填Nginx指向的網(wǎng)頁文件夾路徑 --git-dir填創(chuàng)建的git倉庫的路徑# 例如 git --work-tree=/home/ubuntu/blog --git-dir=/home/ubuntu/blog.git checkout -f
需要給這個鉤子添加可執(zhí)行權(quán)限:
chmod +x .../<名字.git>/hooks/post-receive# 例如 chmod +x /home/ubuntu/hooks/post-receive
到此,我們服務(wù)器就已設(shè)置完畢了
裸倉庫的意思是只接收推送,而不會在其上工作(通常以.git結(jié)尾命名)
任務(wù)時間:大概需要三分鐘
當(dāng)我們從本地向服務(wù)器的blog.git倉庫推送時,通過SSH公鑰來驗證我們的身份。
因此,需要一對密鑰來進行認(rèn)證,在這里生成密鑰(如果已經(jīng)擁有請?zhí)^生成的步驟):
打開git-bash (該工具包括在MSysGit軟件包中)
ssh-keygen # 隨后根據(jù)提示輸入信息,按回車為默認(rèn)
默認(rèn)情況下,它將生成于用戶目錄(C:\User\<你的用戶名>)下的.ssh\文件夾中,名為id_rsa 與 id_rsa.pub。
其中id_rsa.pub為公鑰,將它的內(nèi)容寫到服務(wù)器中/home/ubuntu/.ssh/authorized_keys文件夾里。
請注意:如果有多對公鑰,需要配置一個config文件才能指示使用哪個私鑰進行驗證,它類似下面這樣:
# 位置在....sshconfigHost blog.styxs.cn HostName blog.example.cn PreferredAuthentications publickey IdentityFile ~/.ssh/id_rsa User ubuntu
安裝Hexo的git部署插件,輸入命令
npm install hexo-deployer-git --save
編輯博客文件夾下的_config.yml文件,設(shè)置部署信息
...deploy: type: git repo: 用戶名@服務(wù)器IP或域名:路徑/裸倉庫.git branch: master...
repo中填寫內(nèi)容的示例: ubuntu@111.111.111.111:/home/ubuntu/blog.git
在本地預(yù)覽網(wǎng)頁無誤后推送到服務(wù)器
hexo generator # 生成網(wǎng)頁文件hexo server # 在本地預(yù)覽hexo deploy # 推送到服務(wù)器
以上就是本地寫作并部署到云服務(wù)器的Hexo博客工作流。