/ usr / bin / env:node:使用AWS Code Deploy对nodejs的权限被拒绝

时间:2016-07-20 13:27:50

标签: node.js amazon-web-services npm forever aws-code-deploy

我编写了一个脚本,用于使用AWS Code Deploy将代码部署到EC2实例,我的文件被复制到目标,然后我的钩子运行,删除命令,cd命令运行正常,但是当运行以下命令时:

/usr/bin/node/bin/forever start /home/ubuntu/codebase/app/bin/www

我收到以下错误,部署失败:

/usr/bin/env: node: Permission denied

我已经使用wget下载并随后将以下路径添加到bashrc来设置节点版本v4.4.0:

export NODEJS_HOME=/usr/share/nodejs/bin
export PATH=$PATH:$NODEJS_HOME

我还添加了一个符号链接:

sudo ln -s /usr/share/nodejs/ 

我的appspec.yml挂钩:

  ApplicationStart:
    - location: scripts/start_server.sh
      timeout: 30
      runas: ubuntu

问题:

  1. 为什么我得到节点:权限被拒绝'错误?
  2. 其次,为什么我需要为“npm,node,forever'
  3. 提供完整的路径?”

    如果我转到相应的目录:/ opt / codedeploy-agent / deployment-root / .....然后手动运行我的脚本作为Ubuntu用户,它可以正常工作。虽然将其作为sudo运行,但在控制台

    上会出现相同的错误

1 个答案:

答案 0 :(得分:0)

service命令删除了大多数环境变量。因此,变量NODEJS_HOME将无法用于start_server.sh。您可以尝试在/ etc / profile中设置环境变量。代理在启动时提供源。

希望这能解决问题。

谢谢, Amartya Datta Gupta