【问题标题】:.composer/config file permission denied using laravel.composer/config 文件权限被 laravel 拒绝
【发布时间】:2016-04-03 09:05:02
【问题描述】:

我在 ubuntu 虚拟机上有一个 laravel 项目。 我曾经运行composer update 并且一切正常。我不知道有任何更改可能会影响到这一点,但现在当我运行 composer update 时,我得到了

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

有人知道为什么吗?当我运行 sudo composer update 时,它可以工作。

【问题讨论】:

    标签: php laravel ubuntu composer-php virtualbox


    【解决方案1】:

    您似乎没有此文件的有效权限。尝试运行:

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

    编辑

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

    【讨论】:

    • 虽然这是一个有效的解决方案,但我建议您解释为任何用户授予对文件的完全访问权限的缺陷。因为在这种情况下,它可能会在不成问题的开发环境中使用,但有些人可能会接受建议并在生产服务器上使用它,而不知道/理解它所暗示的安全风险。
    • @Bogdan 是的,我已经在答案中添加了信息
    【解决方案2】:

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

    sudo chown user /home/user/.composer/config.json
    

    以上假设用户名是来自主路径的user。附带说明一下,当使用sudo 以超级用户身份运行它时,它可以工作,因为在这种情况下没有权限限制。

    【讨论】:

    • 感谢您的帮助!
    • sudo chown ${USER} /home/${USER}/.composer/config.json 怎么样?
    【解决方案3】:

    运行下面的命令。

    sudo composer update
    

    【讨论】:

    • 不建议将 sudo 与 composer 一起使用:不要以 root/超级用户身份运行 Composer!详情见getcomposer.org/root
    猜你喜欢
    • 2016-02-06
    • 2017-12-02
    • 2017-04-01
    • 1970-01-01
    • 2015-12-03
    • 2020-08-26
    • 2016-05-02
    • 2016-10-18
    • 2016-01-07
    相关资源
    最近更新 更多