使用github.io可以搭建一個自己的博客,把靜態文件項目托管到github上,可以寫博客,可以使用markdown語法,也可以展示作品.靈活性高.但是有較大的難度.
node,git版本變化日新月異,每段時間都會有不同,而這個小不同可能直接導致搭建失敗.這里把我搭建的過程記錄下來.如果將來搭建失敗,可以參考,下載對應的版本嘗試.
我使用的版本(win7系統下:):
node: v0.10.22
git: Git-1.9.5-preview20141217
搭建步驟:
1.安裝好node和git,注冊好github賬號. 注意:用戶名一定不能有大寫.
想下載最新的git可以嘗試這個地址: http://msysgit.github.io/
想下載我使用的版本,移步我的網盤: http://pan.baidu.com/s/1qWt5u36
2.安裝hexo:
執行: npm install -g hexo
這里常常安裝了一半就卡住裝不下去了,fq后就ok了...
3.創建hexo文件夾:
自己找一個喜歡的路徑,創建hexo文件夾,我的是安裝在 E:\hexo 下的.
cmd窗口切換到對應的目錄下,然后執行: hexo init
也可以在 E:\hexo 下右鍵,選擇git bash,在窗口中執行 hexo init
它就自動安裝了需要的文件.
4.安裝依賴:
繼續執行: npm install
安裝好了所有的依賴
5.完成本地安裝:
繼續在 E:\hexo 下執行: hexo generate
繼續執行: hexo server
然后在打開瀏覽器 localhost:4000 ,就可以看到,本地已經安裝好了.
6.在github上創建博客倉庫:
6.1新建倉庫.
右上角的加號點擊一下,選擇New repository
跳轉的后如下填寫:(其中Repository name的格式是 '用戶名'.github.io ),然后點創建倉庫
6.2 生成測試頁面
進入剛才創建的倉庫,點擊右邊菜單中的Settings按鈕,在跳轉到的頁面 Update your site 對應處點擊“Automatic page generator”按鈕,這樣就有了一個github自動生成的頁面用來測試的時候使用。之后點擊繼續。
6.3選擇主題,點擊'Publish page'發布:
6.4發布成功
再次回到倉庫,點擊6.2里的Settings按鈕:
點擊鏈接就可以看到測試地址頁面.
7.創建SSH keys
7.1 監測是否有已經存在的SSH keys:
打開 git bash 終端(可以在 E:\hexo 下右鍵打開,也可以直接在開始菜單里打開)
執行: $ ls -al ~/.ssh
如果有SSH keys: 就會看到如下文件 id_rsa id_rsa.pub
(除了我自己生成的這種,官方教程里說,SSH keys也有可能是以下幾種文件:
- id_dsa.pub
- id_ecdsa.pub
- id_ed25519.pub
)
7.2 如果沒有的話,就生成一個SSH keys: 粉色部分寫自己的郵箱
$ ssh-keygen -t rsa -C "your_email@example.com"
然后會出現:
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/you/.ssh/id_rsa):
就是讓你輸入SSH keys要保存在哪里,一般不用改,就直接回車就好了.
然后會出現:
粉色部分輸入一個密碼,這個密碼后面會用到,所以要記住咯~
Enter passphrase (empty for no passphrase): [Type a passphrase]
# Enter same passphrase again: [Type passphrase again]
7.3 保存SSH keys:
創建成功后,他會提示你SSH keys保存在哪里:
Your identification has been saved in /Users/you/.ssh/id_rsa.
# Your public key has been saved in /Users/you/.ssh/id_rsa.pub.
# The key fingerprint is:
# 01:0f:f4:3b:ca:85:d6:17:a1:7d:f0:68:9d:f0:a2:db your_email@example.com
7.4 找到SSH keys:
根據上一步里告訴你的路徑,找到保存SSH keys的地方,我的是在 C:\Users\2000104591\.ssh
其中 id_rsa.pub 就是SSH keys 如果為了防止以后找不到,可以把他們自己另存到其它地方
8. 為github倉庫添加SSH keys
SSH keys創建好了,我們還要把它添加到倉庫里去
打開6.1創建的倉庫,點擊6.2時點擊的右側的'Settings',再左側的'Deploy keys':
點擊'Add deploy key':
然后把7創建的id_rsa.pub里的內容復制到Key里去,Title部分隨便填. 點擊'Add key'
添加的過程中,還要再輸入一次github的密碼
9. 測試連接
回到git bash
執行:
$ ssh -T git@github.com
它可能會出現一些亂七八糟的提示,最后是問你yes/no,就輸入yes.
如果是這樣子叫你輸入密碼.那這個密碼就是在7.2里面設置的那個密碼,就輸入一下就好了
Enter passphrase for key '/c/Users/2000104591/.ssh/id_rsa':
最后它提示你:
Hi, 用戶名/用戶名.github.io! You've successfully authenticated, but GitHub does notprovide shell access.
這樣就算ok了~~~
10.配置_config.yml文件並發布:
在 E:\hexo 下,有一個文件叫 _config.yml ,打開它,拉到最底下,做如下修改:
deploy:
type: github //改成github
repository: https://github.com/jinyanhuan/jinyanhuan.github.io //改成自己的用戶名
branch: master
配置完以后還是在E:\hexo下執行:
hexo generate
hexo deploy
執行完以后,如果報錯 Error: Deployer not found : github,則執行如下命令:
npm install hexo-deployer-git --save
同時修改 _config.yml :
deploy:
type: git //改成github
然后再執行:
hexo generate
hexo deploy
然后訪問: http://jinyanhuan.github.io/ (用戶名改成自己的),就可以看到了.
注意,每次修改本地文件后,需要 hexo generate 才能保存。每次使用命令時,都要在 E:\hexo
目錄下
好了,雖然搞了這么多,但這只是一個開始~~~ 慢點繼續搭建~~~
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------
2015 - 02 - 16 補充:
一. 如果需要在多台電腦上安裝hexo:
1.執行步驟1-5
2.復制一個原來就有的ssh key到新的電腦.或者在新電腦上生成一個新的ssh key,添加到對應的github博客倉庫里.
3.把原來的hexo目錄下東西復制到新的電腦里.
二. hexo可能更新過了,所以老的hexo可能會報錯:
{ [Error: Cannot find module './build/Release/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' } { [Error: Cannot find module './build/default/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' } { [Error: Cannot find module './build/Debug/DTraceProviderBindings'] code: 'MODULE_NOT_FOUND' }
解決辦法,執行:
npm install hexo --no-optional
以上搭建過程共參考以下文章:
搭建過程:
http://zipperary.com/2013/05/28/hexo-guide-2/
http://jingyan.baidu.com/article/ed2a5d1f3732cb09f7be1745.html
SSH keys:
https://help.github.com/articles/generating-ssh-keys/
http://blog.sina.com.cn/s/blog_698b9e160100nwna.html
http://blog.csdn.net/keyboardota/article/details/7603630
http://www.freehao123.com/hexo-node-js/
Error:Deployer not found:github
https://github.com/hexojs/hexo/issues/1040
后續操作全部轉到本人的github.io博客: http://jinyanhuan.github.io/