我正在尝试配置我们的Node.js应用程序以与Amazon Elastic Beanstalk一起部署.
实际上我在.ebextensions中做了一些配置文件来启用Websockets,为几个模块做yum安装并安装我们需要的一些自定义软件.
到目前为止,App部署正常运行,所有配置的软件都由Beanstalk安装.
我遇到的问题是nodejs用户运行节点应用程序,没有权限执行我们的beanstalk自定义配置安装的命令行工具.
更具体一点:
该应用程序支持用户文件上传,上传的文件保存到实例上的某个临时文件夹(其工作方式应该如此).
然后应用程序执行命令行执行将上传的文件转换为自定义文件格式,执行类似/ home/ec2-user/converter/bin转换文件名输出文件名的内容.
此时我收到此错误:{[错误:生成EACCES]代码:'EACCES',错误号:'EACCES',系统调用:'spawn'}
总体而言,该应用程序需要多个命令行工具才能使此类转换任务正确运行 实际上他们都有同样的问题.即使是由yum安装的工具,例如Imagemagick,也不会被应用程序执行.
手动,通过使用ec2-user帐户,我能够执行所有这些,所有文件都在适当的系统路径上,并且它们工作正常.所以所有安装似乎都正常.
我已经尝试手动授予用户nodejs的权限,并确实chmod了文件,但这似乎没有任何效果.
最大的问题是..如何向nodejs用户授予所需权限,或者如何使用已定义的用户执行node.js?