web-dev-qa-db-fra.com

RuntimeException] le fournisseur n'existe pas et n'a pas pu être créé

J'ai essayé d'autres articles que j'ai trouvés en ligne, mais aucun ne semblait fonctionner correctement. Je travaille avec this . Et je me dirige vers la racine de celui-ci, qui est /var/www/. Alors je fais composer install et j'ai un composer.json fichier là-dedans. Je reçois

[RuntimeException]                               
vendor does not exist and could not be created.

Voici le dossier

{
    "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"
    }
}

Je ne sais pas vraiment où aller d'ici ...

23
user3413366

Googleurs, n'utilisez pas composer avec Sudo:

Ajoutez votre utilisateur dans le groupe www-data (cette action vous oblige à vous déconnecter et à vous reconnecter)

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

Donnez les bonnes autorisations à/var/www

Sudo chown root:root /var/www
Sudo chmod 755 /var/www/

Accordez ces autorisations à votre projet

Sudo chown -R www-data:www-data /var/www/<project>
Sudo chmod -R 774 /var/www/<project>
43
Etienne Gautier

au lieu de modifier les autorisations sur n'importe quel dossier, et lorsque vous utilisez la ligne de commande (CLI), utilisez simplement "Sudo" et il vous demandera un mot de passe, entrez le mot de passe de votre utilisateur root et tout devrait bien se passer. :) beaucoup plus sûr.

Modifier il n'est plus considéré comme une bonne pratique d'utiliser Sudo pour le compositeur. L'installation de composer globalement résoudra le problème. L'erreur avec les autorisations est généralement causée par la modification directe des fichiers sur le serveur. La conception Web sur votre serveur en direct n'est pas la solution.

L'approche de @Etienne Gautier est bonne.

Une autre solution consiste simplement à changer le mode et le propriétaire/groupe de /vendor.

par exemple.

Sudo chown -R 775  /root-of-your-app/vendor/
Sudo chown -R $USER:$USER /root-of-your-app/vendor/
1
Hiroki