我有一个MEAN.js应用程序,我部署到openshift服务器,执行以下步骤:
1-设置客户端工具rhc,git等。 遵循本教程openshift tutorial 结果:通过rhc ssh成功通过我的openshift域验证
2-使用打开班次提供的磁带Nodejs cartridge on openshift
通过Web控制台创建了一个新应用3-通过openshift Web控制台为应用程序添加了一个mongodb盒式磁带
4-现在我做了一个手动安装bower的步骤,以避免提交&通过git推送图书馆 在终端上使用rhc ssh命令我在控制台上发出npm install -g bower,它似乎工作正常,bower安装成功
5-通过设置指南从github下载了nodejs应用程序,现在我在本地服务器上部署了应用程序的文件夹结构
6-我需要在app文件夹中包含以下内容才能将我的应用程序成功部署到服务器
package.json文件中的a-npm依赖项 b- bower.json文件(后来我应该能够运行bower install来在repo中安装bower依赖项)不成功我没有对目录的sudo权限
c-运行我的项目所需的所有文件和文件夹结构 d-代码行设置服务器使用绑定mongoose.js的配置文件运行,使用express.js,passport,并侦听端口3000 为此,我将代码包含在已经设置节点服务器以运行`
的现有app.js文件中 var mongoose = require('./config/mongoose'),
express = require('./config/express'),
passport = require('./config/passport');
var db = mongoose();
var app = express();
var passport = passport();`
e-提交所有并推动完成 结果:通过rhc终端成功部署 但当我访问浏览器上的链接时,我得到了一个
503服务不可用没有服务器可以处理此请求。
我回到终端并将rhc ssh发送到openshift服务器,然后运行taill_all查看日志中发生了什么,在终端中重复发现以下内容
==> app-root / logs / haproxy.log< == [警告] 134/132624(39619):在0毫秒内停止代理表达。 [警告] 134/132624(39619):代理 统计数据停止(FE:2个conns,BE:0个conns)。 [警告] 134/132624(39619) :代理快递停止(FE:9 conns,BE:103 conns)。 [警告] 134/132624(75275):config:代理'stats'忽略日志格式 因为它没有日志地址。 [警告] 134/132624(75275):config: 代理'express'忽略日志格式,因为它没有日志地址。 [警告] 134/163313(75275):服务器快速/本地设备为DOWN 保养。 [警告] 134/163313(75275):代理'快递'没有 服务器可用! [警告] 134/163353(75275):服务器 快递/本地装备是UP(离开维修)。 [警告] 134/163355 (75275):服务器快速/本地设备是DOWN,原因:Layer4连接 问题,信息:“连接被拒绝”,检查持续时间:0ms。 0活跃和 剩下0个备份服务器。 0个会话激活,0个重新排队,0个剩余 队列。 [ALERT] 134/163355(75275):代理'express'没有服务器 可供使用!
==> app-root / logs / nodejs.log< == at require(internal / module.js:20:19) 在module.exports(/var/lib/openshift/57375ced7628e1e8f00001bd/app-root/runtime/repo/config/express.js:54:3) 在对象。 (/var/lib/openshift/57375ced7628e1e8f00001bd/app-root/runtime/repo/app.js:46:11) 在Module._compile(module.js:413:34) 在Object.Module._extensions..js(module.js:422:10) 在Module.load(module.js:357:32){[错误:找不到模块'../build/Release/bson']代码:'MODULE_NOT_FOUND'} js-bson:失败了 使用纯JS版本加载c ++ bson扩展{[错误:无法找到 module'../build/Release/bson']代码:'MODULE_NOT_FOUND'} js-bson: 无法加载c ++ bson扩展,使用纯JS版本警告: connect.session()MemoryStore不是为生产而设计的 环境,因为它会泄漏内存,并且不会扩展到单个 过程
问题是由openshift提供的MEAN.IO cartidge不是与任何自定义MEAN.js应用程序相同的项目结构或依赖项,它本质上是一个带有mongodb和express.js的node.js应用程序,用于服务器端api路由,所以它在这种情况下不可用,例如以下问题中的建议:suggestion to use mean.io cartridge to deploy a mean.js app
请帮助我指导更直接的部署方式在openshift上配置任何mean.js应用程序,如果有明确成功的过去经验,欢迎使用其他服务器的建议,谢谢
答案 0 :(得分:0)
如果您选择直接在服务器上编辑代码(避免提交和推送更改),那么如果您的应用需要恢复或重建,您的工作将会丢失。
Bower通常用作生成器,在本地构建代码(在提交和推送更改之前)。我不认为bower在OpenShift上正常工作,因为它期望$HOME
目录是可写的。
我尝试在本地完成这项工作,然后提交并推送结果。