共计 8186 个字符,预计需要花费 21 分钟才能阅读完成。
这是一篇关于怎么通过 OpenShift Online 在 Windows 机器上开发 MongoDB,Node.js 和 RockMongo 应用的文章,而且是免费的。这不是一个标题的原因是因为它太长了。Cool 吧,现在就开始看看是怎么一回事。
OpenShift Online – Red Hat 公共云程序开发和托管平台,能够自动配置,管理和扩展应用程序,这样你就可以专注写业务的代码。开始吧,可能下一个好主意就在眼前。
如果你已经试过 OpenShift, 你可能是通过官方教学视频 其实那里是完全没用的。官方博客 虽然好点但是缺少好的代码例子, 例如怎么从 Node.js 连接到 MongoDB. 继续读下去你应该就知道了。
首先,你必须要一个账号 创建一个新的 OpenShift,假如你没有的话。
一旦你登入站点,你会发现一个漂亮的主面板,你可以点击 Add application 按钮去创建一个应用程序:
这里有一堆的选项:
点击 WordPress 图标去建一个 WrodPress 程序,在下一个页面給它命名:
然后点击 Create Application 按钮. 经过一段时间的处理 (几分钟),你能看到一些指引怎么修改应用:
主要地你要克隆你的代码到应用上面去,当然还要适当的改动一下代码。接下来你要做的是访问你新创建的应用页面(页面链接在 OpenShift 管理界面的应用标签页里面),你将看到 WordPress 初始化安装界面:
如果你之前装过 WordPress,这个应该不陌生了。现在你已经装好了,而且只是简单的几次点击。
Openshift 的详细介绍:请点这里
Openshift 的下载地址:请点这里
推荐阅读:
如何通过 Putty 实现远程登录控制 Linux 平台 http://www.linuxidc.com/Linux/2013-06/85266.htm
Putty 连接 VMWare 中 Ubuntu 的问题解决 http://www.linuxidc.com/Linux/2013-05/84819.htm
VMware+Linux+Putty 环境配置 http://www.linuxidc.com/Linux/2013-05/84818.htm
借助 Putty 远程登录控制虚拟机的 Fedora 系统 http://www.linuxidc.com/Linux/2013-01/78155.htm
Red Hat 老用户的 OpenShift 初体验 http://www.linuxidc.com/Linux/2012-12/76316.htm
Openshift 指南 http://www.linuxidc.com/Linux/2014-01/95405.htm
保持冷静和卷起你的袖子
你现在可能好奇,在标题里,怎么就没看到 MongoDB 和 Node.js 的呢? 别急…
我们已经看到了从管理界面上创建一个应用是多么容易的了, 但是自从我们成为一名开发者和爱情终结者?(难道不是? ) 我们注定要走不寻常的路去解决问题。OpenShift 提供 OpenShift 客户端工具 rhc. 为了安装 rhc,首先要安装 Ruby, 而最容易的方式让它运行在 Windows 机器是要安装一个 RubyInstaller:
只要按上面的大大下载按钮,你就知道怎么做了. 但是有个重要的点, 就是当你安装到下面的页面,必须要勾上 Add Ruby executables to your PATH 选项:
安装之后,你就可以启动你的终端(我用的是 Console 2, 你可以看下我的配置: 在 Windows 机器自定义 Console 2) 然后运行:
gem install rhc
上面完成之后再运行:
rhc setup
(对于 Windows 用户,这一个很重要的部分,在安装 OpenShift RHC 客户端工具 官方文档说我们应该只要运行:
rhc
就行, 但是在文章评论上说这是不起作用的).
现在我们可以用 rhc 去创建一个新的应用程序了。创建一个名为 myTest 并使用 Node.js 和 MongoDB,你要运行下面的命令:
rhc app create myTest nodejs-0.10 mongodb-2.4
你将看到类似下面的输出:
C:\Users\Nikola\Desktop>rhc app create myTest nodejs-0.10 mongodb-2.4
DL is deprecated, please use Fiddle
Application Options
——————-
Domain: chavo
Cartridges: nodejs-0.10, mongodb-2.4
Gear Size: default
Scaling: no
Creating application 'myTest' … done
MongoDB 2.4 database added. Please make note of these credentials:
Root User: admin
Root Password: ..bip..Bip..
Database Name: mytest
Connection URL: mongodb://$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/
Waiting for your DNS name to be available … done
Cloning into 'mytest'…
The authenticity of host 'mytest-chavo.rhcloud.com (54.235.21.98)' can't be established.
RSA key fingerprint is cf:ee:77:cb:0e:fc:02:d7:72:7e:ae:80:c0:90:88:a7.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'mytest-chavo.rhcloud.com,54.235.21.98' (RSA) to the list of known hosts.
Enter passphrase for key '/c/Users/Nikola/.ssh/id_rsa':
remote: Counting objects: 21, done.
remote: Compressing objects: 100% (17/17), done.
Receiving objects: 100% (21/21), 20.22 KiB, done.ceiving objects: 90% (19/21)
Your application 'mytest' is now available.
URL: http://mytest-chavo.rhcloud.com/
SSH to: 532812f94382eca22b000657@mytest-chavo.rhcloud.com
Git remote: ssh://532812f94382eca22b000657@mytest-chavo.rhcloud.com/~/git/mytest.git/
Cloned to: C:/Users/Nikola/Desktop/mytest
Run 'rhc show-app myTest' for more details about your app.
如果你关注到这句‘DL is deprecated, please use Fiddle‘, 正如 on Stackoverflow 说的,只是一个警告而已 (或者你想探索更多,你可以先记下这个问题先).
如果报了错误,是说你没有某些(cartridge)组件?那必须相应的更改命令通过它给的一个可用组件的列表
C:\Users\Nikola\Desktop>rhc app create
DL is deprecated, please use Fiddle
When creating an application, you must provide a name and a cartridge from the
list below:
Short Name Full name
========== =========
diy-0.1 Do-It-Yourself 0.1
jbossas-7 JBoss Application Server 7
jbosseap-6 JBoss Enterprise Application Platform 6
jenkins-1 Jenkins Server
nodejs-0.10 Node.js 0.10
nodejs-0.6 Node.js 0.6
perl-5.10 Perl 5.10
php-5.3 PHP 5.3
zend-5.6 PHP 5.3 with Zend Server 5.6
php-5.4 PHP 5.4
zend-6.1 PHP 5.4 with Zend Server 6.1
python-2.6 Python 2.6
python-2.7 Python 2.7
python-3.3 Python 3.3
ruby-1.8 Ruby 1.8
ruby-1.9 Ruby 1.9
jbossews-1.0 Tomcat 6 (JBoss EWS 1.0)
jbossews-2.0 Tomcat 7 (JBoss EWS 2.0)
jboss-vertx-2.1 Vert.x 2.1
Please specify the name of the application and the web cartridge to install
Usage: rhc app-create <name> <cartridge> [… <cartridge>] [… VARIABLE=VALUE]
[-n namespace]
Pass '–help' to see the full list of options
继续 rockin’ on
MongoDB 是一个开源文档数据库, 也是一个主要 NoSQL数据库. 为了添加一个 RockMongo , 一个用来与 MongoDB 交互和管理的 web 前端, 你需要执行这个命令:
rhc cartridge add rockmongo
之后将得到类似下面的输出:
C:\Users\Nikola\Desktop\mytest>rhc cartridge add rockmongo
DL is deprecated, please use Fiddle
Using rockmongo-1.1 (RockMongo 1.1) for 'rockmongo'
Adding rockmongo-1.1 to application 'mytest' … done
rockmongo-1.1 (RockMongo 1.1)
—————————–
Gears: Located with mongodb-2.4, nodejs-0.10
Connection URL: https://mytest-chavo.rhcloud.com/rockmongo/
Please make note of these MongoDB credentials:
RockMongo User: admin
RockMongo Password: ..i.aint.telin'..
URL: https://mytest-chavo.rhcloud.com/rockmongo/
如果你通过用户名和密码,那 RockMongo 将提供一个简单但是有用的界面:
当然,如果你更喜欢 Shell,你可以这样:
rhc ssh
然后通过命令行界面开始交互,输入:
mongo
:
[mytest-chavo.rhcloud.com 532812f94382eca22b000657]\> mongo
MongoDB shell version: 2.4.6
connecting to: 127.9.197.130:27017/admin
Welcome to the MongoDB shell.
For interactive help, type “help”.
For more comprehensive documentation, see
http://docs.mongodb.org/
Questions? Try the support group
http://groups.google.com/group/mongodb-user
现在选择一个跟你应用同名的数据库。
> use mytest
switched to db mytest
像下面那样插入一些数据:
> var a = {“user”:”nikola”, points:10};
> db.scores.insert(a);
和检查一下是否成功插入:
> db.scores.find();
{“_id” : ObjectId(“53284189d6e5e4aedb1fbafd”), “user” : “nikola”, “points” : 10 }
要用 Node.js 查询这些信息,首先必须用下面命令安装 mongojs
npm install mongojs
. 然后打开这个
server.js
文件 (它在你应用的根目录),然后加下面代码进去。
self.createRoutes
object:
self.routes['/db'] = function(req, res) {
var mongojs = require('mongojs');
var dbName = “/mytest”;
var connection_string = process.env.OPENSHIFT_MONGODB_DB_USERNAME + “:” + process.env.OPENSHIFT_MONGODB_DB_PASSWORD + “@” + process.env.OPENSHIFT_MONGODB_DB_HOST + dbName;
var db = mongojs(connection_string, ['scores']);
var books = db.collection('scores');
db.scores.find(function(err, docs) {
res.send(docs);
});
};
一切就绪
现在是时候加这些变更到暂存状态
git add .
(你可能想要检查 Git 是否有问题). 你可以用下面命令检查要提交文件的状态
git status
. 提交你要执行的变更:
git commit -a -m “Added code to talk to db”
最后
git push
这样变更都上传到 OpenShift 上面部署了.
现在,如果你完全按照这个教程来做, 打开链接 http://mytest-chavo.rhcloud.com/db (注意这里有个 db, 如果你的链接无误,它将反映你的程序数据库) 你就能得到下面的输出:
下面的这条有用命令可以大概了解到你的应用的设置:
C:\Users\Nikola\Desktop\mytest>rhc app show
DL is deprecated, please use Fiddle
mytest @ http://mytest-chavo.rhcloud.com/ (uuid: 532812f94382eca22b000657)
————————————————————————–
Domain: chavo
Created: 10:33 AM
Gears: 1 (defaults to small)
Git URL: ssh://532812f94dd2eca22b000657@mytest-chavo.rhcloud.com/~/git/mytest.git/
SSH: 532812f94382eca22b000657@mytest-chavo.rhcloud.com
Deployment: auto (on git push)
mongodb-2.4 (MongoDB 2.4)
————————-
Gears: Located with nodejs-0.10, rockmongo-1.1
Connection URL: mongodb://$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/
Database Name: mytest
Password: ..ccc…
Username: admin
nodejs-0.10 (Node.js 0.10)
————————–
Gears: Located with mongodb-2.4, rockmongo-1.1
rockmongo-1.1 (RockMongo 1.1)
—————————–
Gears: Located with mongodb-2.4, nodejs-0.10
Connection URL: https://mytest-chavo.rhcloud.com/rockmongo/
就这些了,是时候用它做些有用的东西了!
这是一篇关于怎么通过 OpenShift Online 在 Windows 机器上开发 MongoDB,Node.js 和 RockMongo 应用的文章,而且是免费的。这不是一个标题的原因是因为它太长了。Cool 吧,现在就开始看看是怎么一回事。
OpenShift Online – Red Hat 公共云程序开发和托管平台,能够自动配置,管理和扩展应用程序,这样你就可以专注写业务的代码。开始吧,可能下一个好主意就在眼前。
如果你已经试过 OpenShift, 你可能是通过官方教学视频 其实那里是完全没用的。官方博客 虽然好点但是缺少好的代码例子, 例如怎么从 Node.js 连接到 MongoDB. 继续读下去你应该就知道了。
首先,你必须要一个账号 创建一个新的 OpenShift,假如你没有的话。
一旦你登入站点,你会发现一个漂亮的主面板,你可以点击 Add application 按钮去创建一个应用程序:
这里有一堆的选项:
点击 WordPress 图标去建一个 WrodPress 程序,在下一个页面給它命名:
然后点击 Create Application 按钮. 经过一段时间的处理 (几分钟),你能看到一些指引怎么修改应用:
主要地你要克隆你的代码到应用上面去,当然还要适当的改动一下代码。接下来你要做的是访问你新创建的应用页面(页面链接在 OpenShift 管理界面的应用标签页里面),你将看到 WordPress 初始化安装界面:
如果你之前装过 WordPress,这个应该不陌生了。现在你已经装好了,而且只是简单的几次点击。
Openshift 的详细介绍:请点这里
Openshift 的下载地址:请点这里
推荐阅读:
如何通过 Putty 实现远程登录控制 Linux 平台 http://www.linuxidc.com/Linux/2013-06/85266.htm
Putty 连接 VMWare 中 Ubuntu 的问题解决 http://www.linuxidc.com/Linux/2013-05/84819.htm
VMware+Linux+Putty 环境配置 http://www.linuxidc.com/Linux/2013-05/84818.htm
借助 Putty 远程登录控制虚拟机的 Fedora 系统 http://www.linuxidc.com/Linux/2013-01/78155.htm
Red Hat 老用户的 OpenShift 初体验 http://www.linuxidc.com/Linux/2012-12/76316.htm
Openshift 指南 http://www.linuxidc.com/Linux/2014-01/95405.htm