与Symfony和Assetic相比较少。 node_modules的权限所以我不需要sudo?

时间:2013-09-29 02:57:07

标签: node.js symfony less npm assetic

我正在努力减少与Symfony和Assetic一起运行的安装。我有权限问题。这是在Ubuntu 12.04 LTS上。

如何设置权限以便我可以运行app / console assetic:dump而不需要sudo?

我使用

安装较少

sudo npm install -g less

node_modules安装在/ usr / lib / node_modules

user“nobody”是/ usr / lib / node_modules / less的所有者 group是我的用户组。

我在config.yml中设置了node,node_paths和apply_to。

它可以在Symfony开发环境中的浏览器中正常工作。我的文件很少被编译成css。

如果我运行app / console assetic:dump它说“找不到模块'少'”。我花了一段时间才发现这是一个权限问题。如果我运行sudo assetic:dump。

使用sudo运行app / console似乎是错误的。我是否需要更改/ usr / lib / node_modules的所有权?一切似乎都有世界和群组阅读权限。

我不明白Apache如何在www-data下运行它。

1 个答案:

答案 0 :(得分:0)

chown $(id -un):$(id -Gn | cut -d' ' -f1) /usr/lib/node_modules

有了这个,您将不再需要使用sudo进行安装。

说明

  1. id -unwhoami相同,它在终端上显示您的用户名
  2. id -Gn打印您所处的组,并用空格隔开。
  3. id -Gn | cut -d' ' -f1->此部分参加第一组
  4. chown [username]:[group] [filename]更改文件的所有者

因此,基本上,您将所有者从 root 用户更改为您自己。

缺点和解决方法

您的Mac上的其他用户将无法修改此文件,因为您拥有该文件。 但是您也可以通过设置组的权限

来允许他们
chmod 775 /usr/lib/node_modules