我有一个节点应用程序,我想用 root 访问权限运行,我尝试用这个运行它
sudo pm2 start <my-app> --watch
我真正需要它的原因是因为在我的代码中有一个创建新文件夹的命令它仍然失败,仅供参考我在我的节点应用程序中使用 hapijs 框架,
它给了我这个错误
errno: -13,
0|<my-app> | code: 'EACCES',
0|<my-app> | syscall: 'mkdir',
0|<my-app> | path: 'uploaded_file/122334455/' }
我尝试用超级用户运行 pm2,用 777 修改
.pm2
目录,但没有成功。
我应该如何解决这个问题?
谢谢你。
首先授予 777 权限不是一个好的解决方案,因为它会暴露您的用户上传的内容以供任何人阅读,然后再向 .pm2 目录授予 777 权限 没有任何意义,因为它甚至只存储 pm2 的配置如果您想授予 777 权限,您应该更改
/my-app/uploaded_files/
的权限。
这里更好的方法是允许 pm2 进程的所有者写入
/my-app/uploaded_files/
文件夹,这可以通过两种方式完成:-
/my-app/uploaded_files/
目录的所有者更改为您使用sudo chown -R :group_name /my-app/uploaded_files/
创建的group_name/my-app/uploaded_files/
将
sudo chown -R user_name: /my-app/uploaded_files/
上述两种方法都有效,但使用 group 应该是更优选的,因为如果我们想允许多一个用户访问同一目录,我们可以在组中再添加一个用户,其他一切都一样.
希望它能澄清,如果有什么需要更多澄清的地方请在评论中告诉我。
结果我必须修改我的目标文件夹的权限,即
uploaded_file
,感谢@vinitpayal激励我完成这项工作
我对 PM2 知之甚少,除了它是 Nodejs/开发工具套件的一部分。我的 NodeJS 服务器在尝试启动 PM2 时失败,因为它无法创建目录。我想该目录需要被 chown 到正确的用户权限。由于我在容器中工作,我将如何创建本博客中引用的所需子目录?