gpt4 book ai didi

linux - 生产服务器上的 NodeJS - 权限

转载 作者:IT王子 更新时间:2023-10-29 01:26:03 29 4
gpt4 key购买 nike

我想让 nodenpm 可用于系统上的任何用户。

在我们的团队中,当有人从 git 更新代码时,他们运行:sudo -u www-data git pull

所以无论是什么项目,我们总是通过www-data 用户。

现在我们有了新的 Node 项目,需要做同样的事情。在我们的生产服务器上,我们不可能依赖一个用户来处理 Node 的所有事情——如果他明天离开怎么办?

所以我们没有使用 NVM,而是将 Node 安装为 root 为 described here

一切正常,所有用户都看到 nodenpm 可执行文件。当我们实际尝试使用它们时,问题就开始了。

你要做的是:

cd /var/www/node_project
sudo -u www-data git pull
sudo -u www-data npm install

这在最后一个命令上失败了,因为 npm 正试图在我的主目录中写入 lock 文件。所以:/home/user/.npm 而不是全局某个地方或 /var/www/.npm 这将是 www-data 用户的主目录。

类似的,安装后

sudo npm install -g typings

然后运行 ​​sudo -u www-data typings install 你会得到一个错误,因为它正在尝试写入 /home/user/.config/configstore/insight-typings.json

有人可以详细说明如何在服务器上正确安装 Node 吗?如果我运行 sudo -u www-data 为什么 npm ins 仍然进入我的主文件夹?

最佳答案

您可以为某些用户的全局安装指定目录:

~/.npmrc 中设置 prefix = ~/.where_to_install

然后在 PATH 变量中添加可执行文件的正确位置(如 ~/.npm/bin)

顺便问一下,在您的案例中,www-data 的主目录是什么?

关于linux - 生产服务器上的 NodeJS - 权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35652392/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com