运行NPM命令对于www-data用户显示为空输出

3

通过运行以下终端命令安装Node v16.16.0:

curl -s https://deb.nodesource.com/setup_16.x | sudo bash;
sudo apt install nodejs -y.

安装完成后,运行以下命令:
sudo node -v

输出:

v16.16.0

以www-data用户身份运行相同的内容:

sudo -u www-data node -v

输出也与之前的相同:

v16.16.0

但是使用 npm 命令存在的问题。 只要在 sudo 环境中运行该命令,输出就会有版本信息。

sudo npm -v

输出结果如下:

8.11.0

然而以www-data身份运行会输出空行。

sudo -u www-data npm -v

任何npm命令都会遇到同样的问题。

问题是为什么会发生这种情况,以及如何使npm命令适用于www-data用户。

1个回答

2

检查www-data的主文件夹是否可写。您需要在其中创建文件夹.npm(并授予www-data访问权限)。 在我的情况下,我必须执行以下操作:

mkdir /var/www/html/.npm/ && chown www-data:www-data /var/www/html/.npm/

我不是一个熟练的 Linux 用户,但我相信可以更加优雅地使用 ~/.npm 完成这个任务。


似乎问题出在HOME环境变量上。在我的情况下,www-data用户没有家目录。 - Andrii Kovalenko
由于某种原因,npm 尝试使用 /root 目录,而 www-data 没有权限。 - Andrii Kovalenko

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接