在本地安裝Hexo框架任務時間:大概需要三分鐘
安裝git需要首先在本地安裝[git],可以在這里下載 在安裝過程中選擇將git添加到環(huán)境變量 (Add to PATH) 通過使用git, hexo可快速將本地的更新內(nèi)容部署到服務器上的網(wǎng)站中
安裝HexoHexo是基于Node.js的,因此需要先安裝它 可以在這里下載,同樣需要將它添加到環(huán)境變量 隨后通過Node.js提供的包管理器npm安裝Hexo: 打開命令行(cmd 或 git bash),輸入命令 npm install -g hexo-cli
隨后輸入hexo version,如果Hexo已被安裝,你將能看到相關(guān)的版本號 初始化Hexo選擇一個你喜歡的地方放置博客文件,在命令行中進入父目錄(通過cd命令) 輸入下列命令將創(chuàng)建一個Hexo博客文件夾 hexo init <起個名字> # 例如 hexo init MyBlog
cd <剛才的名字> # 例如 cd MyBlog
npm install
此時將能看到一個這樣的目錄 .├── _config.yml
├── package.json
├── scaffolds
├── source
| ├── _drafts
| └── _posts
└── themes
屬于我們博客的本地Hexo環(huán)境已經(jīng)搭建完畢 嘗試寫作與預覽效果任務時間:大概需要兩分鐘
新建一篇文章命令行進入我們的博客文件夾,輸入下列命令將新建一篇文章 hexo new <文章名> # 例如 hexo new helloworld
此時你將能夠在博客的 public/_posts/ 文件夾下看到所創(chuàng)建的文章 (helloworld.md) 用記事本打開它,向其中寫入任意內(nèi)容 生成個人博客輸入下列命令即可根據(jù)當前所設(shè)置的主題、已有的文章生成網(wǎng)頁文件 hexo generate # 或者輸入 hexo g
整個個人博客網(wǎng)站即位于public/ 文件夾下 在本地瀏覽個人博客如果直接使用瀏覽器打開public/index.html 不能顯示正確的樣式,如果希望在本地預覽博客,在命令行中輸入下列命令 hexo server # 或輸入 hexo s
此刻可在瀏覽器中輸入127.0.0.1:4000 來預覽博客 (默認設(shè)置下) 在服務器上部署任務時間:大概需要十分鐘
安裝git與Nginxgit幫助我們隨時部署博客更新,安裝: sudo apt-get install git
Nginx將我們的博客網(wǎng)站供互聯(lián)網(wǎng)訪問,安裝: sudo apt-get install nginx
設(shè)置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倉庫創(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
到此,我們服務器就已設(shè)置完畢了 裸倉庫的意思是只接收推送,而不會在其上工作(通常以.git結(jié)尾命名)
推送到服務器任務時間:大概需要三分鐘
SSH當我們從本地向服務器的blog.git倉庫推送時,通過SSH公鑰來驗證我們的身份。 因此,需要一對密鑰來進行認證,在這里生成密鑰(如果已經(jīng)擁有請?zhí)^生成的步驟): 打開git-bash (該工具包括在MSysGit軟件包中) ssh-keygen # 隨后根據(jù)提示輸入信息,按回車為默認
默認情況下,它將生成于用戶目錄(C:\User\<你的用戶名>)下的.ssh\文件夾中,名為id_rsa 與 id_rsa.pub。 其中id_rsa.pub為公鑰,將它的內(nèi)容寫到服務器中/home/ubuntu/.ssh/authorized_keys文件夾里。 請注意:如果有多對公鑰,需要配置一個config文件才能指示使用哪個私鑰進行驗證,它類似下面這樣: # 位置在....sshconfig
Host 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: 用戶名@服務器IP或域名:路徑/裸倉庫.git
branch: master
...
repo中填寫內(nèi)容的示例: ubuntu@111.111.111.111:/home/ubuntu/blog.git 在本地預覽網(wǎng)頁無誤后推送到服務器 hexo generator # 生成網(wǎng)頁文件
hexo server # 在本地預覽
hexo deploy # 推送到服務器
以上就是本地寫作并部署到云服務器的Hexo博客工作流。
|