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) 服务器时出现问题
是否可以使用 AWS Elastic Beanstalk 部署到现有的 EC2 实例? 。网