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

use*_*366 23 php json vagrant composer-php

我尝试过在网上找到的其他帖子,但似乎都没有正常工作.我正在用这个.然后我走向它的根源,就是这样/var/www/.那么我就做了composer install,我composer.json在那里有一个文件.我明白了

[RuntimeException]                               
vendor does not exist and could not be created.
Run Code Online (Sandbox Code Playgroud)

这是文件

{
    "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"
    }
}
Run Code Online (Sandbox Code Playgroud)

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

Eti*_*ier 49

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

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

sudo usermod -a -G www-data `whoami`
Run Code Online (Sandbox Code Playgroud)

为/ var/www提供正确的权限

sudo chown root:root /var/www
sudo chmod 755 /var/www/
Run Code Online (Sandbox Code Playgroud)

将这些权限授予您的项目

sudo chown -R www-data:www-data /var/www/<project>
sudo chmod -R 774 /var/www/<project>
Run Code Online (Sandbox Code Playgroud)

  • 这个问题的理由是正确的:a)你允许第三方脚本作为ROOT执行......存在很大的安全风险!b)你的ssh密钥将不再可用(无法从github/bitbucket拉出)c)你将永远把东西归还给`www-data`或`username`(比如`/ home/user/.composer`文件) (2认同)

Hir*_*oki 22

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

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

例如

sudo chmod -R 775  /ROOT_OF_YOUR_APP/vendor/
sudo chown -R $USER:$USER /ROOT_OF_YOUR_APP/vendor/
Run Code Online (Sandbox Code Playgroud)

  • 非常有用的答案,但在执行此操作之前,请先在项目文件夹中创建一个供应商文件夹 (3认同)

小智 8

我能够通过删除供应商文件夹然后使用composer update. 希望这对像我这样的人有帮助。


Nel*_*mmy 6

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

sudo chown -R user projectFolder/
Run Code Online (Sandbox Code Playgroud)

然后运行作曲家安装。user 是您机器的用户名。如果你不确定就跑

whoami
Run Code Online (Sandbox Code Playgroud)

从终端


Die*_*ezú -3

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

  • 必须说多少次 Composer 不能以 root 身份运行? (3认同)