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

时间:2014-03-13 20:20:00

标签: php json vagrant composer-php

我已经尝试过我在网上找到的其他帖子,但似乎都没有正常工作。我正在与this合作。然后我走向它的根,即/var/www/。那么我做composer install并且我有一个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"
    }
}

我不确定从哪里开始......

10 个答案:

答案 0 :(得分:38)

Google员工,不要将作曲家与sudo一起使用:

在www-data组中添加您的用户(此操作需要您注销并再次登录)

sudo usermod -a -G www-data `whoami`

为/ 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>

答案 1 :(得分:5)

而不是修改任何文件夹的权限,并且当使用命令行(CLI)时,只需使用“sudo”,它将要求输入密码,输入root用户的密码,一切都应该顺利。 :)更加安全。

编辑它不再被认为是使用sudo作曲家的好习惯。全局安装composer将解决问题。如果您在服务器上直接编辑文件,通常会导致权限错误。在您的实时服务器上进行Web开发是不可取的。

答案 2 :(得分:5)

如果你在Linux上运行以下命令

sudo chown -R user projectFolder/

然后运行 ​​composer install。 user 是您机器的用户名。如果你不确定就运行

whoami

来自终端

答案 3 :(得分:1)

@Etienne Gautier的方法很好。

另一种解决方案是更改/vendor的模式和所有者/组。

例如

sudo chown -R 775  /root-of-your-app/vendor/
sudo chown -R $USER:$USER /root-of-your-app/vendor/

答案 4 :(得分:0)

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

答案 5 :(得分:0)

我发生了同样的事情,似乎是一个权限问题,您有两种选择:

  1. 授予用户权限,如上文Etienne Gautier's答案中所述或
  2. 使用您的root用户登录

答案 6 :(得分:0)

我在更新我的软件包时也遇到了这个问题。它对我不起作用的原因是这个“要创建”的文件夹已经存在并且必须在完成此作曲家更新之前将其删除。

答案 7 :(得分:-1)

Etienne Gautier的回答很好。您也可以尝试。首先更新或安装作曲家composer updatecomposer install,然后使用终端对项目目录授予正确的权限:

sudo chmod -R 755 /var/www/<your_project_name>/public 

,并授予供应商目录权限。当您不想授予您的/var/www目录权限时,请使用它。请注意,请对您的目录授予正确的权限,否则所有人都可以访问它。

答案 8 :(得分:-3)

这是因为我们没有管理员权限,我们只需要输入sudo这个词,它就像这样:sudo composer install

答案 9 :(得分:-6)

尝试一下对我有用。

sudo composer update