本文介紹基于nodejs的CMS系統keystonejs的安裝過程,涉及nodejs,mongo,iisnode等的安裝。
我正在阿裡雲上建立一個簡單的個人部落格網站,剛好正在嘗試NodeJs,決定找一款基于NodeJs的CMS來完成這個工作,最後找到了KeyStoneJS。
KeyStoneJS是基于Express和MongoDB的CMS架構,詳細介紹參見官網http://keystonejs.com/zh/。本文記錄一下keystonejs的安裝過程,後續将記錄基于keystonejs的二次開發過程。
keystonejs的安裝過程并不複雜,但由于涉及到node.js,MongoDB,yo等安裝,如果某一步陷到坑裡,就會花費不少時間。另外由于我租用的是windows作業系統,需要在IIS中運作網站,是以還需要針對windows的一些設定。大緻的安裝步驟如下:
1、安裝node.js
2、安裝MongoDB
3、安裝yo
4、安裝keystone
5、用yo 建立新的網站
6、測試網站
7、安裝iisnode
8、在IIS中運作網站
1、安裝node.js。keystonejs基于node.js,是以,首先要安裝node.js。這一步比較簡單,從nodejs的官網直接下載下傳相應的安裝包就可以了(https://nodejs.org)。
2、安裝MongoDB。keystonejs使用MongoDB作為資料庫,首先要從官網下載下傳安裝包https://www.mongodb.com/download-center,安裝過程比較簡單,安裝完成後需要做一些配置,可以參加官網的安裝指南
https://docs.mongodb.com/manual/tutorial/install-mongodb-on-windows/。需要注意的是,安裝完成後,需要設定資料庫檔案的位置,為資料庫檔案建立一個目錄,運作mongod.exe配置這個目錄:
我希望MongoDB作為windows的一個服務運作,是以需要為mongodb配置服務。
首先為資料庫建立資料目錄和日志目錄:
然後在MongoDB的安裝目錄中建立配置檔案mongod.cfg,比如C:\Program Files\MongoDB\Server\3.2\mongod.cfg,指明這兩個目錄:
最後,應管理者身份運作指令行,執行建立服務的指令:
這樣,就可以啟動MongoDB了:
3、安裝yo。yo是Yeoman制作的生成器需要,官網是http://yeoman.io/。keystonejs使用yo來生成網站,如果沒有安裝yo的話,需要使用npm進行安裝。
npm install -g yo
4、安裝keystonejs的生成器
到這裡keystonejs的安裝就完成了,下面是使用keystonejs建立一個簡單的網站。
5、為網站建立一個目錄,并建立檔案
比如我們建立了mywebsite的目錄,在控制台中,進入這個目錄,并運作:
yo keystone
生成器開始運作,在生成過程中會問你一些問題,并進行配置。還會從npm中安裝依賴項。
6、測試生成的網站
安裝完成後,可以測試一下生成的網站,運作:
7、安裝iisnode。由于我希望自己的網站在IIS中運作,是以需要安裝iisnode.
首先要下載下傳iisnode并進行安裝:
https://github.com/tjanczuk/iisnode
還需要安裝iis的URL Rewrite子產品。
然後再網站的根目錄下增加web.config檔案,将重定向定位到keystone.js:
<configuration>
<system.webServer>
<handlers>
<add name="iisnode" path="keystone.js" verb="*" modules="iisnode" />
</handlers>
<rewrite>
<rules>
<rule name="Catch All">
<match url="/*" />
<action type="Rewrite" url="keystone.js" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
8、最後,在IIS中建立新的網站,并将路徑指向網站的目錄。還要說明的是,需要進行網站目錄的權限設定,給IUser完全控制的權限。
好了,可以運作了,比如我建立的這個網站http://www.jiagoush.cn
下一步需要在keystonejs基礎上進行定制開發,首先要修改jade模闆,使界面符合自己的要求,然後要增加一些新的功能,比如部落格的評論等等。後續會将這些開發過程記錄下來。
本文來自部落格園,作者:尋找無名的特質,轉載請注明原文連結:https://www.cnblogs.com/zhenl/p/6015169.html