概述应用程序“appname”未能在开放移动节点应用程序上启动(端口8080不可用)
我已经写了一个节点在咖啡服务器,我似乎无法得到它运行。
部署时出现以下错误:
正在等待应用程序端口(8080)变为可用…
之后我得到以下错误
尝试使用windows 7为Symfony2项目转储资产时出现运行时exception
在windows / IIS symfony2咖啡脚本设置资产filter
全局安装的npm-packages不能正常工作
NodeJs和Coffeescript安装(Ubuntu 12.04)
如何在windows中一起使用CoffeeScript和Eclipse?
应用程序“appname”无法启动(端口8080不可用)
如果coffeescript似乎是问题是否有解决方法。 我不想改回Js。
我的服务器代码是:
restify = require \’restify\’ Bunyan = require \’bunyan\’ server = restify.createServer name: \’APPname\’ version: \’0.0.1\’ log: Bunyan.createLogger name: \’API\’ serializers: req: ()-> return \”bad\” # Usercontroller.access calls a function to process the request server.post \’/user/access\’,UserController.access server = create.createServer() server.Listen server_port,-> console.log \”http server Listening on #{server_port}\” require(\’./document\’)(server.router.mounts,\’restify\’) return
windows批处理结合咖啡脚本,复制和uglyify
Node.Js hubot在服务器上执行命令
为什么我在cygwin中运行咖啡命令时出错?
如何弥补JavaScript中的Nginx的URL重写?
节点,永远,咖啡 – 在linux上运行很好,但不是在windows上
您需要检查的第一步是查看〜/ app-root / logs / nodeJs.log下的日志
在我的情况下,没有包或任何类型的访问问题。 我在日志中得到的唯一信息是:
错误:在server._Listen2(net.Js:1024:19)errnoException(net.Js:905:11)处侦听EACCES
如果除了前端控制台找不到任何理由说它无法访问8080,那么请确保您指定了IP地址和端口号。
这是我如何解决它。
var express = require(\’express\’); var app = express(); var http = require(\’http\’); app.set(\’port\’,process.env.OPENSHIFT_NODEJs_PORT || process.env.PORT || 3002); app.set(\’ip\’,process.env.OPENSHIFT_NODEJs_IP || \”127.0.0.1\”); http.createserver(app).Listen(app.get(\’port\’),app.get(\’ip\’),function () { console.log(\”✔ Express server Listening at %s:%d \”,app.get(\’port\’)); server(); });
如前所述,app.get(\’ip\’)在听时非常重要。 否则,openshift无法启动您的应用程序。
更新:
如何进入日志目录:
使用命令rhc ssh将SSH加入你的设备
一旦你登录,输入cd $OPENSHIFT_LOG_DIR
在那里你有由Openshift环境存储的日志文件。
这可能是由于许多原因。 如果nodeJs启动不正确,PaaS似乎试图连续启动它。 它或者为端口创建一个冲突,或者这个错误与问题本身无关。 在我的情况下,有一个依赖失踪。 解决问题的最好方法是在应用程序容器中ssh并观察日志文件:tail -f〜/ app-root / logs / nodeJs.log
通过设置我的mongo db用户名和密码解决了这个问题
我得到了同样的错误,这与我在github上指向的分支有关。
师父是我的主要分支(第一个创建),当我指出它建立了,但我会得到错误,如果我指向任何其他分支。
在Openshift上的节点应用程序是一个2步骤的过程:
在package.Json中创建条目以启动服务器(入口点到应用程序):
\”scripts\”: { \”start\”: \”node server.Js\” },\”main\”: \”server.Js\”
使用OPENSHIFT环境变量获取IP和PORT:
process.env.OPENSHIFT_NODEJs_PORT process.env.OPENSHIFT_NODEJs_IP
有关更多详细信息,请参阅OpenShift:节点应用程序中的“无法执行控制启动”
rhc app create … –from-code …并获得8080不可用?
。
就像Mihai在他的回答中解释的那样(port 8080 not available)不需要关联到如何设置端口 – 因此,即使使用process.env.OPENSHIFT_NODEJs_PORT和process.env.OPENSHIFT_NODEJs_IP ,也可能发生这种情况process.env.OPENSHIFT_NODEJs_IP正确。
一个建议,看看~/app-root/logs/nodeJs.log正在帮助很多,但是如果错误发生在rhc app create … –from-code … ? 该应用程序不会被创建,因此你不能ssh看nodeJs.log 。
尝试在有限版本中推送您的应用程序 – 尽可能多地注释代码。
对我来说,它只是开始于快速应用程序的初始化和聆听。 然后,一旦创建了openshift应用程序,我一点一点地取消注释代码,推送并检查nodeJs.log文件。
这样我发现我的mongoDb名称是\”APPname_\”+process.env.NODE_ENV而openshift创建的mongoDb数据库只调用APPname
。
道歉没有直接回答这个问题,但8080 not available似乎是由各种设置造成的,也许这会帮助某人。
如果使用express: app.Listen(process.env.OPENSHIFT_NODEJs_PORT,process.env.OPENSHIFT_NODEJs_IP);
要么:
var port = process.env.OPENSHIFT_NODEJs_PORT; var ip = process.env.OPENSHIFT_NODEJs_IP; app.Listen(port,ip);
在我的情况下,我得到如下错误使用rhc ssh如上建议。
Unhandled rejection Error: getaddrinfo ENOTFOUND at errnoException (dns.Js:37:11) at Object.onanswer [as oncomplete] (dns.Js:124:16)
我通过设置来摆脱我的问题
mongo_url = process.env.OPENSHIFT_MONGODB_DB_URL;
呃,我正在尝试跟随但是
mongo_url = \”mongodb://admin:pass@$OPENSHIFT_MONGODB_DB_HOST:$OPENSHIFT_MONGODB_DB_PORT/mydbname\”
这不起作用。
希望这有助于某人。
解决这个问题的最好方法是检查你的日志文件夹。 SSH到你的服务器,找到nodeJs.log文件,你可以使用cat nodeJs.log来查看它的内容。
原因可能是:
其他文件中的语法错误
缺少端口环境变量
缺少IP环境变量(这2个最后在其他答案中陈述)
即使它说“端口8080不可用”,错误可能是在一个文件,不能正确执行,因此,你应该检查最近的变化,或者直接检查日志,找到错误的位置。
总结
以上是内存溢出为你收集整理的应用程序“appname”未能在开放移动节点应用程序上启动(端口8080不可用)全部内容,希望文章能够帮你解决应用程序“appname”未能在开放移动节点应用程序上启动(端口8080不可用)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容