加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Linux > 正文

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

发布时间:2020-12-13 22:58:54 所属栏目:Linux 来源:网络整理
导读:我希望节点和npm可用于系统上的任何用户. 在我们的团队中,当有人从git更新代码时,他们运行:sudo -u www-data git pull 所以无论它是什么项目,我们总是通过www-data用户. 现在我们有了新的Node项目,需要做同样的事情.在我们的生产服务器上,我们无法依赖一个
我希望节点和npm可用于系统上的任何用户.

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

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

现在我们有了新的Node项目,需要做同样的事情.在我们的生产服务器上,我们无法依赖一个用户处理有关节点的所有内容 – 如果他明天离开会怎么样?

所以我们不使用NVM,而是将节点作为根安装为described here

它很好,所有用户都看到node和npm可执行文件.当我们真正尝试使用它们时会出现问题.

你想要做的是:

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

这在最后一个命令上失败,因为npm正在尝试在我的主目录中写入锁文件.所以:/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

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

解决方法

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

在?/ .npmrc中设置prefix =?/ .where_to_install

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

顺便问一下,在你的情况下,www-data的主目录是什么?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读