AWS 弹性 beanstalk ec2 服务器上的 node.js 命令

Posted

技术标签:

【中文标题】AWS 弹性 beanstalk ec2 服务器上的 node.js 命令【英文标题】:node.js commands on AWS elastic beanstalk ec2 server 【发布时间】:2014-04-11 14:29:06 【问题描述】:

我在 AWS 上创建了一个弹性 beanstalk node.js 应用程序,它为我创建了 EC2 和 RDS 服务器。我正在使用putty 连接到我的Linux EC2 实例,该实例已成功登录。

但是下面的命令不起作用:

node -v
npm install express -g
node

它给了我一个错误:

bash:节点:找不到命令

【问题讨论】:

【参考方案1】:

假设您使用的是 Amazon Linux 3.4:

> rpm -Uvh http://download-i2.fedoraproject.org/pub/epel/6/i386/epel-release-6-8.noarch.rpm

> sudo yum install nodejs npm --enablerepo=epel

应该可以的。

【讨论】:

Elasticbeanstalk 软件包需要与 .ebextensions 一起安装,因为您没有 shell。 docs.aws.amazon.com/elasticbeanstalk/latest/dg/…【参考方案2】:

Node 会自动安装在您的实例上,用于弹性 beanstalk。它不在路径中。

/opt/elasticbeanstalk/node-install/文件夹下寻找节点安装。

您不应该从命令行安装模块。在弹性 beanstalk 上安装节点模块的首选方法是通过 package.json。依赖模块由 aws 自动安装在实例上。

【讨论】:

你说你不应该从命令行安装模块。这是记录在某处还是只是一个意见?如果我 npm install --save 他们会被添加到我的包 json 中。 这是部署节点应用程序的标准 - 在开发过程中您应该只需要npm install <module_name> 您不应该自己在 EB 上安装任何东西,因为 EB 的整个想法是,如果您的 CPU(或其他)使用率过高,它会启动新实例。新生成的实例将缺少您自己安装的任何模块。【参考方案3】:

您可以通过运行 ps aux | 找到 node 和 npm 的安装位置。 grep 节点。这将向您显示它正在用完的目录。这就是它们让您能够通过安装多个版本来选择您的节点版本的方式。但正如帕兰尼克所说,除非您正在排除故障,否则无需尝试手动执行此操作。哪个是 AWS 上的 PITA,但这是另一个讨论。

【讨论】:

【参考方案4】:

您应该找出当前正在使用的节点版本。然后你可以在你的 PATH 中使用它并使用 npm/node 二进制文件..

grep node /var/log/nodejs/nodejs.log

export PATH=$PATH:/opt/elasticbeanstalk/node-install/node-v6.11.5-linux-x64/bin/

【讨论】:

以上是关于AWS 弹性 beanstalk ec2 服务器上的 node.js 命令的主要内容,如果未能解决你的问题,请参考以下文章

将超过特定大小的文件发布到 Elastic Beanstalk (EC2) 服务器时出现问题

ec2 没有使用 AWS beanstalk 响应 443

是否可以使用 AWS Elastic Beanstalk 部署到现有的 EC2 实例? 。网

无法从弹性 beanstalk/ec2 服务器上传媒体文件

将后台工作人员添加到 AWS Elastic Beanstalk

如何在 ec2 实例上运行元数据库(没有弹性 beantalk)