授予服务器创建文件夹的权限
Grant the server the permission of creating a folder
我在 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
但这并没有帮助。
问题是您将 public/tmp/
创建为根用户:
sudo mkdir public/tmp/
但是您 运行 应用 $USER
,很可能不允许写入该目录。
修复:
sudo chown -R $USER:$GROUP public/tmp/
我在 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
但这并没有帮助。
问题是您将 public/tmp/
创建为根用户:
sudo mkdir public/tmp/
但是您 运行 应用 $USER
,很可能不允许写入该目录。
修复:
sudo chown -R $USER:$GROUP public/tmp/