Le compositeur ne pouvait pas trouver un compositeur.fichier json dans /var/www/html
Je suis en train de mettre en place un environnement dans ma Machine Virtuelle qui est une Ubuntu 15.10. J'ai suivi un tutoriel avec ces étapes:
curl -sS https://getcomposer.org/installer | php
sudo mv ~/composer.phar /usr/local/bin/composer
composer global require "laravel/installer"
Puis-je faire:
sudo nano ~/.profile
Et j'ai ajouter ceci à la fin du fichier:
PATH="$PATH:~/.composer/vendor/bin"
Enfin:
composer global update
Après ces étapes, j'ai essayer:
laravel new project
Et obtiens cette erreur:
PHP Warning: file_put_contents(/var/www/html/laravel_62a1f2f16d54929f3367e5f18f937a47.zip): failed to open stream: Permission denied in /home/alavaros/.composer/vendor/laravel/installer/src/NewCommand.php on line 114
PHP Warning: ZipArchive::extractTo(): Permission denied in /home/alavaros/.composer/vendor/laravel/installer/src/NewCommand.php on line 132
PHP Warning: ZipArchive::close(): Invalid or uninitialized Zip object in /home/alavaros/.composer/vendor/laravel/installer/src/NewCommand.php on line 134
Composer could not find a composer.json file in /var/www/html
To initialize a project, please create a composer.json file as described in the https://getcomposer.org/"Getting Started" section
- Je vous recommande d'utiliser Laravel Ferme que l'environnement de dev, il devrait venir préconfiguré avec tout ce dont vous avez besoin. laravel.com/docs/master/homestead
Vous devez vous connecter pour publier un commentaire.
Il semble que vous avez un problème d'autorisation.
Qu'est-ce que la sortie de
ls -l /var/www
?Vous devriez voir que vous avez l'autorisation d'écriture (
w
) à des fins publiques ou que vous êtes dans le groupe a recensé.Par exemple, vous pouvez voir
Qui signifie que vous auriez des questions par écrit à
/var/www
sans agir commeroot
.Tout simplement en train de
sudo laravel new project
pourrait résoudre votre problème actuel, mais peut encourir vous avoir à utilisersudo
chaque fois que vous voulez travailler.Une meilleure solution serait de vous donner accès à ce répertoire:
L'exécution de cette commande va donner à tous (other) des utilisateurs (y compris vous) sur cette machine write accès à
/var/www
sudo apt-get install apache mysql php
. Lesudo
signifie ceux qui sont faits dans leroot
l'utilisateur (même si vous êtes connecté en tant que alavaros). Donc, lorsque vous essayez delaravel new update
, votre utilisateur alavaros est d'essayer d'écrire dans un répertoire qui alavaros n'a pas l'autorisation d'écrire. Utilisation de sudo pour installer les choses n'est pas une mauvaise chose. Vous avez juste besoin d'apprendre comment et quand régler les autorisations, car ils affectent la sécurité. Une meilleure solution serait d'utiliser ferme.