Php RuntimeException供应商不存在,无法创建

Php RuntimeException供应商不存在,无法创建,php,json,vagrant,composer-php,Php,Json,Vagrant,Composer Php,我试过在网上找到的其他帖子,但似乎没有一篇是正确的。我和你一起工作。我找到了它的根,那就是/var/www/。然后我安装了composer,其中有一个composer.json文件。我明白了 [RuntimeException] vendor does not exist and could not be created. 这是文件 { "name": "panique/php-login", "type": "pr

我试过在网上找到的其他帖子,但似乎没有一篇是正确的。我和你一起工作。我找到了它的根,那就是
/var/www/
。然后我安装了
composer
,其中有一个
composer.json
文件。我明白了

[RuntimeException]                               
vendor does not exist and could not be created.
这是文件

{
    "name": "panique/php-login",
    "type": "project",
    "description": "A PHP login system embedded in a simple MVC framework",
    "keywords": ["login", "auth", "user", "authentification", "mvc"],
    "homepage": "https://github.com/panique/php-login",
    "license": "MIT",
    "authors": [
        {
            "name": "Panique",
            "homepage": "http://careers.stackoverflow.com/panique",
            "role": "Developer"
        }
    ],
    "support": {
        "issues": "https://github.com/panique/php-login/issues",
        "source": "https://github.com/panique/php-login"
    },
    "require":{
        "php": ">=5.3.7",
        "ircmaxell/password-compat": "1.0.*",
        "phpmailer/phpmailer": "5.2.*",
        "gregwar/captcha": "dev-master",
        "facebook/php-sdk": "@stable",
        "raveren/kint": "dev-1.0.0-wip"
    }
}

我真的不确定从这里走到哪里……

发生这种情况是因为我们没有管理员权限,我们只需要输入sudo这个词,它看起来是这样的:sudo composer安装

谷歌,不要将composer与sudo一起使用:

将您的用户添加到www数据组(此操作要求您注销并再次登录)

为/var/www授予正确的权限

sudo chown root:root /var/www
sudo chmod 755 /var/www/
为您的项目授予这些权限

sudo chown -R www-data:www-data /var/www/<project>
sudo chmod -R 774 /var/www/<project>
sudo chown-R www-data:www-data/var/www/
sudo chmod-R 774/var/www/

@Etienne Gautier的解决方案肯定会奏效

另一个解决方案是更改
/vendor
的用户/组的模式和所有者

e、 g


试试这个对我有用

sudo composer update

我可以通过删除供应商文件夹,然后使用
composer update
重新安装来解决此类问题。希望这能帮助像我这样的人。

同样的事情发生在我身上,似乎是权限问题,你有两个选择:

  • 向您提供上述Etienne Gautier的回答中提到的用户权限,或
  • 使用root用户登录

  • 如果您在linux上,请运行以下命令

    sudo chown -R user projectFolder/
    
    然后运行composer安装。user是您计算机的用户名。如果你不确定,就跑吧

    whoami
    

    从终端

    我在更新我的软件包时也遇到了这个问题。它对我不起作用的原因是,此文件夹“待创建”已经存在,必须先删除,然后才能完成此composer更新。

    原因此问题正确:a)您允许第三方脚本以ROOT用户身份执行。。。安全风险大!b) 当我从主机添加这些权限时,您的ssh密钥将不再可用(无法从github/bitbucket中提取)c)您将永远回到
    www-data
    username
    (如
    /home/user/.composer
    文件),我收到以下错误:
    OCI runtime exec failed:exec failed:container\u linux.go:345:启动容器进程导致在config.json中设置“chdir to cwd(\”/var/www/project\”)失败:权限被拒绝”:unknown
    知道我为什么会得到这个吗?Composer不应该以root用户身份运行,因为脚本和插件在您的系统上也有root用户访问权限。它将与您的答案中的解决方案一起工作,但这样做存在安全风险。答案非常有用,但在执行此操作之前,请先在您的项目文件夹中创建一个供应商文件夹。它成功了,谢谢!有多少次必须说composer不能作为root运行?
    sudo chown -R user projectFolder/
    
    whoami