我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试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配置这个目录:

"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe" --dbpath d:\test\mongodb\data

我希望MongoDB作为windows的一个服务运行,因此需要为mongodb配置服务。

首先为数据库创建数据目录和日志目录:

mkdir c:\data\db
mkdir c:\data\log

然后在MongoDB的安装目录中创建配置文件mongod.cfg,比如C:\Program Files\MongoDB\Server\3.2\mongod.cfg,指明这两个目录:

systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db

最后,应管理员身份运行命令行,执行创建服务的命令:

sc.exe create MongoDB binPath= "\"C:\Program Files\MongoDB\Server\3.2\bin\mongod.exe\" --service --config=\"C:\Program Files\MongoDB\Server\3.2\mongod.cfg\"" DisplayName= "MongoDB" start= "auto"

这样,就可以启动MongoDB了:

net start MongoDB

3、安装yo。yo是Yeoman制作的生成器需要,官网是http://yeoman.io/。keystonejs使用yo来生成网站,如果没有安装yo的话,需要使用npm进行安装。

npm install -g yo

4、安装keystonejs的生成器

npm install -g generator-keystone

到这里keystonejs的安装就完成了,下面是使用keystonejs创建一个简单的网站。

5、为网站创建一个目录,并创建文件

比如我们创建了mywebsite的目录,在控制台中,进入这个目录,并运行:

yo keystone

生成器开始运行,在生成过程中会问你一些问题,并进行配置。还会从npm中安装依赖项。

6、测试生成的网站

安装完成后,可以测试一下生成的网站,运行:

node keystone

在浏览器中打开http://localhost:3000,应该能看到运行的网站。

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模板,使界面符合自己的要求,然后要增加一些新的功能,比如博客的评论等等。后续会将这些开发过程记录下来。

初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs)的更多相关文章

  1. 初试Nodejs——使用keystonejs创建博客网站2(修改模板)

    上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...

  2. Linux_基于Docker快速搭建个人博客网站

    时间:2017年04月28日星期五 说明:基于docker技术,使用jpress开源框架搭建个人博客网站.特别感谢jpress开源项目.系统版本:CentOS 7.2-64bit. 步骤一:准备Doc ...

  3. Github Pages和Hexo创建静态博客网站

    Github Pages和Hexo创建静态博客网站 安装Node.js 本人是window环境,所以下载window版. 下载地址:https://nodejs.org/en/download/ 下载 ...

  4. 在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序

    编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写. 根据您编写的应用程序,Windows Azure 网站上的基本Python 堆 ...

  5. 博客网站-Hexo+GitHub+Netlify

    Hexo+GitHub+Netlify一站式搭建属于自己的博客网站 https://www.cnblogs.com/kerbside/p/10130606.html https://hhongwen. ...

  6. Hexo+GitHub+Netlify一站式搭建属于自己的博客网站

    喜欢的话请关注我的个人博客我在马路边https://hhongwen.cn/,此文为博主原创,转载请标明出处. 更好的阅读体验请点击查看:Hexo+GitHub+Netlify一站式搭建属于自己的博客 ...

  7. Hexo+Github/Coding免费搭建个人博客网站

    体验更优排版请移步原文:http://blog.kwin.wang/other/hexo-github-build-blog.html 很早之前就想搭建一个属于自己的博客网站,一方面是给自己做笔记,把 ...

  8. Hexo系列(一) 搭建博客网站

    写在前面的话:本系列文章主要参考 Hexo官方说明文档,同时结合自己在使用过程中的一些心得体会,撷取下来,和大家分享分享.好,下面闲话不多说,马上开始我们的 Hexo 之旅吧 温馨提醒:博主使用的操作 ...

  9. Hexo+Github: 博客网站搭建完全教程(看这篇就够了)

    本篇教程首次发布在个人博客:sunhwee.com,想要获得最佳阅读体验,欢迎前往,建议用电脑查看教程文档. # 阅读须知 注意,这篇文章篇幅较长,主要针对新手,每一步很详细,所以可能会显得比较啰嗦, ...

随机推荐

  1. Android test---SL4A

    这里有一个链接http://www.linuxidc.com/Linux/2014-02/96452.htm 详细教程

  2. Javascript数组函数库

    其实平时用的比较多的应该是push和pop,不过还是都记下来,以便后面使用. shift :删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4 ...

  3. Kafka server.properties配置说明(转)

    原文:https://my.oschina.net/infiniteSpace/blog/312890?p=1 http://www.inter12.org/archives/842 broker.i ...

  4. 39、重新复习js之三

    1.盒子模型典型标签 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...

  5. 树莓派使用MJPG-Streamer实现网络监控

    http://blog.sina.com.cn/s/blog_abd39cc70102vrdt.html ——————————————————————————————————————————————— ...

  6. note->notice

    登陆博客园,乍眼一看上一篇博客的日期还是2月底,如今已是5月份,期间好几次想要记录一些东西,总感觉现在一天二十四小时越来越短,有几次登陆博客园甚至连密码都要重置一下才能登陆...这两个月的时间里经理了 ...

  7. 移植milo的全局光照渲染器代码

    测试flascc的性能优化程度,http://bbs.9ria.com/thread-162705-1-1.html . 可以对比下猫粮的http://bbs.9ria.com/thread-5820 ...

  8. PHP中的特殊符号

    <?php 注解符号: // 单行注解 /* */ 多行注解 引号的使用 ' ' 单引号,没有任何意义,不经任何处理直接拿过来; " "双引号,php动态处理然后输出,一般用 ...

  9. shell 统计某个文件的行数命令

    语法:wc [选项] 文件- 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...

  10. Reveal的使用及破解方法

    Reveal的使用其实真的很简单,就如第一张镇楼图的效果一样.中间是3D可视化当前APP页面的视图,左侧则是这些UI元素和层次结构,而右侧则是View的属性,你可以修改View的颜色.frame等等, ...