【发布时间】:2017-09-05 21:28:13
【问题描述】:
我在 DigitalOcean 上有一个 Ubuntu 服务器,它托管一些网站。我刚刚在我的 Mac 上构建了一个 mean.js 堆栈应用程序,我计划将它部署到生产环境中,从而部署到现有的服务器上。
我跟着this link安装了node.js和mongodb等。然后,我没有克隆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/' }
这是因为在我的应用程序的后端,它尝试在fs.mkdir(...) 的public/tmp/ 中创建一个文件夹,其中fs = require('fs')。
那么有谁知道如何给服务器这个权限?
PS:我也试过跑
sudo chown -R $USER:$GROUP ~/.npm
sudo chown -R $USER:$GROUP ~/.config
但它没有帮助。
【问题讨论】:
标签: node.js mean-stack file-permissions fs file-access