阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

在 OpenShift 上部署 MongoDB 和 Node.js 应用

178次阅读
没有评论

共计 8186 个字符,预计需要花费 21 分钟才能阅读完成。

这是一篇关于怎么通过 OpenShift Online 在 Windows 机器上开发 MongoDB,Node.js 和 RockMongo 应用的文章,而且是免费的。这不是一个标题的原因是因为它太长了。Cool 吧,现在就开始看看是怎么一回事。

OpenShift Online – Red Hat 公共云程序开发和托管平台,能够自动配置,管理和扩展应用程序,这样你就可以专注写业务的代码。开始吧,可能下一个好主意就在眼前。

如果你已经试过 OpenShift, 你可能是通过官方教学视频 其实那里是完全没用的。官方博客 虽然好点但是缺少好的代码例子, 例如怎么从 Node.js 连接到 MongoDB. 继续读下去你应该就知道了。

首先,你必须要一个账号 创建一个新的 OpenShift,假如你没有的话。

一旦你登入站点,你会发现一个漂亮的主面板,你可以点击 Add application 按钮去创建一个应用程序:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

这里有一堆的选项:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

点击 WordPress 图标去建一个 WrodPress 程序,在下一个页面給它命名:

在 OpenShift 上部署 MongoDB 和 Node.js 应用
然后点击 Create Application 按钮. 经过一段时间的处理 (几分钟),你能看到一些指引怎么修改应用:
在 OpenShift 上部署 MongoDB 和 Node.js 应用
主要地你要克隆你的代码到应用上面去,当然还要适当的改动一下代码。接下来你要做的是访问你新创建的应用页面(页面链接在 OpenShift 管理界面的应用标签页里面),你将看到 WordPress 初始化安装界面:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

如果你之前装过 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 上部署 MongoDB 和 Node.js 应用 ) 我们注定要走不寻常的路去解决问题。OpenShift 提供 OpenShift 客户端工具 rhc. 为了安装 rhc,首先要安装 Ruby, 而最容易的方式让它运行在 Windows 机器是要安装一个 RubyInstaller:

在 OpenShift 上部署 MongoDB 和 Node.js 应用

只要按上面的大大下载按钮,你就知道怎么做了. 但是有个重要的点, 就是当你安装到下面的页面,必须要勾上 Add Ruby executables to your PATH 选项:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

安装之后,你就可以启动你的终端(我用的是 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 &apos;–help&apos; 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 &apos;rockmongo&apos;
Adding rockmongo-1.1 to application &apos;mytest&apos; … 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&apos;..
URL: https://mytest-chavo.rhcloud.com/rockmongo/

如果你通过用户名和密码,那 RockMongo 将提供一个简单但是有用的界面:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

当然,如果你更喜欢 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[&apos;/db&apos;] = function(req, res) {
    var mongojs = require(&apos;mongojs&apos;);
    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, [&apos;scores&apos;]);
    var books = db.collection(&apos;scores&apos;);

    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, 如果你的链接无误,它将反映你的程序数据库) 你就能得到下面的输出:

在 OpenShift 上部署 MongoDB 和 Node.js 应用

下面的这条有用命令可以大概了解到你的应用的设置:

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 按钮去创建一个应用程序:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

这里有一堆的选项:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

点击 WordPress 图标去建一个 WrodPress 程序,在下一个页面給它命名:

在 OpenShift 上部署 MongoDB 和 Node.js 应用
然后点击 Create Application 按钮. 经过一段时间的处理 (几分钟),你能看到一些指引怎么修改应用:
在 OpenShift 上部署 MongoDB 和 Node.js 应用
主要地你要克隆你的代码到应用上面去,当然还要适当的改动一下代码。接下来你要做的是访问你新创建的应用页面(页面链接在 OpenShift 管理界面的应用标签页里面),你将看到 WordPress 初始化安装界面:
在 OpenShift 上部署 MongoDB 和 Node.js 应用

如果你之前装过 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

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计8186字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中