授予服务器创建文件夹的权限

时间:2017-04-10 17:59:06

标签: node.js mean-stack file-permissions fs file-access

我在DigitalOcean上有一个Ubuntu服务器,它托管一些网站。我刚刚在我的mac上构建了一个mean.js堆栈应用程序,我计划将其部署到生产环境,从而部署到现有的服务器上。

我跟着this link安装了node.jsmongodb等等。然后,我没有克隆mean.js的示例应用,而是从github克隆了我自己的应用:

sudo git clone https://github.com/softtimur/myapp.git /opt/myapp
cd /opt/myapp
sudo mkdir public/tmp/
sudo npm install
npm start

然后,在浏览器中,我输入了https://xxx.xx.xx.xx:3000/#/new。在服务器端,我收到了一个错误:

router.post /mkdir
{ Error: EACCES: permission denied, mkdir 'public/tmp/sAlTI6NDo5NQcO-lAAAA/'
    at Error (native)
  errno: -13,
  code: 'EACCES',
  syscall: 'mkdir',
  path: 'public/tmp/sAlTI6NDo5NQcO-lAAAA/' }

这是因为在我的应用程序的后端,它尝试在public/tmp/ fs.mkdir(...) fs = require('fs')内创建一个文件夹。

所以有人知道如何向服务器授予此权限吗?

PS:我也尝试过运行

sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config

但它没有帮助。

1 个答案:

答案 0 :(得分:0)

问题是您以root身份创建了public/tmp/

sudo mkdir public/tmp/

但您正在以$USER运行该应用,很可能不会允许该应用写入该目录。

修复:

sudo chown -R $USER:$GROUP public/tmp/
相关问题