初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs)
我正在阿里云上创建一个简单的个人博客网站,刚好正在尝试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。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)的更多相关文章
- 初试Nodejs——使用keystonejs创建博客网站2(修改模板)
上一篇(初试Nodejs——使用keystonejs创建博客网站1(安装keystonejs))讲了keystonejs的安装.安装完成后,已经具备了基本的功能,我们需要对页面进行初步修改,比如,增加 ...
- Linux_基于Docker快速搭建个人博客网站
时间:2017年04月28日星期五 说明:基于docker技术,使用jpress开源框架搭建个人博客网站.特别感谢jpress开源项目.系统版本:CentOS 7.2-64bit. 步骤一:准备Doc ...
- Github Pages和Hexo创建静态博客网站
Github Pages和Hexo创建静态博客网站 安装Node.js 本人是window环境,所以下载window版. 下载地址:https://nodejs.org/en/download/ 下载 ...
- 在 Windows Azure 网站上使用 Django、Python 和 MySQL:创建博客应用程序
编辑人员注释:本文章由 Windows Azure 网站团队的项目经理 Sunitha Muthukrishna 撰写. 根据您编写的应用程序,Windows Azure 网站上的基本Python 堆 ...
- 博客网站-Hexo+GitHub+Netlify
Hexo+GitHub+Netlify一站式搭建属于自己的博客网站 https://www.cnblogs.com/kerbside/p/10130606.html https://hhongwen. ...
- Hexo+GitHub+Netlify一站式搭建属于自己的博客网站
喜欢的话请关注我的个人博客我在马路边https://hhongwen.cn/,此文为博主原创,转载请标明出处. 更好的阅读体验请点击查看:Hexo+GitHub+Netlify一站式搭建属于自己的博客 ...
- Hexo+Github/Coding免费搭建个人博客网站
体验更优排版请移步原文:http://blog.kwin.wang/other/hexo-github-build-blog.html 很早之前就想搭建一个属于自己的博客网站,一方面是给自己做笔记,把 ...
- Hexo系列(一) 搭建博客网站
写在前面的话:本系列文章主要参考 Hexo官方说明文档,同时结合自己在使用过程中的一些心得体会,撷取下来,和大家分享分享.好,下面闲话不多说,马上开始我们的 Hexo 之旅吧 温馨提醒:博主使用的操作 ...
- Hexo+Github: 博客网站搭建完全教程(看这篇就够了)
本篇教程首次发布在个人博客:sunhwee.com,想要获得最佳阅读体验,欢迎前往,建议用电脑查看教程文档. # 阅读须知 注意,这篇文章篇幅较长,主要针对新手,每一步很详细,所以可能会显得比较啰嗦, ...
随机推荐
- Android test---SL4A
这里有一个链接http://www.linuxidc.com/Linux/2014-02/96452.htm 详细教程
- Javascript数组函数库
其实平时用的比较多的应该是push和pop,不过还是都记下来,以便后面使用. shift :删除原数组第一项,并返回删除元素的值:如果数组为空则返回undefined var a = [1,2,3,4 ...
- Kafka server.properties配置说明(转)
原文:https://my.oschina.net/infiniteSpace/blog/312890?p=1 http://www.inter12.org/archives/842 broker.i ...
- 39、重新复习js之三
1.盒子模型典型标签 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http:// ...
- 树莓派使用MJPG-Streamer实现网络监控
http://blog.sina.com.cn/s/blog_abd39cc70102vrdt.html ——————————————————————————————————————————————— ...
- note->notice
登陆博客园,乍眼一看上一篇博客的日期还是2月底,如今已是5月份,期间好几次想要记录一些东西,总感觉现在一天二十四小时越来越短,有几次登陆博客园甚至连密码都要重置一下才能登陆...这两个月的时间里经理了 ...
- 移植milo的全局光照渲染器代码
测试flascc的性能优化程度,http://bbs.9ria.com/thread-162705-1-1.html . 可以对比下猫粮的http://bbs.9ria.com/thread-5820 ...
- PHP中的特殊符号
<?php 注解符号: // 单行注解 /* */ 多行注解 引号的使用 ' ' 单引号,没有任何意义,不经任何处理直接拿过来; " "双引号,php动态处理然后输出,一般用 ...
- shell 统计某个文件的行数命令
语法:wc [选项] 文件- 说明:该命令统计给定文件中的字节数.字数.行数.如果没有给出文件名,则从标准输入读取.wc同时也给出所有指定文件的总统计数.字是由空格字符区分开的最大字符串. 该命令各选 ...
- Reveal的使用及破解方法
Reveal的使用其实真的很简单,就如第一张镇楼图的效果一样.中间是3D可视化当前APP页面的视图,左侧则是这些UI元素和层次结构,而右侧则是View的属性,你可以修改View的颜色.frame等等, ...