Laravel中使用.composer/config文件时出现权限被拒绝的问题

6

我有一个运行在Ubuntu虚拟机上的Laravel项目。

之前,我运行composer update,一切正常。但现在,当我运行composer update时,出现以下错误:

file_get_contents(/home/user/.composer/config.json): failed to open stream: Permission denied

这是为什么?当我运行sudo composer update时,它可以正常工作。

3个回答

11

你的权限以某种方式被更改了(可能与运行composer无关)。将该文件的所有者设置为您的用户应该解决问题:

sudo chown user /home/user/.composer/config.json
上述假设用户名为user且位于主目录下。顺带一提,如果以超级用户运行使用sudo,它将可以正常工作,因为在这种情况下没有权限限制。

谢谢帮助! - user3494047
2
那就试试 sudo chown ${USER} /home/${USER}/.composer/config.json 呢? - sr9yar

0

看起来您没有此文件的有效权限。请尝试运行:

sudo chmod 0777 /home/user/.composer/config.json

编辑

当然,你应该只在开发环境中进行操作(你提到你使用Virtualbox)。你不应该在生产环境中这样做。


虽然这是一个有效的解决方案,但我建议您解释一下为任何用户提供完全访问文件的缺点。因为尽管在这种情况下它可能在开发环境中使用时不会有问题,但有些人可能会采纳这个建议并在生产服务器上使用它,而不知道/理解它所涉及的安全风险。 - Bogdan
@Bogdan 这是真的,我已经在我的答案中添加了信息。 - Marcin Nabiałek

0

运行下面的命令。

sudo composer update

不建议在composer中使用sudo:不要以root/super用户身份运行Composer!请参阅https://getcomposer.org/root了解详情。 - Sébastien Gicquel

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